Fórum témák

» Több friss téma
Fórum » PIC kezdőknek
 
Témaindító: Placi84, idő: Okt 3, 2005
Témakörök:
- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!
- A táplábak mellé a lehető legközelebb 100nF-os KERÁMIA kondenzátorokat kell elhelyezni.
- Az MCLR lábat, 10kohm-mal fel kell húzni a Vdd tápfeszültségre.
- Külső kvarc használatakor 4MHz-ig XT, a fölött pedig HS konfigurációt kell beállítani.
- Stabilizált tápegységet kell használni, a kapcsoló üzemű "telefon töltő" adapterek okozhatnak hibákat.
- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.
- A PIC adatlapja (PDF), tartalmazza a lábak kiosztását és a PIC minden paraméterét. Az adatlap ingyen letölthető!
- Egyes PIC típusoknál az RA4 nyitott nyelőelektródás (Csak lefelé húz L szintre, H szintet nem ad ki!)
- Ha a PGM lábat digitális ki-/bemenetnek használod, az alacsony feszültségű programozási lehetőséget le kell tiltani.
Lapozás: OK   203 / 1211
(#) DINI válasza zenetom hozzászólására (») Feb 1, 2012 /
 
__config _INTRC_OSC_NOCLKOUT & _LVP_OFF & _WDT_OFF & _PWRTE_ON & _BODEN_ON & _CP_OFF

ezt használtam belső oszcillátornál, 9600 Baudnál működik is, de amint 57600 Baudot állitottam be, mintha a szinchronizáció meghalna és nem értem.

külső oszcillátornál ami 20 MHz 22 pf kondenzátorokat használtam. Mondjuk ott azthiszem HS helyett XT - t raktam az baj lehet?
(#) Hp41C válasza DINI hozzászólására (») Feb 1, 2012 /
 
Hogyan kezeled az UART -ot? 57600 Baud -nál kb. 173us áll rendelkezésre egy adat elvételére. 20 MHz-n 865 utasítás, 4 MHz -n 173. Megszakításos, bufferelt uart kezelés kellene, a ráfutási hiba veszéley miatt.
(#) bbb válasza icserny hozzászólására (») Feb 1, 2012 /
 
Szia!

MCLR felhúzó ellenállat 10k, a helyén van. A ledet lehúzó ellenállás, ahogy a rajzon is szerepel, 470ohm, szintén a helyén van.

Tápellátás választható, vagy USB, vagy pedig külső táp, ilyenkor egy feszstabon keresztül kap 5V-ot.

A PICen kívüli hibakeresésre jutottunk mi is, ezért próbáltuk ki ugyan azzal a PICkel dugdosósban is, hogy megbizonyosodhassunk róla máshol lesz a hiba (na meg 1400Ft-ot elpukkasztani nem vicces dolog).


Paneltervet megkérdezem a kollégám, akivel terveztük, hogy felrakhatom-e (nem pénzes dolog, szigorúan hobbi, csak először az ő honlapján szeretnénk publikálni). Tudom, hogy így "vaktában lövöldözés" a segítséged, de sajnos nincs mit tenni, amíg nem bólint rá.
Éppen emiatt kérdeztem általánosságban (a lehetőségekhez mérten körbeírva), hogy mi okozhatja ezt a jelenséget, hátha valaki azonnal rávágja, hogy te pajti nézd meg össze van-e kötve az xy láb a táppal...
(#) zenetom válasza DINI hozzászólására (») Feb 1, 2012 /
 
Külső oszcinál is ugyanezeket a konfigbiteket használtad?
Szerk.: csak biztos ami biztos alapon kérdezem.
(#) DINI válasza Hp41C hozzászólására (») Feb 1, 2012 /
 
Nos aszinkron módon, nem vagyok benne profi így ha hülyeséget írok, csak szóljatok. Hallottam valamit az autobaudról, de ahhoz már végkép nem értek.

Csatolom az asm fájlt
(#) DINI válasza zenetom hozzászólására (») Feb 1, 2012 /
 
nem, ott természetesen másikat:

__config _HS_OSC & _LVP_OFF & _WDT_OFF & _PWRTE_ON & _BODEN_ON & _CP_OFF
(#) Hp41C válasza DINI hozzászólására (») Feb 1, 2012 /
 
4MHz:
Ha BRGH=0, akkor belső 4MHz órajelle a BGR = INT((Fosc / 64 / Baud) -1) 0 -t ad. - Nem használható. Ha BRGH=1, akkor BGR = ((Fosc / 16 / Baud) -1) 3.34 - Túl nagy a kerekítésből származó hiba.
20MHz:
Ha BRGH=0, akkor belső 4MHz órajelle a BGR = ((Fosc / 64 / Baud) -1) 4.42 -t ad. - Túl nagy a kerekítésből származó hiba. Ha BRGH=1, akkor BGR = INT((Fosc / 16 / Baud) -1) 20 -at ad. - Ez lenne a jó beállítás.

20MHz külső quartz -hoz HS oszcillátor és 2*22pF kerámia kondenzátor kell és a pic táp és föld lába közé, amilyen közel csak lehet, 100nF .. 1µF kerámia kondezátor.
(#) DINI válasza Hp41C hozzászólására (») Feb 1, 2012 /
 
Nos értelek és milyen számot tegyek a SPBRG regiszterbe, az adatlapján decimálisan 21 - et ír és így is kiprobáltam és nem ment az baj lehet, ha a configban HS helyett XT oszcillátort raktam?
(#) Hp41C válasza DINI hozzászólására (») Feb 1, 2012 /
 
Az lehetett a baj... Ezt olvastad? Ha a küldés arra vár, hogy üres legyen az adó, akkor nagy valószínűséggel lekésed a vételt és egymásra futás keletkezik (az meg csak a vevő kikapcsolásával törölhető).
(#) zenetom válasza DINI hozzászólására (») Feb 1, 2012 /
 
Ezzel a konfiggal (_HS_OSC) rakj egy 8MHz-es kvarcot a PIC-re 22pF-os kondikkal, és a SPBRG értékét állítsd 0x0C (dec.: 12)-re. És a BRGH legyen 0. Vagyis, helyette:
  1. movlw0x06
  2. movwf SPBRG ;set 9600 bps
  3. movlw B'00100100'
  4. movwf TXSTA


legyen ez:
  1. movlw 0x0C
  2. movwf SPBRG;set 9600 bps
  3. movlw B'00100000'
  4. movwf TXSTA
(#) DINI válasza Hp41C hozzászólására (») Feb 1, 2012 /
 
Aha értelek előre is nagyon köszönöm és ha valamit rosszul irtam ne haragudjatok holnap ki is próbálom akkor és majd jelentkezem
(#) zenetom válasza DINI hozzászólására (») Feb 1, 2012 /
 
Remélem adtunk egy pár ötletet.
(#) DINI válasza zenetom hozzászólására (») Feb 1, 2012 /
 
Aha ezt is kipróbálom, bár bevallom őszintén ezt nem értem, mert az adatlap szerint ha 9600 Baud az átvitel akkor a BRGH=1, de kiprobalom és köszi
(#) DINI válasza Hp41C hozzászólására (») Feb 1, 2012 /
 
Aha és nem tudnál tanácsot adni, hogy módositsam a programot vagy ha megkérlek irnál valamit amiből megérteném.
(#) zenetom válasza DINI hozzászólására (») Feb 1, 2012 /
 
Ez a formula van BRGH = 0 esetén:
Idézet:
„Asynchronous) Baud Rate = FOSC/(64(X+1))”

Vagyis 8MHz-nél:
8MHz/(64(12+1)) = 9615,38 lesz, ami 0,16%-os hiba, ami nem olyan vészes.
(#) zenetom válasza DINI hozzászólására (») Feb 1, 2012 /
 
Na közbe nem fogadta el a hozzászólásomat a HE, így írhatom újból.
Szóval, még mielőtt összezavarodsz:
8MHz-es kvarcot használsz 22pF-os kondikkal, a konfigbitnél "_HS_OSC"-osat írod be,
És ezt a részt átírod:
  1. movlw 0x06
  2. movwf SPBRG;set 9600 bps
  3. movlw B'00100100'
  4. movwf TXSTA

erre:
  1. movlw 0x0C
  2. movwf SPBRG;set 9600 bps
  3. movlw B'00100000'
  4. movwf TXSTA

Szerk.: az RCSTA regisztert NEM kell módosítani!
(#) Hp41C válasza DINI hozzászólására (») Feb 1, 2012 /
 
Csak egy kicsit keresni kellett... Már leírtam itt.
(#) n_yálastrubadúr hozzászólása Feb 1, 2012 /
 
hy
mi lehet az oka, hogy az ADRESH regiszerből kiolvasott érték sose az amit beleteszek?? Először azthittem az ad rossz. De aztán mindent ki kommentelve csak az ADRESH reg-gel foglalkoztam. Ha törlöm ha értéket adok abban sose az van. Gyakorlatilag kb amikor bekapcsol és ami belekerül. pic 16f616. az ADRESH a bank 0-ban van.
(#) zenetom válasza n_yálastrubadúr hozzászólására (») Feb 1, 2012 /
 
Bár még nem próbáltam, de szerintem az ADRESH (meg az ADRESL) regiszterek csak olvashatóak. (Analog Digital Result), ami logikus is, hiszen ebben lesz az A/D átalakítás eredménye, amit az A/D periféria állít be.
(#) zenetom válasza zenetom hozzászólására (») Feb 1, 2012 /
 
Bár az MPLAB szimulátora szerint lehet módosítani a tartalmát. :gumicsirke:
(#) n_yálastrubadúr hozzászólása Feb 1, 2012 /
 
Köszi!
Nagyon belekockultam már megint. Nagyon rajta vagyok, ahogy lassan minden a helyére kerül, a kis sikerélményektől nemtudom itthagyni, már 4 napja lapul a seggem. Az a/d nem is volt bekapcsolva....
(#) Hp41C válasza n_yálastrubadúr hozzászólására (») Feb 1, 2012 /
 
Pedig a szimulátor pampog, ha be van kapcsolva és nincs stimulus hozzárendelve. Akkor is szól, ha nem tartod be a 2Tad kivárást...
(#) icserny válasza bbb hozzászólására (») Feb 1, 2012 /
 
Idézet:
„MCLR felhúzó ellenállat 10k, a helyén van. A ledet lehúzó ellenállás, ahogy a rajzon is szerepel, 470ohm, szintén a helyén van.”
Ebben nem kételkedtem. A kérdés arra vonatkozott, hogy tényleg annyi-e az értékük, és nem szakadtak pl. Az MCLR lábon levő feszültség vizsgálata is jó volna (nincs-e zaj rajta?).
Lehet, hogy meg kellene nézni a kvarcot is (a próbapanelon milyen kvarccal ment?

Kihúzott PIC mellett a panelt ellenállásmérővel is meg kellene nézni: eljut-e a tápfeszültség és a föld minden lábra (és a VUSB kondenzátorának alsó lábához)? Nincs-e zárlat valahol?

Valami nagyon triviális hiba lesz, de innen nem deríthető ki.
(#) bbb válasza icserny hozzászólására (») Feb 1, 2012 /
 
Holnap megint nekiugok méregetni, bent van a cégnél a cumó, "ráérős" szabadidőmben csinálom odabent.
A kvarc a panelon SMD kivitelű 20Mhz-es, a dugdosóson normál lábas (egy hálókártyából kibontva).
Az MCLR zaját jövő héten tudjuk nézni, akkor jön vissza a kollégám szabiról, neki van oszcilloszkópja, amin talán látni is lehet valamit.
A tápfesz és földvezetékeket mind végig fogom mérni, zárlatot eddig nem találtam (ez volt az első gondolatom, hogy a 1210-es smd ellánállások lábai alatt átvezetett vezeték valahol rövidzárat okozhat, de ilyet eddig csak egy helyen találtam és újraforrasztás után ez megoldódott).

Köszönöm a tippeket, holnap még jelentkezem!
(#) n_yálastrubadúr válasza Hp41C hozzászólására (») Feb 1, 2012 /
 
Köszi megoldódttak a dolgok. Leszámítva az ir problémát ami végül csak megállt. Fogja 8-10 méterről is, de odadnám a fél távolságot ha nemcsak a szemébe világítva menne. De nemértem miért van ez így mert a pl a dvd az bárhova irányítom klappol,és kínomba megnéztem azzal a fotodiódáva ami a dvd-be van, hogy mit szól az én áramköröm, de ugyanaz. Rádió lesz belőle. Chipcad RT14-433 amit nézegettem. nagyon remélem egy 15-20 méterig halálbiztos kapcsolatot biztosít, és nem zavar be a szervóknak, -gyorsan kell reagálniuk. Valaki rosszat jót róla?
(#) fraba hozzászólása Feb 1, 2012 /
 
Sziasztok!

A minap elkezdtem kísérletezni egy pic16f628a vs ds1820 párossal. Sikerült megírjam a lekérdező rutint NightPicben némi utánajárás és egy-két adag szentségelés árán! Tudom, illetve gondolom, hogy fenn van a neten, de így legalább tanultam belőle valamit. Mindegy igazából nem is emiatt írok.
A fejlesztőpanelom az az Urbán féle verzióBővebben: Link.
Beégetem a PICbe a progit, ami miután megtalálta a ds1820-at, és le is kérdezte, és el is mentette egy változóba a hőmérsékletet, és a mért értéktől függően a "B" porton lévő ledeket villogtatja. Minden pöpecül megy, működik.
Amint kiveszem a fejlesztőpanelből a PIC-et, és belerakom az általam tervezett és legyártott panelba, megáll az élet.
Az MCLR lábon 5k-s ellenállás a plusz fele, 100 nF-os kondi a PIC 5ös és 14es lába közt, külső 4 MHz-es kristály 2 db 33pF-os kondival, és stabil 5 V-ot kap a PIC. A kristály berezeg (megnéztem szkóppal, szép szinusz). A lábak, amiknek 0 és 5 V közt kéne ugrálnia azokon ~1,8 V van.
Kiveszem a panelből, és visszarakom a fejlesztőbe, és tökéletesen működik.
Próbáltam a Vörös Tamás által írt PIC - Kezdőknek könyvben található másik 3 (összesen 4) üzemeltetési módot is. Azt is, amikor csak 5V-ot meg GND-t kell neki adni (intosc_noclkout). Akkor is ~1,8 V van a vizsgált lábakon.
Amint visszarakom a fejlesztőpanelba, azonnal működik.
Valami ötlet/tanács? :ijedt:
(#) n_yálastrubadúr válasza fraba hozzászólására (») Feb 2, 2012 /
 
hy
Ha ugyanaz az áramkör, akkor a hiba banális. Biztosan az áramkör a ludas. Vagy nem szűrt a táp megfelelően. Nézd meg jó irányba mennek a ledek gnd vagy vdd! A kristály ha 4Mhz inkább 22pf-os kondik. A szkópon meg ekkor szinusz nem lehet mert az inkább négyszög. A komparátor gondolom ki van kapcsolva a Pic-ben. Gondolom tudod ha gyorsan változik a kimenet állapota átlag feszültséget mérsz, ekkor 5V nem is lehet. Szerintem rosszul vannak kötve a ledek.
(#) Hp41C válasza fraba hozzászólására (») Feb 2, 2012 /
 
Ötletek:
- LVP letiltása vagy a PGM alacsony szintre húzása.
- 4MHz pont a HS és XT mód határán van, mind a két mód kipróbálása.
- Debug mód letiltása a konfigurációs szóban.
- Gondolom, az A porton az analóg funkciók le vannak tiltva.
(#) fraba válasza Hp41C hozzászólására (») Feb 2, 2012 /
 
Próbálok mind a kettőtöknek egyszerre válaszolni.
A fejlesztőpanelhoz tartozik egy külön megvásárolható modul, amin van 8 db led meg ellenállás meg egy meghajtó IC. Ezt csatlakoztatva a fejlesztőpanelra tudom vizsgálni a PIC lábait (egyszerre vagy csak az "A" vagy csak a "B" portot). Az új panelon nincsenek még (bekötve) ledek, csupán a PIC lábaira mérek rá(megj: ehhez az általam készített panelhoz nem tudom csatlakoztatni ezt a led modult).
A kristály igen, 4 MHz-es. Próbáltam már 22 pF-os kondival is. A fejlesztőpanelen is 33 pF van, ezért kipróbáltam azzal is.
A teljes "A" port használaton kívül van (leszámítva a két lábat a külső oszcillátornak) . A "ledvillogtatás " és a hőmérés a "B" porton zajlik. A komparátort nem is kapcsoltam be (az azt hiszem difúltból ki is van kapcsolva), de amúgy is: digitális áramkör lévén az összes nem használt lábát vagy GND-re vagy Ut-re kötöttem.
Az átlagfeszültség méréses ötleted kedves n_yálastrubadúr, jó lehet, természetesen meg/kipróbálom, de nem hiszem, hogy olyan gyorsan villognának a ledek, hogy a DMM egyenfesz módban " ne tudná követni", ifyouknowwhatimean. De egy próbát megér. Beprogramozok neki egy olyat, hogy 3 mp-ként high majd delayms 3000 low portb.5 mondjuk.

Az LVP le van tiltva, azt mindig le is tiltom, mert érthető ok miatt félek tőle. A HS és XT is jó lehet, de a fejlesztőn is 4 MHz-es a kristály emlékeim szerint (de azért mindjárt meg is nézem), és ott "XT"-vel remekül megy már x éve.
Mivel az egész A port valahova kötve van, ezért akár le van tiltva akár nem, az szerintem nem játszik (mármint az analóg funkciók). A debug mód letiltása a konf. szóban alatt pontosan mire gondolsz?
Ja igen, és még a nem elég szűrt a táp. A panelom (egyrészt direkt ezért csináltam úgy, ahogy) a fejlesztőpanelról kapja a naftát, ami ugyebár egy 7805-el kezdődik, és az 5,00 V-ot ad ki magából.
(#) pajti2 válasza icserny hozzászólására (») Feb 2, 2012 /
 
Most nyugodtan kiröhöghetsz érte, mert azóta futom a köröket a ram kérdéssel, és végül úgy alakult, hogy ha abból az ötletből egyáltalán lesz valami (az ára miatt lehet, hogy semmi sem lesz belőle), akkor fram-ok fognak kelleni hozzá. A tsop44-es tokosból 25khuf+ értékű ramot (2 megabyte) kell majd felzsúfolni a nyákra. Mellesleg az áramkör összes többi része fele ennyit sem fog érni. Azért írom ezt fel, mert úgy éreztem, ezzel még jövök neked: köszönöm.
Következő: »»   203 / 1211
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