Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   1057 / 1319
(#) Hp41C válasza maya711 hozzászólására (») Márc 5, 2012 /
 
Szia!

Még a 8.83 -ban is sárga a "led" a 16F1825 esetén az MpLab Sim előtt. Még mindig fejlesztés alatt a szimulációja...

Van még több hasonló:
10F322 -ben nem szimulálja a TMR2 megszakítást. Nála is sárga a "led" ...
(#) Hp41C válasza Hp41C hozzászólására (») Márc 5, 2012 /
 
Még a 8.84 -ban is sárga a "led" a 16F1825 -nél...
(#) Csabesz04 hozzászólása Márc 5, 2012 /
 
Sziasztok!

Megepitettem http://www.hobbielektronika.hu/kapcsolasok/egyszeru_lpt_egtoaramkor...4.html egeto aramkort es letoltottem hozza a WPB 1.32b verziot es ezzel probalom felprogramozni a PIC 16F628A mat.
Sok probalkozas utan sikerult feldobni ra mindent,a Flash,EPROM memoriat es a Configot is beolvasva es egyeztetve a hex file al azonossagot talal,tehat jo.

Az ID LOC al viszont valami gubanc van,mert a pic rol beolvasva nem egyforma es nem tudom mi a gond.

Esetleg valami tippetek van,hogy mit figyeljek meg,mivel probalkozzak?
Esetleg valaki elmagyarazna,hogy mi is egyaltalan az ID Loc es hol lehet beallitani,vagy mi fa'n terem...

Elso kiserletezesem pic el es jo lenne,ha pozitiv elmenykent maradna meg es nekifoghatnak a programozasi nyelv megtanulasanak is.

Elore is koszonom a valaszt!
Udvozlettel, Csabi
(#) gajvik4 hozzászólása Márc 5, 2012 /
 
Sziasztok!

Egy kis segítséget szeretnék kérni mátrix billentyűzettel kapcsolatban. A megvalósítás hasonló mint Topi cikkében, annyi különbséggel, hogy egy készen megvásárolható 3x4-es fóliabillentyűzetről van szó. A követelmény, hogy 2 gomb is érzékelhető legyen egyszerre. Minden szépen működik egészen addig, amíg az egyszerre nyomott gombok nem azonos oszlopban vannak. Azért nem teljesen tiszta nekem a dolog, mert sorról sorra vizsgálom a bemeneteket.

Előre is köszönöm a segítséget.
(#) menyus hozzászólása Márc 5, 2012 /
 
Sziasztok!

Segítséget szeretnék kérni. Régebben már írtam ez ügyben, nevezetesen hogy valamiért táp merüléskor, illetve az áramkör kikapcsolásakor az eeprom területbe belerondít a kontroller. Akkor arra jutottunk hogy mivel a BOR nincs bekapcsolva (mert a BOR küszöbe (4,5V) alatti feszről jár az áramkör (li-on akku) ) ezért ez okozhat ilyet. Nos, azóta váltottam kontrollert, ugyanaz a tipus (16f648A) csak most az alacsonyabb tápfeszről járó "LF" szériát használom. Azért bíztam ebben a megoldásban mert az "LF" széria 2 V ig működőképes, a li-on akku védőáramköre pedig 2,7V nál már lekapcsol, tehát elvileg még a normál feszültségtartományon belül lekapcsolja a tápfeszt a kontrollerről. De sajnos a probléma ugyanaz...ha az akku lemerül a következő bekapcsoláskor már tele van írva az eeprom terület 0x00 - kal. Sőt ez a helyzet akkor is, ha egyszerűen kikapcsolom az áramkört a táp elvételével. Mi okozhatja ezt, és hogyan tudnám elkerülni? Esetleg egy külső reset ák. ami a MCLR lábat földre húzza ha a táp a kritikus szint közelébe ér? Ez gond nélkül megoldható, de mi a helyzet a normál kikapcsoláskor jelentkező ugyanilyen jellegű problémával? Azt hogyan tudnám kimozogni..? Mert a probléma a manuális kikapcsoláskor (táp elvétel) is jelentkezik néha. Help please...Köszönöm előre is..
(#) kissi válasza menyus hozzászólására (») Márc 5, 2012 /
 
Magától nem írja tele az EEPROM-ot, szerintem valami hiba lehet a programodban ( gondold el, ha a tápelvételre így reagálna, akkor mit lehetne rábízni ?! )! Konkrét javaslatom nincs, de elektromos tervezési vagy programhiba lehet a jelenség mögött, amit meg kell szüntetni, nem "elkerülni" !

Ha megnézed az EEPROM-ot, akkor mindig a 8-al maradék nélkül osztható helyeken van a hiba, nem akárhol --> szerintem program !!

Steve
(#) menyus válasza kissi hozzászólására (») Márc 5, 2012 /
 
Ezt a lehetőséget is szem előtt tartom természetesen, de ez esetben (ha programhiba) mi köze lehet ennek az egésznek a táphoz..? Mert egyébként minden kifogástalanul működik egészen addig míg le nem merül az akku vagy ki nem kapcsolom az elektronikát...És ráadásul csak esetlegesen /véletlen szerűen jön elő a probléma, van hogy két három ki bekapcsolás után van hogy az elsőnél, van hogy csak a 10. nél. A tápnál ugyanez, van hogy elketyeg az áramkör 3 akku töltéssel is probléma nélkül, a negyediknél már nem működik az egész cucc. Ilyenkor szoktam "belenézni", mi van az eepromban...0x00 ák..sajna...Ha ez program hiba lenne akkor ez állandóan jelentkezne azonos körülmények között, de nem így van.
(#) icserny válasza menyus hozzászólására (») Márc 5, 2012 /
 
Most akkor az új PIC esetében be van kapcsolva a BOR? Ha nincs, akkor a program akármit is csinálhat lekapcsoláskor!
(#) menyus válasza icserny hozzászólására (») Márc 5, 2012 /
 
Nincs bekapcsolva mert mint említettem li-on akkuról (3,5 - 4,2V) jár az ÁK., a BOR pedig az "LF" szériánál is 4,5V lehet (bár külön az "LF" szériára vonatkozó ilyen utalást nem találtam az adatlapban) Akkor mi lehet a megoldás? Mert 5 V ról nem járathatom egy li-on akkuról, step up al meg sokat fogyasztana... Mert biztosan van megoldás, mert megoldották ezt már már li-on akkus készüléknél is már valahogy mások is.....
(#) menyus válasza menyus hozzászólására (») Márc 5, 2012 /
 
Esetleg még arra gondolok hogy a táp puffere relative "nagy". 100uF. Amikor kikapcsolom az áramkört akkor pár 100 msec alatt csökken "0" ra a tápfeszültség, és ez lehet hogy már elég ahhoz hogy hülyeségeket csináljon a kontroller. Ha egy külső reset áramkört belemókolnák ami az MCLR lábat vezérelné... nem jelenthetne megoldást? Mert az valószínűleg gyorsabban lerántja a reset lábat földre mint ahogy a puffer kisülne. Vagy esetleg a pufferrel párhuzamos 10K hogy gyorsabban kisüljön..? vagy nem jó a gondolatmenet...? De ezek persze csak amolyan ötletelések a részemről.
(#) potyo válasza menyus hozzászólására (») Márc 5, 2012 /
 
Az EEPROM írás után tiltod az EEPROM írást? WREN bitre gondolok.

Kereshetnél olyan kontrollert, aminél állítható a BOR feszültsége. Olyan kontrollert nem lehet választani, aminek állítható a BOR feszültsége? Pl. 18F1320, bár ez kicsivel drágább. 16F1827 esetleg?
(#) menyus válasza potyo hozzászólására (») Márc 5, 2012 /
 
Persze, a WREN az tiltva van írás után. Hát, ha felteszem a mérlegre hogy hardveresen reset áramköröket kell bele mókolnom a kész panelre(ami ráadásul nem is biztos hogy megoldáshoz vezet...) akkor a kontroller csere és a kód átírása is életszerűnek látszik. No meg a panel áttervezése...Az igazság az hogy már az elején elcsesztem, mert egy kontrollerekkel foglalkozó oldalon olvastam az állítható BOR feszültség szintekről, és ebből én általánosítottam hogy mindegyik kontroller ilyen. Az már később, a panel letervezése és a kód megírása után derült ki hogy a 16F628/648 nál fix a BOR feszültsége, ráadásul esetemben annyira magas hogy a BOR t muszáj kikapcsolnom különben állandóan reset ben lenne az áramkör...
(#) kissi válasza menyus hozzászólására (») Márc 5, 2012 /
 
Idézet:
„Mert egyébként minden kifogástalanul működik egészen addig míg le nem merül az akku vagy ki nem kapcsolom az elektronikát.”
Szerintem például tud ilyet csinálni valami inicializálás elfelejtése az elején és bizonyos regiszterek "tetszőleges" állapottal indulva "meghülyíthetik" a programodat ( ez véletlenszerű jelenségeket produkál!), hiszen csak "RESET" esetén jön vagy jöhet elő a probléma !
Nézd át az inicializálásokat, minden regiszter alapállapotát határozd meg!

Steve
(#) menyus válasza kissi hozzászólására (») Márc 5, 2012 /
 
Köszönöm, akkor átnézek mindent az elejétől. Viszont lehet nem jól értelmezem, de szerintem pont azért van ez a rendellenesség mert a kritikus feszültség szint kiváltotta RESET elmarad a BOR kikapcsolása miatt. Más miatt pedig nem tud RESET be menni a kontroller, az MCLR kikapcsolva...stb. Ha a programból futna resetre valami nagy "bug" miatt, akkor pedig ez állandóan előjönne, nem csak a táp esésekor és a kikapcsoláskor...Vagy nem jól gondolom? A nem használt perifériák tiltva vannak (ADC, timer ek..stb), az ezekhez tartozó regisztereket ez esetben nem kell külön inicializálni, vagy ez is bekavarhat..?
(#) kissi válasza menyus hozzászólására (») Márc 5, 2012 /
 
Azt írtad, hogy a táp kikapcsolásakor is előjön ez a jelenség: szerintem 100 µF nem olyan nagy kapacitás, hogy ez ilyen problémát okozzon, csináltam már néhány áramkört BOR nélkül ( elemtakarékosság miatt, bár általában én is bekapcsolom), de nem volt vele problémám (igaz nem EEPROM-ot írtam !).
Ha lehet próbáld ki tápról és akkor bekapcsolhatod a BOR-t és így talán kideríthető, hogy szoftveres-e a probléma ( bár lehet, hogy ezt is eltakarja a BOR! )!
Sok sikert!

Steve
(#) menyus válasza kissi hozzászólására (») Márc 5, 2012 /
 
Köszi, az ötlet kiváló! Holnap teszt...De így csak a kikapcsolást tudom tesztelni, a folyamatos akkumerülést nem tudom modellezni, max 4,5 V ig bekapcsolt BOR esetén...De gyanítom hogy így megoldódik a probléma, legalábbis a teszt idejére.
(#) menyus válasza kissi hozzászólására (») Márc 5, 2012 /
 
Egyébként amikor ez a jelenség előjön akkor a program a közelében sincs az eeprom írásnak. Tehát nem arról van szó hogy írás közben nem azt írja amit én szeretnék, hanem "csak úgy" véletlenszerűen belegányol az eeprom tartalmába. És nem feltétlenül állandóan oda ahol a képen bejelöltem, vagy hogy két oszloppal erréb vagy arrább, de mindig függőlegesen, oszlopszerűen...
(#) Hp41C válasza menyus hozzászólására (») Márc 5, 2012 /
 
Mekkora órajellel jár a 16LF684A?
(#) kissi válasza Hp41C hozzászólására (») Márc 5, 2012 /
 
Na még ez is lehet ... !

Steve
(#) menyus válasza Hp41C hozzászólására (») Márc 5, 2012 /
 
4 Mhz belső oszcillátorról jár, de 16LF648A, szerintem csak elírtad..
(#) Hp41C válasza menyus hozzászólására (») Márc 5, 2012 /
 
Igen, úgy látszik elírtam...
Még egy kérdés:
A megszakítási mentések után beállítod a megfelelő bank -ot?
(#) pjg válasza pjg hozzászólására (») Márc 6, 2012 /
 
Elkészült a masina. Ez. Annyi változtatással, hogy a 2 data és a clock kapu felhúzó ellenállása nem 10, hanem 1KOhm. Amit viszont nem értek. A PIC katalógusa szerint a Vss maximum értéke 14V. Ebben az áramkörben van egy 7812 ami alapból 12,3V-ot ad. A gnd láb 2 diódával való megemelése ezt a 12,3-at megemeli 13,7V-ra, ami erősen közelít a határértékhez. Miért emelik meg a tervezők ezt a feszt? Nem elég a 12 V? Holnap veszek PIC-et és főpróba.
(#) menyus válasza Hp41C hozzászólására (») Márc 6, 2012 /
 
Hűűha...Ezt speciel nem tudom, de megnézem. Elméletben "watt" oldaláról puskáztam a megszakítás mentést / visszaállítást, de hogy a bank el van e mentve, majd vissza van e állítva ezt nem tudom, de már nézem is. Erre nem is gondoltam, lehet ez a baj...? De ha itt lenne a hiba akkor ez üzem közben is tuti jelentkezne mert másik bankba térne vissza a program mint mikor az int bekövetkezett, ezért nem működne valami a megszakítás lefutása után, ez már kiderült volna. De köszönöm az ötletet már nézem is, tényleg nem tudok már mire gondolni, ezzel szívok hónapok óta..
(#) menyus válasza Hp41C hozzászólására (») Márc 6, 2012 /
 
A status regiszter állapota el van mentve, tehát ez esetben aktuális bank állapota is...



  1. ;MENTÉSEK
  2. MOVWF  AKKU_TEMP
  3. SWAPF  STATUS,W
  4. MOVWF  STATUS_TEMP
  5. CLRF  STATUS
  6. MOVF  PCLATH,W
  7. MOVWF  PCLATH_TEMP
  8. CLRF  PCLATH
  9. BCF STATUS,IRP
  10. MOVF  FSR,W
  11. MOVWF  FSR_TEMP
  12. .
  13. .
  14. .
  15. .
  16. .
  17. .
  18. .
  19.  
  20.  
  21. ;VISSZAÁLLÍTÁSOK
  22. MOVF  FSR_TEMP,W
  23. MOVWF  FSR
  24. MOVF  PCLATH_TEMP,W
  25. MOVWF  PCLATH
  26. SWAPF  STATUS_TEMP,W
  27. MOVWF  STATUS
  28. SWAPF  AKKU_TEMP,F
  29. SWAPF  AKKU_TEMP,W
  30.  
  31.  
  32.  
  33. RETFIE
(#) pjg válasza pjg hozzászólására (») Márc 6, 2012 /
 
Dehogy is Vss! Vpp.
(#) menyus válasza Hp41C hozzászólására (») Márc 6, 2012 /
 
Most nézem, hogy szerintem nem arra válaszoltam amit kérdeztél... Bocs még reggel van nagyon...éjszakáztam. Nos, a mentések után a megszakításban többször is váltok bankot mert muszáj. Ezért is működik a dolog ha ott lenne valami bibi akkor valami nem működne, többek közt az eeprom írása sem aminek a regiszterei a bank1 ben vannak, aztán állítok át közben kimeneteket (PORTA, PORTB..stb, led visszajelzések) azok meg a bank0 ból mennek. Tehát ez a része tuti működik. A megszakítás lefutása után meg visszaállítom a mentéseknek megfelelően a regiszterek állapotait. Szerintem a megszakítás rutin jól működik.

De miért kérdezted az órajelet amire "kissi" is reagálta hogy az is gáz lehet...? Sok variációm nincs ezzel mert 4 Mhz belső rc oszcillátort használok, max át tudom állítani a 38Khz es módba. Ebben az esetben viszont az időzítéseket is át kell számolgatnom, ezt nem nagyon szeretném. De ha ez megoldást jelenthet nekiállok.
(#) Hp41C válasza menyus hozzászólására (») Márc 6, 2012 /
 
Szia!

- A mentés rendben. A 4. sor a 0. Bank -ot választja ki. Ugye az AKKU_TEMP és a STATUS_TMP a 0x70 .. 0x7F területen van? Még túl is biztosítottad magad a 9. sorral - ezt is megcsinálja a 4. sor.
A visszaállítás mindig működik, hiszen a STATUS visszaállítása a Bank kiválasztáést is visszaállítja.

- 4MHz ig lehet hajtani min. 2V -tal a 16F648A -t az adatlapban található Figure 17-2 szerint.

Ezt az elírás egyszer már okozott problémát: nekem: 16F648 - 16F684. Mind a kettő létezik.
(#) menyus válasza Hp41C hozzászólására (») Márc 6, 2012 /
 
Valóban a 9. sor nem is kéne. Az igazság az hogy már kínomban nem tudom mit csináljak vele..ez is valami ilyen "hátha"...módra került bele. Hát, ha 4 Mhz en még ketyeg a kontroller 2 V ról akkor nem ez a baj, mert a lion akku mélykisülés elleni védőáramköre már 2,7 - 2,8 V nál lekapcsolja az akku feszt a kütyüről. Nagyon utálom már ezt a hibát.....átlag 1 héten egyszer veszem elő mert felidegesít és kb 1 hét kell hogy lenyugodjak és ne tapossam meg az egész szerkentyűt. Mi a bánatot nézzek még meg..?

  1. CBLOCK  0X70 ;BÁRMELYIK BANKBÓL ELÉRHETŐ TERÜLET
  2.  
  3. AKKU_TEMP
  4. STATUS_TEMP
  5. PCLATH_TEMP
  6. FSR_TEMP
(#) kalmangabi hozzászólása Márc 6, 2012 /
 
Az 1178033. kérdésben nem tudtok segíteni?

Lenne egy kérdésem egy PIC16F871 ADConverterjével kapcsolatban.
Épp egy 18 Ledes kivezérlésmérőt próbálok kivitelezni. Gondoltam, hogy nem kell elé erősítő fokozat mert majd inkább úgy konfigurálom az ADCt, hogy legyen Vref bemenet és ha azt lejjebb veszem akkor ugyan azt a hatást érem el. Amúgy az első két AD bemenetet használom. A Vrefen egy trimmer poti van a tápfesz (5V) és a föld között.
Szerintetek mitől lehet az, hogy ha a Vref et állítgatva egy kis tartományban (közel 5V) jól működik a cucc, de ha még lejjebb megyek akkor egyszer csak kigyullad az összes LED és kész?
(#) kissi válasza menyus hozzászólására (») Márc 6, 2012 /
 
Mi van a táppal történő próbával ?

Steve
Következő: »»   1057 / 1319
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem