Fórum témák
» Több friss téma |
Pipi neked is köszönöm ajánlatodat de megoldódott közben mate_x jóvoltából.
Idézet: „... megépített panel hiján tesztelni nem tudom az ic-t.” Az MpLab -ban van egy beépített szimulátor, amivel lépésenként végrehajthatod a programodat. Lehet vizsgálni a regiszterek, memóriák tartalmát. Persze nem minden lehet vele szimulálni. Már programokkal az áramkörében is tudod szimulálni. pl. Proteus, stb. Debug mód azt jelenti, hogy a módra képes programozóval nyomon lehet követni a programodat, miközben az a panelodba tett kontrolleren fut. Sajnos a felhasznált kontrollereddel önmagában nem lehetséges, a kicsi (8, 14, 18 lábúakhoz) kontrollerekhez egy un. header kell. A debug konfigurációs bitet az MpLab kezeli, az önállóan futóképes változathoz a Release, a nyomkövetéseshez a Debug módot kell választani (ablakban felül középen). A debug mód a programod mellé egy debug executive -nak nevetett részt is beprogramoz, valamint egy kis RAM -ot is elhasznál.
Sziasztok!
Szeretnék segítséget kérni abban,hogy hogyan lehet használni a PIC16F690-es RA3/MCLR lábat bemenetként.A kapcsoló bekapcsolásakor a kimenetek szürkére változnak,lebegnek 0 és 1 között.
Confignál meg kéne adni, hogy ne resetelje a PIC-et!
Az 5. sorba:
#pragma config MCLRE = OFF
Működik! Hogy ez nekem nem jutott eszembe,hogy ki kéne kapcsolni az MCLR-t.Köszönöm nektek.
Sziasztok!
RGB LED vezérléshez szeretnék 3db PWM jelet előállítani egy 16F877A-val. A kérdésem az az lenne, hogy hogyna lehet a legegyszerűbben megoldani ezt? Timerek használatában még elég kezdő vagyok. XC8 fordítót használok. A válaszokat előre is köszönöm!
Srácok, tudna nekem valaki segíteni, RC522 SPI portról történő használatában?
PIC18F4550-el tesztelgetném, de egyelőre nem jutok előrébb. Elvileg az init már megvan és lefut, de nem tudom, hogy jó e vagy esetleg hibás a program. Az adatlap előttem van, de nem túl beszédes sajna. Már az is nagy segítség lenne, ha tudnám 100%-ig, hogy reset parancsnál milyen válasszal tér vissza az eszköz, ha minden klappol. Digitális analizátorral nézem a kommunikációt, de passz, hogy jók e a válaszok. Előre is köszi a segítséget. (privát is jöhet, ha esetleg van valami kód, vagy valaki már dobott össze egy működő megoldást)
Ha jó az ASM és a szoftveres SPI, akkor igen.
A hozzászólás módosítva: Márc 20, 2018
Moderátor által szerkesztve
A szoftveres SPI még csak elmenne, de az ASM a halálom..
Sajna még nem értem annyira, hogy abból C-t tudjak faragni. Várok, hátha kísérletezett valaki C-n is ezzel a kártyás témával. Egy működő C18-as kód jól jönne, hogy tudjak mihez hasonlítani.
Ez CCS-C, de hátha segít valamit ...
Ezt a kódot néztem és ennek alapján írogatom, de valamiért nem akar működni.
Arduino van itt a cégnél, azon működik, de PIC-en az istenért sem akar.
Közben meg lett a hiba, CKE = 1-ben kellett tegyem, hogy akkor mintavételezzen amikor órajel aktív állapotból tétlenre vált. Most már működik, még persze kell finomítani, de legalább megy. Köszi srácok.
Idézet: „CKE = 1-ben kellett tegyem, hogy akkor mintavételezzen amikor órajel aktív állapotból tétlenre vált.” A Microchip a CKE bitet (az órajel fázisát) más gyártókhoz képest fordított polaritással értelmezi, tehát CKP=0, CKE=1 felel meg a legáltalánosabban használt Mode 0,0 órajel módnak. Így szerintem az inaktívból aktívba váltó élnél történik az adat bekapuzása. A Microchip szerinti CKE=1 beállítás egy félperiódussal késlelteti a CKP órajel megjelenését. Ez lehetővé teszi, hogy az adatvonalakon stabilizálódjon a jelszint, mire az órajel felfutó éle megjelenik.
Srácok segítsetek ki egy kicsit.
18F46K22-re szeretnék egy 1KHz-es PWM frekvenciát 50% kitöltéssel létrehozni. C18-ban programozok. Az adatlapot már oda vissza átnyálaztam és nem értem miért nem akar összejönni amit szeretnék. Szerintem már annyira el vagyok tévedve a számok mezején, hogy már nem látom a fától az erdőt. Eddigi számolásom alapjai: 18F46K22-őt 64MHz-en járatom PLL-el.
Valaki meg tudná nézni, hogy jó ez a kód? Egyelőre szimulátorban tesztelem a frekit amelyről töltöttem fel képet, alább. A képen látható, hogy 64uS a periódus idő, ha ezt elkezdem vissza számolni frekire, akkor a következőket kapom: 1/0,000064 == 15625Hz, ami sajnos 14.625KHz-el nagyobb mint amit szeretnék. 1Khz-es jelre lenne szükségem. Mint nézek ennyire be? Köszi előre is. A hozzászólás módosítva: Márc 21, 2018
Ilyen magas órajellel nem tudsz 1kHz-et csinálni, mert kevés az osztó, max 3,9kHz-et. A számításban 64MHz-cel számolj, akkor kijön.
ktamasnak igaza van. Nem tudom ezt honnan vetted, az oszci sebességével kell számolni a periódus időt ha PLL-el jön össze akkor is. Mondjuk az akkor is még csak 4x-es. Valami még nem jó.
A hozzászólás módosítva: Márc 21, 2018
Igen eddig eljutottam, közben rájöttem, hogy le kell vennem az órajelet 16MHz-re.
Akkor ki fog jönni.
Már én sem tudom honnét vettem, de mint ha ezt olvastam volna az adatlapba, hogy orajelet osztanom kell 4-el, alapból.
Mindegy, leveszem az órajelet és akkor már jó lesz. Megnézem, hogy tudom e 16MHz-en járatni a 18F46K22-őt.
Miért nem tudnád? A belső órajele akár 1 MHz-re is levehető.
Sziasztok!
Egy Curiosity panelen próbálkozok PIC programozással (PIC16F1619), MPLAB és MCC segítségével. A DAC modult akartam kipróbálni de eddig nem sikerült dűlőre jutni vele. Úgy szeretném, hogy az ADC-től megkapja az értéket amit visszaalakít és kiadja a kimeneten. Az ADC működött egyébként egy másik projektben. 5V-ról megy a rendszer az ADC-re a bemenetet egy 100k-s potméteren keresztül állítom. A probléma az, hogy a DAC kimenetén 2,3V-nál több sehogy nem akar kijönni, hiába tekerem felfelé a potit. Lefelé szépen lemegy 0-ra. Mit csinálok rosszul? A másik érdekes dolog, hogy ha beteszem a DAC modult a projektbe, akkor nem engedi a Curiosity-n keresztül programozni mint eddig, hanem csak a PICKIT-tel és arra hivatkozik, hogy a céleszközön tehát a PIC-ben a High-Voltage programming van beállítva. Ez mitől lehet? Köszönöm a segítséget!
Sziasztok (ha rossz helyre írok, sorry)
Miele Tango porszívó egyszer csak össze vissza járt majd megállt. Mechanika OK, elektronika kiszerelve, próbapadra fel. 16F716 csinálná a lágyindítást és egy triakkal a fordulatszám szabályozást. Poti az RA1/AN1-re osztja le az 5 Voltot. Oszcillátor 1,3 MHz körüli, nem valami szép, de elmegy RB1,RB2,RB3,RB4,RB5 párhuzamosan kötve (!) adja a TRIAKnak a gyújtást (lehet, hogy valamelyik bemenet, beforrasztva azt nem látni) MCLR rendesen tápon RB0/INT pedig kap 50 Hz. váltót valami behemót ellenálláson keresztül (védődiódák a PIC-ben pedig védenek) Ezt a jelforrást most magam mutatóujja pótolja. Szkópon látható az 50 Hz a kezemből, stabil föld-táp. A kimeneten viszont jön egy csomag, majd elmarad, csak a helyükön látszik egy kis letörés, mintha csinálni akarna valamit. De ez inkább digitális-zaj a csipből. Aztán megint jön véletlenszerűen egy csomag 5-30 impulzussal, majd megint semmi. A kimaradt csomagok helyén sehol nem látok semmit, még a tápon sem. Bármi tippért végtelen hálás lennék. (Valahogy nem nagyon akarom elhinni, hogy a PIC félhülye lett)
Kondi jó a tápon? Nem lehet, hogy veszített a kapacitásából, vagy már épphogy működik és a nem stabil táp miatt ujraindul a PIC? Valamint a mutatóujjad nem megbízható.
egy 5V-os trafóról le tudod venni a szinusz jelet. A hozzászólás módosítva: Márc 22, 2018
A kondi 238 uF, nem púpos. A tápfesz, ha kócos is, de rendben van. Mondjuk nem kerül semmibe, a próbapadon kap egy másikat. Másfelől a TRIAC 50 mA-t kér gyújtásra a II. és III. negyedben, az egész áramkör meg 5 mA alatt eszik kb. Szóval vannak azért tranziensek.
A mutatóujjam eredményét a bemeneten a szkóp szépen mutatja, rendben is van. 5 V-os trafóm nincs kéznél, de csinálok valami gnóm négyszöget. Ha eredetileg ott a 220 V van, akkor 5 voltig pillanatokon belül felmegy a fesz (gyakorlatilag a nullátmenetnél) utána nyit a védelem a 16f716-ban és a többi elmegy az ellenálláson. Reset persze attól lehet. A nem használt bemenetek szabadon vannk és kimenetként GND-re vannak programozva, ahogyan látom szkópon. Viszont ezt majd felhúzom tápra, RESET-nél ezt elengedi TS-be, azt látni fogom a szkópon. Jó ötlet, köszi. Ki is forrasztanám a 16F716-ot, megnézném, de annyira nagy bakit még gondolom a Miele sem követ el, hogy nem kapcsolja be a kódvédelmet. Küzdeni egyébként a kihívás miatt küzdök, meg azért, mert ez 1800 Wattos porszívó, az újak - hála az EU-nak - 1000 W alatt vannak. A porszívó többi része meg annyira egyben van... A hozzászólás módosítva: Márc 22, 2018
50 Hz négyszögről megtáplálva, semmi változás. RESET nincs, tápfesz stabil.
A motor felől nem látok visszacsatolást, pl. azért, hogy nézze, fut-e. Mindegy, kicsit játszom még vele, aztán tervezek egy saját vezérlést. Mindenesetre nagyon köszönöm a segítségedet.
Külső 16MHz-es kristállyal járatom. Ezzel már oké az 1KHz-es jel.
18F2xK40 vagy 18F2xK42 -ben a TMR2 előosztója 1/1 -től 1/128 -ig állítható (csak 2 hatványai).
Erre senki?
Azóta egyszerűsítettem a dolgot, a 8 bit-es DAC-nek paraméterként a maximális kivezérlését adom meg (255) a programban, a kimeneti feszültség 2,37 V 5V-os táp esetén. A hozzászólás módosítva: Márc 23, 2018
Ellenőrizd, hogy a DAC referencia feszültsége jól van-e beállítva. A kimenet nincs bufferelve, így nem terhelhető, kell utána egy leválasztó OPA, ami ki is tudja adni a megfelelő feszültséget.
A pozitív referencia a VDD (+5V), a negatív a VSS (0V), szerintem ez rendben van. A leválasztó OPA sajnos nem tudom hogy mit jelent
Egyébként ezt (Bővebben: Link) szeretném megvalósítani, pontosan ugyanígy csinálom, csak nálam a count nem 30 hanem 255, mert 8 bites a DAC-m. |
Bejelentkezés
Hirdetés |