Fórum témák
» Több friss téma |
Korábban csak 8 bites PIC-ekkel dolgoztam, de most egy PIC24FJ16GA002-t kellene égetnem. Meglepve látom, hogy 3 pár PGC/PGD lába is van. Végig nyálaztam a leírását, de nem találtam meg, hogy akkor pl. Pickit2-vel melyik párosra és hogy kellene rácsatlakozni... nézek, mint a moziban. Eligazítana valaki? Kösz, üdv!
Köszönöm szépen! Ezeket megnézegetem, mert nem ismertem eddig.
Írod, hogy kell referenciafeszültség. De azt honnan tudok venni, hiszen minden az elemről lesz megtáplálva? A PIC16F877A belső referenciával nem rendelkezik. Válasszak másik mikrokontrollert? Vagy ez a belső referencia is betápfüggő? Mert akkor a 22-es csapdája! Hogy szokták ezt megoldani? Olvastam LVD-ről, de úgy tudom ebben a kontrollerben ez sincs.
Pld. egy TL431-el meg egy ellenállással tudsz 2,48V referenciát csinálni az AN3 lábra.
Ha az ellenállást egy port lábbal kapcsolgatod, akkor csak akkor fogyaszt, ha mérni szeretnél..
Nagyon homályos emlékeim szerint bármelyikre csatlakoztatod, mindegyiken lehet programozni. A debug-olás viszont csak azon a lábpáron fog menni, amelyiket kijelölöd a CW1 konfigurációs szó ICS1:ICS0 bitjeinek beállításával.
Természetesen csak az azonos sorszámú PGD/PGC lábak használhatók egyidejűleg.
Elemes táplálás esetén nem célszerű elfűteni a "felesleges feszültséget"!
Célszerű valamilyen kapcsolóüzemű stabilizátort használni! Ha 9V-os elemről működteted, és a 7805-nek kell kb 7V bemenő feszültség, akkor 7V elem feszültségnél kellene jeleznie az áramkörödnek ... Na amikor egy 9V-os elem már csak 7V-ot ad le az gyakorlatilag már le van merülve, és rohamosan csökken tovább a feszültsége ... Tehát nyugodtan elkönyvelheted lemerültnek. De ekkor még a tápod megvan stabilan 5V, ezért használhatod azt referenciának, az elem feszültséget meg leosztva tudod mérni.
Köszönöm szépen, így csinálom meg!!
Nekem (is) túl szabályosnak tűnik ez a 10msec-enként előforduló 4kHz körüli "zaj". Én első körben levenném a bejövő jelet (azaz a bemenetet meghagynám a féltápfeszültségen), és azzal próbálkoznék.
Sok elintézni valóm van, küzdök a bürokráciával kicsit, de pár óra múlva kipróbálom!
Gyorsan ki tudtam próbálni.
255 minden értékre. Az ADC értékét >>2 vel osztom, mert 1 byte kell nekem a memória limit miatt. Az ADC értéke16 biten tárolódik, de max 12 bites, amit levettem 10 bitre. A korábbi adatok, mikor 2 byte-on küldtem el, akkor is csinált ilyesmit. Akkor ugye a High byte 3-nál nem lehetett volna nagyobb ugye, de előfordult. Azaz néha mintha nem mérne rendesen ezek szerint, mert max-ot mér akkor is, mikor nincs adat rajta. Azaz, akkor jönnek elő ezek a tüskék, mikor nincs adat, nem töltődik be a 16 bites regiszterbe, és az alapértékeket küldi ki. Ez legalábbis ezt sugallja nekem most. FRISSÍTÉS!! Bocsánat, ez mos semmi nélkül volt, a féltápfeszhez idő kell még, meg kell néznem, hogy tudnám ezt megoldani komolyabb bontás nélkül!!! A hozzászólás módosítva: Nov 21, 2023
Nem tudtam leválasztani a jelet, de ha a forrás teljesen csöndes, és úgy veszem a jelet, akkor az igen zajos.
Ráteszem szkópra is a sima jelet, de szerintem az jó lesz, mert már kimértem rendes jellel, ott nem volt gond. A dsPIC felől vana hiba. Csatolt fájlban a zaj....
Próbálom értelmezni a kiinduló hozzászólásod: A forrást biztosító táp GND-jét a VREF- -re, a +tápját meg a VREF+ -ra kötötted? Sehol máshol nem találkozik egymással a két táp? Ha nem akkor akkor a VREF-ek gyakorlatilag lebegnek a PIC tápjához képest. Legalább egy pártíz Ohm-al össze kellene kötni a forrás GND-t a PIC GND-vel.
Elemes működésre teljesen másképpen kell tervezni, mint nem elemesre. 2 ésszerű lehetőség:
* Olyan feszstabot kell választani, ami nem fogyaszt, ha nincsen őrajta terhelés. Ez a Quiescent Current, amit proli007 írt. Létezik feszstab, aminek ez nagyon kicsi. * Olyan áramkört tervezni, ami 3.7V-ról működik, és egy darab lítium celláról meg lehet hajtani stabilizátor nélkül. A merülést pedig tudja detektálni a csip - lásd lentebb. Az égetést én úgy szoktam megoldani, hogy addig lehúzom az elemet, és az égetés idejére 5V van adva az áramkörnek. Ha csak 5V égetőd van, akkor erre figyelni kell, hogy az áramkör tolerálja az 5V-ot! Vagy olyan égető kell, ami nem ad tápot, hanem a célalkatrész tápfeszültségét használja. Amire figyelni kell, ha sokáig akarsz működni: * Vannak direkt elemes működésre tervezett csipek. Ilyet kell használni! AVR esetén a P-re végződő névből ismerhetőek fel, sajnos PIC esetén nem tudom. (Meglepően sokat fogyaszt maga az MCU alapjáraton is elem léptékhez mérve. Az órajel csökkentése is segít a fogyasztás csökkentésén, de a sleep a tuti.) * Amikor nem dolgozunk ne fogyasszunk! Fények lekapcsolva, proci sleep-be, hőmérő áramtalanítva stb. A kis fogyasztású perifériákat, például hőmérőt is tápolhatsz a proci pinjéről, így nem kell külső alkatrész a kapcsolgatáshoz, például a GND-jét lekapcsolhatod. * Az adatlap szerint az MCU minden lába legyen bekötve, vagy belső pullup-pal magasba húzva, tehát ne legyen semmi "mozgás" magától. Egy lebegő láb belül mindenféle áramköröket triggerelhet, hogy azok fogyasszanak. * Ha folyamatos működés kell, akkor két mérés között időzítve ébredjünk fel, közte alszunk! Az önfelkeltő időzítőhöz van nagyon kis fogyasztású belső óra. * Ha elegendő a gombnyomásra működés, akkor ki kell mindent kapcsolni, sleep-be menni és a gombra tett pin change interruptra ébredni csak. Ilyenkor semmi óra nem jár, és a fogyasztás gombelem léptékkel is az önkisülés alatt lehet. * A kijelző legyen LCD, ami csak változáskor fogyaszt. A programot úgy írjuk meg, hogy ne legyen felesleges frissítés. * Az LCD-nek lehet adni egy háttérvilágítást, ami gombnyomásra egy rövid ideig ég, és utána lekapcsol. * Ha OLED vagy LED a kijelző, akkor szintén csak gombnyomás után világítson. * A táp feszültségét sok mikrovezérlőn lehet külön láb nélkül is mérni, a tápot referenciaként, a belső referencia értékét lehet mérni, és ebből következtetni a tápfeszültségre. Az LCD-n, vagy jelző LED-del lehet a túl alacsony feszültséget jelezni gombnyomásra például. Nem kell folyamatosan mérni, ezért nem kell komparátor. Ha van LCD, akkor akár a mért értéket ki is írhatod a hőmérséklet helyett gombnyomásra. Ha ezeket betartod, akkor akár évekig is működő áramkört is építhetsz.
Igen, jól látod. Erre épp azért volna szükség, mert a PC táp USB-ről kapja a PIC a 3.3V-ot, míg a jelforrás tök más tápról jön. Épp ezért gondoltam azt, hogy ekkor így kell használni, mert ahhoz a szintekhez kell hasonlítania a jelet. Azonban a PIC analóg köreit szintén az USB ről kapott 3.3V hajtja(ná) meg. Azt láttam, hallottam, hogy ez így igen nem ok. Ezért is kérdeztem elsőnek, hogy a PIC analóg köreit ugyanarra a tápra kössem, mint ahonnan a jel jön. Ebben az esetben a PIC két tök különböző tápról kapná a forrást. A digitális az usb-s 3.3V, míg az analóg arról a tápról kapná, ami meghajtja azt az áramkört, ami végül a feldogozandó jelet adja. Csak épp nem tudom, hogy ez ok-e pontosan.
Azonban azért nem jelentkeztem sokáig, mert naná, hogy találtam hibát az áramkörben, illetve annak javítása okozott egy másikat, ami korábban már ment, azt kellett kijavítanom. A hozzászólás módosítva: Nov 21, 2023
Amúgy igen, találkoztam már ezzel a problémával, de akkor a digitális jelszinteknél okozott nem kis galibát. Abban bíztam, hogy ez a Vref+/Vref- és a beállítások éppen ezt fogják kiköszübölni. Ott nagyon nem volt mindegy, hogy az analizátor GND-je mihez van csatlakoztatva. (meg akkor az mcu (Arduino) nem a külső tápról ment, mert a kábel megszakadt, simán átállt a board a PC USB-re)
Ha van lehetőséged másik PIC-et használni, ami magas órajelnél kevesebb feszről is elmegy és a már említett LDV modullal is rendelkezik, sokkal kevesebb szívás lesz. A fogyasztás csökkentésére már kaptál jó tanácsokat, azokat használod akkor jó eséllyel évekig elmegy. Példaként nálam működő elemes füstérzékelő (valamelyik PIC18Fxxx a lelke) normál körülmények mellett 5-6 évig működik 3db ceruza elemről.
A hozzászólás módosítva: Nov 21, 2023
Idézet: „Legalább egy pártíz Ohm-al össze kellene kötni a forrás GND-t a PIC GND-vel.” Sejtetem, hogy ezt nem kerülhetem el, csak bíztam benne, erősen bizakodtam! . Nem lehet ebből baj? Mármint az USB GND és egy 230V-ról működő 12V kapcsoló üzemű táp esetén? De csak nem sikerült elkerülnöm ezt a gondot, reméltem, hogy a PIC-ben vannak erre a problémára beépített megoldások, de a remény hal meg utoljára. Ezt de jó lett volna megúszni valahogy. Nézek ellenállást, lehet azt még be tudom paszírozni valahogy. A Vref-, (230-as tápról jön) és az AVss (USB TTL átalakítóról) közé tudnék a nyák alatt beforrasztani egy ellenállást.
Azért kérdezem, mert korábban csináltam ehhez hasonlót, de akkor pórul jártam. Gondolom persze akkor elnézhettem valamit, de megmaradt ez bennem, mint elrettentő erő! Bocs, ha parázok megint kicsit, nem akarok elfüstölni semmit sem, mert van pár Forint már benne és működik is nagy vonalakban...
10 Ohm és 22 Ohm 1/2W 5% ellenállásaim vannak. Melyiket javaslod?
Azt nem írtad, hogy a tápok közül van-e valamelyik GND-jének köze a védőföldhöz. Ha van, (főleg ha mindkettő tápegységnél) akkor cifra helyzet tud keletkezni, ha eltérő helyről van megtápolva a 2 tápegység. Amúgy szerintem mindegy melyik ellenállással próbálkozol, mert csak annyi a lényeg, hogy a kettő GND azonos potenciálra kerüljön. De próbáld ki a 22 Ohmossal először. Az is lehet, hogy jóval nagyobb értékűvel (akár kOhm nagyságrendűvel is jó lenne).
A hozzászólás módosítva: Nov 21, 2023
Idézet: „Azt nem írtad, hogy a tápok közül van-e valamelyik GND-jének köze a védőföldhöz.” Nem tudom, nem emlékszem pontosan sajnos. Az egyik valójában egy 30A-es 12V táp, olcsón kaptam, és tökéletesen működik. Beletettem egy dobozba ventikkel kiegészítve. Ilyesmi A másik meg a PC USB-je, amiről a TTL átalakító előállít 3.3V-ot. Elvileg az meg ESP01-hez volt. De mindegyik tökéletesen működik. Mindegyik ugyanarról a 230V aljzatról megy.
Szia!
Ez volt a gond. A jelek sokkal, de sokkal szebbek lettek!! Köszi az infót! Sejtettem, hogy ilyesmi gond is lehet, de nem mertem meglépni ezt. A két GND-t egy 22 Ohm ellenállással közösítettem egy jumper tüskén keresztül, illetve egy plusz kivezetést még betettem a szkópnak meg feszmérőnek, ha már arra jártam, hogy ne kelljen folyton keresgélni. Az eredmények nem tökéletesek, de sokkal szebbek. Köszönöm! A hozzászólás módosítva: Nov 22, 2023
Igen, a PIC24 és dsPIC sorozatban több pár programozó láb van, így az áramkörben számodra legkedvezőbbet választhatod ki. Például azért, hogy ne kelljen olyan lábat erre felhasználni, aminek valamely más funkciójára szükséged lenne.
Az adatlap elején, a lábkiosztásnál az egyes lábak funkciói között ezek is említve vannak. A több programozó láb közül a main egység elején a config bitek beállításánál tudod a neked tetszőt beállítani. Monjuk az 1. lábakat így: // FICD #pragma config ICS = PGD1 // ICD Communication Channel Select bits (Communicate on PGEC1 and PGED1) Window / Target Memory Views / Configuration Bits lapon beállítva minden szükséges bitet, Generate Source Code to Output gombra az egészet bemásolja az Output - Config Bits Source lapra. Innen bemásolhatod a kódodba. A hozzászólás módosítva: Nov 26, 2023
Szia, kösz a választ. Leginkább az érdekel(t), hogy SZŰZ példánynál melyik párossal kell kezdeni. Kaptam már olyan tippet, hogy bármelyikkel, de olyat is, hogy "természetesen" az 1. számúval. A proci még nincs itt, úgyhogy a válasz nincs elkésve
Ja, ez lemaradt: A Config bitek a programozás alkalmával mindig íródnak, tehát mindegy, mennyire volt "szűz" előzőleg az IC.
Az előző hozzászólásban bemásolt kódrészletben csak azért szerepel pont az 1. pár, mert a konkrét áramkörömben pont ez volt a legcélszerűbb. Attól is függhet, melyiket választod, hogy a NYÁK-on melyik lábhoz tudod a legrövidebb vezetékkel bekötni. Párszor 10mm plusz nem gond, de a Microchip debuggerek nem szeretik a hosszú programozó kábelt. Érdemes a NYÁK-on eleve röviden vezetgetni a PGED, PGEC vezetőket. A hozzászólás módosítva: Nov 26, 2023
Újból kösz. Úgy látszik, nem tudtam másodjára sem egyértelműen megfogalmazni a kérdésemet.
Az világos, hogy bármely párosra konfigurálhatom / programozhatom a majdani ICSP lábakat, és onnantól kezdve csak azokon át tudok hozzáférni. De gyárilag hol vannak? OK, talán megválaszolom magamnak: a PIC leírásában a CW1 8-9. bitje defaultban 1-1, így a PGC1/PGD1-re mutat. Ez látszik a leglogikusabbnak is, ahogy az egyik tipp mondta. Tehát a Picit2-vel ezeken a lábakon fogok hozzákezdeni. Jól gondolom?
Szia!
A teendő csak ennyi: MPLAB X-ben Window / Target Memory Views / Configuration Bits ablakban a legördülő listán kiválasztod a kívánt "ICD Communication Channel Select bits" sorszámát. Természetesen minden más beállítást is elvégzel, különös tekintettel az oszcillátor beállításokra (!!), aztán a már említett gombbal legenerálod a felkommentezett forráskódot, ami tartalmazni fogja a programozó láb kiválasztáshoz szükséges #pragma... preprocesszor utasítást is. A generált kódot beilleszted a main.c -be az int main(void) elé. Ettől kezdve ha rádugsz bármilyen debuggert, Picit2-t is beleértve, és rákattintasz a "Make and Program Device", vagy a "Debug Project" gombra, a rendszer tenni fogja a dolgát. Ha nincs elkötés. Szűz példánynál is kezdhetsz bármelyik pgm láb párossal, csak egyezzen a programban a #pragma config ICS = PGDn utasítás a ténylegesen bevezetékelt programozó lábak sorszámával. Gondolom, SOIC28-as tokot használsz, azon PGED1 4. láb, PGEC1 5. PGED2 21. PGEC2 22. PGED3 14. PGEC3 15. A hozzászólás módosítva: Nov 26, 2023
Programozásra bármelyik PGCi/PGDi lábpár felhasználható (i=1,2,3). A konfigurációs bitek csak a debugoláshoz használt lábpárt választják ki (és korlátozzák arra az egyre).
Idézet: „Most dsPIC33F/PIC24H devices have more than one pair of PGCx and PGDx pins, which are multiplexed with other I/O or peripheral functions, as illustrated in Figure 24-1. The multiple PGCx/PGDx pin pairs provide additional flexibility in system design by allowing the user to incorporate ICSP on the pair of pins that are least constrained by the circuit design. All PGCx and PGDx pins are functionally attached together and behave identically. Any one pair can be used for successful device programming. The only limitation is that both pins from the same pair must be used.” Referencia: PIC24F Family Reference Manual, Section 33. Programming and Diagnostics dsPIC33H/PIC24H Family Reference Manual, Section24. Programming and...stics dsPIC33E/PIC24E Family Reference Manual © 2010 Microchip Technology...ostics
Kösz harmadjára is! Kezd oszlani a köd. Én szívességből akarok valakinek égetni kész, hozott hex-et az üres procijába. Ezért nálam nem játszik az MPLAB, és a Pickit2-t sem MPLAB alól használom. Tehát bármelyik párost használhatom, szuper.
Kösz, minden eddigi válasz egy irányba mutat, ez megnyugtatott. Most már csak jöjjön az a PIC
Üdv. Köszönöm szépen az útbaigazítást! Igen van eredeti HEX file a bírtokomban.És az MCU-t fel programozni (égetni). Egyébként a választ azért most írom, mert nem volt időm foglalkozni vele.
|
Bejelentkezés
Hirdetés |