Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Idézet: „de nem tudom mire is van szukseg...” Többnyire azoknak a körülményeknek és jelenségeknek a pontos ismeretére van szükség, amelyek alapján a hiba behatárolható. Pl. Új PIC-ről vagy (el)használtról van-e szó, milyen kapcsolásban van, hogy néz ki a program, stb...
A Man_Receive_Init --> Manchester vevő inicializálás
És valóban elfelejtettem a porgramnyelvet: mikroC Szal mikroC-ben sikerült valakinek közületek összehozni?
A legújabb PICKit2 verziód van a gépeden és a legújabb firmware az égetőben?
Sziasztok!
A kapcsolas: pickit2:1-5 kivezetesei a kovetkezo labakra vannak rakotve a pic16f88-on (ilyen sorrendben): (MCLR: 4, VDD: 14, VSS: 5, PGD: 13, PGC: 12). Tovabba van meg 2 led, elotet ellenallassal az RA6, RA4-en. Semmi kondi, kvac, egyeb. Csak annyi amennyi fent irtam. A belso osc-ot hasznalom... De ebben az esetben nem is kell tobb! Nem?! A program mukodik is (egy ideig, akarhanyszor elinditatom az On checkbox-al, csak arra kell figyelnem hogy ne hasznaljam a check communication-t, vagy ne inditsam ujra a programmert). Check communikation mukodik, kiirja hogy pickit2, pic device found. De azutan mar nem tudom visszaolvasni a teljes program memoriat. Ez egy uj pic. Nemreg rendeltem a hestorebol. De van egy parja is majd azzal is kiprobalom, de ezt csak szerdan/penteken tudom megtenni. Ha a pic16f887-el szerelt demo boardot nezem annak nincsenek ilyen gondjai. A programmert most updateltem meg, most: appv: 2.61.00, dev file version: 1.61.00, os firmware: 2.32.00. Nemlehet hogy ezt a calibrate VDD, set unit id-t kene kiprobalni... A VDD pickit2: 5.00 V-on van... A config word szerintetek rendben van? Ezt csak ugy copyztam a pic16f88.inc vegerol... __CONFIG _CONFIG1, _CP_OFF & _CCP1_RB0 & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_IO __CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF kossz a faradozast! udv, Sanyi
Mpasm-el forditva a csatolt programmal is tudom produkalni a hibat...
Kiirom, futtatom, OK. CheckCom -> hiba: program mar nincs ott...
Szia,
Sajnos nem ismerem a Manchester konyvtarat, de rakerestem es azt irjak, hogy a Man_Receive_Init fuggveny blokkolo, tehat addig var amig a muvelet sikerrel be nem fejezodik. Magyaran az, hogy a programod beall arra utal, hogy valami nem stimmel es a muvlet nem tud sikerrel befejezodni. Ha jol vettem ki akkor az inicializalas szinkronizal is, tehat ha a szinkronizacionem jon letre akkor var ameddig ez bekovetkezik. En arra gyanakodnek igy latatlanban hogy a portok nincsenek jol felinicializalva (pl nincs kikapcsolva ADC vagy valami mas periferia amitol nem tud a Man_Receive_Init altal hasznalt port labak digitalisra kapcsolodni). Nezd meg, hogy hogyan vannak a portok a muveletre felkeszitve, nem kell-e valamit meg elotte allitani a portokon stb. A masik lehetoseg, hogy a WDT-t bekapcsolod es ilyen esetben mikor egy ideig nem jon ki akkor a WDT-vel kihozod es jelzed a hibat a keszuleken (LED vagy LCD nem tudom mit hasznalsz). Persze ettol meg az eredeti problema nem oldodott meg, csak legfeljebb kesobb fogod tudni ha valami nem smackol. 73! Idézet: „Semmi kondi, kvarc, egyéb.” Öreg hiba! Vdd és Vss közé feltétlenül kell tenni egy 100 nF-os szűrést (pontosabban "decoupling capacitor"-t), minél közelebb a PIC kivezetéseihez. Kerámia vagy csepptantál legyen. Az MCLR lábat sem árt 10 kOhm-mal felhúzni Vdd-re. A config bitekkel elvileg kikapcsoltad az alacsonyfeszültségű programozást (LVP_OFF), de ha nagyon nem akarja az igazságot, meg lehet próbálni a PGM láb (9) lehúzását (pl. 1 kOhm-os ellenállással Vss-re kötni).
Köszönöm szépen a választ!
Valóban az ADC-t előtte bekapcsolom, felkonfigurálom. Ez okozhatja a probémát? 73!
Ok, koszonom szepen a segitseget! Ki fogom probalni decoupling capacitor-ral, es jelentkezem az eredmennyel (most sajnos epp nincs nalam ilyen alkatresz... kb penteken fogom tudni kiprobalni, de mar varom...)!
Elolvasgattam eleg sok microchipes doksit, de ezt a decoupling capacitort egyikben sem talaltam meg (find-el), es annyira ki sem volt hangsulyozva hogy felfigyeljek ra, talan a reset sequence korul kene korbeneznem... Na es meg raadasul kezdo is vagyok... Kossz udv, Sanyi
Tulajdonképpen nem is a mikrovezérlőknél, hanem már a logikai áramköröknél (a TTL és CMOS IC-knél) előjön a helyi szűrés szükségessége. Az egymásra ültetett tranzisztorokkal megvalósított (totem-pole) kimenetek a logikai szint átkapcsolásakor hirtelen megterhelik a tápfeszültséget, s nem volna egészséges, ha ezek a tüskék tovaterjednének a táfeszültség vezetékeken. Ezért kell minden logikai IC mellé egy-egy kis szórt induktivitásű szűrőkapacitást tenni.
Ha megnézed a gyári demókártyádat, azon is találsz egy kondenzátort a Vdd és a Vss lábak közé kötve.
Szia!
Igen a demokartyan lattam, hogy ott van meg nehany dolog, de azon felbuzdulva hogy a kulso oscillatort megusztam, a VDD-VSS kondit is lesporoltam... Igy tenyleg eleg egyszeru lett a kapcsolasom... Koszonom a segitseget es a magyarazatot! udv, Sanyi
A decoupling capacitor-t semmi esetre sem szabad elhagyni, mert a hiánya olyan jellegű bizonytalanságokat, "misztikus jelenségeket" okoz, mint amilyeneket tapasztaltál is.
Egyébként ezt az alkatrészt magyarul csatolásmentesítő kondenzátornak kellene neveznünk, mivel az a feladata, hogy megakadályozza a tápfeszültségen keresztül felllépő csatolást az egyes fokozatok között. Ahogy icserny is írta, egy digitális áramkörben a kimenet állapotának változásakor nagyon rövid idejű, de nagyon erőteljes áramtüskék jönnek létre a tápfeszültségvonalon. Főként a tápfeszültség IC-hez vezetésének geometriájától, azaz a tápvezetékek induktivitásától függően az áramtüskék feszültségtüskékké alakulnak. Ezek olyan mértékűek is lehetnek, hogy az egyik egység által okozott "átkapcsolási zaj" egy másik egység működését akár jelentősen is befolyásolhatja. Ezt nevezzük (tápfeszültségen keresztüli) csatolásnak, és a csatolásmentesítő kondenzátornak az a feladata, hogy a tápfeszültségnek az IC-hez lehető legközelebbi pontján történő szűréssel a tápfeszültségen lévő tüskéket elsimítsa, így biztosítva, hogy a tápfeszültségen keresztül ne alakulhasson ki csatolás az egyes részegységek között. A csatolásmentesítést, főleg rádiós körökben magyarul leginkább hidegítés-nek szokták emlegetni, így a "hidegítő kondenzátor" kifejezés ugyanezt jelenti. A leírtakból rögtön kitűnik, hogy csatolásmentesítő kondenzátornak csakis olyan típus alkalmas, aminek kicsi a saját soros induktivitása, gyakorlatilag a leginkább a célnak megfelelőek a kerámia tárcsakondik. Jó minőségű (nem tekercselt) fóliakondenzátor vagy csepptantál szokott még szóbajönni ilyen helyen. A kapcsolási zaj jellegénél fogva igen magas frekvenciatartományt kell elnyomni, így általában 47-220nF közötti értékű csatolásmentesítést alkalmaznak a gyakorlatban. Én annak idején, még a TTL korszakban (amikor még a CMOS áramkörök csak gyerekcipőben jártak) úgy tanultam, hogy minden digitális IC mellé kell egy kerámia csatolásmentesítő, és minden 5-10 digitális IC mellé plusz egy (de minden áramkörbe legalább egy) nagyobb értékű, pártíz µF-os elektrolit kondenzátor. Manapság, a CMOS áramköröknél egy kicsit lehet "lazább" az ember, mert ezek már sokkal kevésbé rángatják meg a tápáramot, a fogyasztásuk is eleve nagyságrendekkel kisebb, mint a hagyományos TTL IC-ké, de teljesen elhagyni nem lehet a csatolásmentesítést. Minden áramköri egységbe kell tenni legalább kerámia (vagy hasonló) kondenzátort a tápfeszültségre, és nem árt egy pár µF elkó, vagy tantál elkó sem.
Sziasztok!
A 16F877 leírásában az EEPROM írásnál láttam egy assembly példát, amiben szerepel a "GOTO $" utasítás. Meg tudná valaki válaszolni, hogy mi ez pontosan, mert nem találtam sehol. Köszönöm.
Szia!
Ok, koszonom a magyarazatot es a segitseget! (sajnos csak penteken tudom kiprobalni, addigkicsit programozok...) Egy egyszeru relet akartok vezerelni. Probapanelen mukodik is... Majd meg eletem elso PCB-jet kell osszehoznom... De mar jonehanyszor megneztem, elolvastam a tanito videokat, cikkeket... udv, Sanyi
Ez a legegyszerűbb végtelen ciklus. A GOTO $ utasítás ugyanaz, mint a
A $ jel egyébként az assembler számára az aktuális utasítás memóriabeli címét jelenti.
Szia!
Pontosabban a $ egy előre definiált szimbólum, ami az épen fordított utasítás címét értékét adja. Máshol előfordulhat $+1, $+cimke, valami-$ formákban is. Szia Idézet: „Majd meg eletem elso PCB-jet kell osszehoznom... De mar jonehanyszor megneztem, elolvastam a tanito videokat, cikkeket...” Mielott PCB-t csinalnal, elotte erdemes vagy dugdosos vagy forrszemes probapanelen megepiteni az aramkort es letesztelni. Sok esetben nincs is szukseg sajat NYÁK tervezesere, elegendo a forrszemes vagy akar "csikos" probapanel is.
Sziasztok!
18F4620- as mikrokontrollerrel próbálom elmenteni az EM 406 os GPS által küldött NMEA mondatokat. A GPS-t kipróbáltam egy uart-usb átalakító segítségével a számítógépen és jól működik, folyamatosan küldi a karaktereket. Kezdésnek írtam egy olyan programot CCS C ben, ami a számítógépről küldött karaktereket elmenti, majd egy adott elemszám után kiírja. Ez is jól működik. Amikor azonban ezt a GPS által küldött karakterek mentésére szerettem volna használni az első 2 karakter után beragad az UART. Akárhogy próbáltam mindig csak $P jelenik meg. CCS C-t használok a szokásos #use rs232... direktívával, ide beírtam az ERRORS -t, amely állítólag újraindítaná az UART-ot, ha túlcsordul a karakter a bemeneti tárolóban, de ez sem segít. A karakter beolvasására a getc()-t használom. Kérlek titeket, ha van bármi ötletetek osszátok meg velem!
Detektáltad a hibát a rendelkezésre álló jelzőbitek vizsgálatával? (túlcsordulás, stb.)
Szia!
Nem detektáltam. Ezek a jelzőbitek a CCS által használt változók, vagy a PIC hardveres regisztereinek egy-egy bitjei?, nem ismerem ezeket. Kérlek írd meg, hogy lehetne ezt megoldani. Mellékelem a kódot, amely a számítógépről érkező karaktereket rendesen lementi, de a GPS-ét már nem. Én arra gondolok, hogy a sebességkülönbség miatt van hiba.
Ennyi printf után az isr-ben én inkább azt javaslom, hogy hagyd a kontrollereket...
Idézet: „nem ismerem ezeket. Kérlek írd meg, hogy lehetne ezt megoldani.” Adatlapban benne van minden.
Kedves Potyó!
volt ilyen megoldásom is, amely szintén csak ugyanúgy működött, mint az előző:
ha nincs hasznos hozzászólásod, akkor azt tartsd meg magadnak, ha arra építenénk hogy minden benne van az adatlapban, akkor törölhetnénk is a fórumot. De úgy tűnik hogy az adatlap rajtad sem segít, ha nem tudsz normális választ küldeni...[code=c]
Sziasztok.
Akartam picet programozni de sehogy se megy Az égető egy pickit 2, ami eddig tökéletesen működött. Kb 2 hónapot állt erre, nem tudok vele programozni Mi lehet a gond?
Szia!
A 16F628(A) törléséhez mininum 4.50V Vdd kell. Épen a határra van állítva a Vdd. Állítsd be 5.00V-ra és menni fog... Ha másik USB aljzatba dugod, akkor újra kell kalibrálni... Szia.
Szia!
Megszakításos soros vonali vétel esetén, ha az RCSTA OERR bitje hibát jelez, akkor a vett karaktert ki kell olvasni a RCREG-ből, mivel hibás el kell dobni. A hibabit csak a CREN törlésével (azaz a vevő kikapcsolásával) törölhető. Az RCREG kiolvasása nagyon fontos, hiszen ez törli a megszakítás kérést. Szia
Szia.
Azért volt 4,5V alá állítva mer max 4,6V ot ad le a programozó. De kipróbáltam más hardverral is azt vitte gond nélkül. Most nézem át a panelt nincs e zárlat valahol. De nem nincs, most se tudom felprogramozni. Egyébötlet?
Na nagy nehezen elkezd programozni az ellenőrzésnél hibát talál.
Az "ALL PROTECT" az nem azt jelenti hogy a törlése, irása védve van?
A 4.6V az nem a tápfeszre vonatkozik amikor a VDD ON állapotban van? Tegyél a PIC tápfeszlábára egy 100nF kondit. |
Bejelentkezés
Hirdetés |