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   477 / 1210
(#) nedudgi válasza Zoli1974 hozzászólására (») Jan 9, 2014 /
 
A PGC/PGD lábakat használod másra is? Nem hosszú a programozó kábel? Milyen programozót használsz, milyen programmal? A PIC programjának elejére tettél egy pát msec várakozást? A tápfeszültség megfelelő, és honnan kapja?
(#) Zoli1974 válasza nedudgi hozzászólására (») Jan 9, 2014 /
 
A pgd lábon egy zümmer van bc 846 al meghajtva, közvetlen a kivezetett ICSP-re van dugva a programozó pickit2 kábel nélkül. A pickit 2.61-et használom. A program még nem az enyém (sajnos) de egyszer már beégettem egy másik picbe hiba nélkül. A tápfesz 4,9V Usb ről kapja.
A vpp voltage level error hibaüzenet van a program indulásakor és nem ismeri fel a pic et automatikusan csak azután ha communication opciót választom a programban.
(#) nedudgi válasza Zoli1974 hozzászólására (») Jan 9, 2014 /
 
A Pickit2 programjában használd a Use Vpp first program entry módot a Tools fülön. A BC846 bázisellenállását meg lehet próbálni nagyobbra cserélni.
A hozzászólás módosítva: Jan 9, 2014
(#) Hp41C válasza Zoli1974 hozzászólására (») Jan 9, 2014 /
 
Mi csatlakozik a 16F628(A) MCLR lábára? Igen jó lenne egy kapcsolási rajz kép formátumban. Sajnos a cikknél sincs.
(#) Zoli1974 válasza nedudgi hozzászólására (») Jan 9, 2014 /
 
Megvan a hiba. Kijelzőt hajtok meg a pic-el és bennehagytam a csatlakozójában, kivettem és sikerült az égetés. Köszönöm a segítséget. Apró de bosszantó hiba.
(#) vicsys válasza (Felhasználó 15355) hozzászólására (») Jan 9, 2014 /
 
Egy potméternél, amit le tudsz nulláig tekerni?
(#) nedudgi válasza Zoli1974 hozzászólására (») Jan 9, 2014 /
 
Örülök, hogy sikerült, de attól még nem lenne szabad ilyenek csinálni - ha jó a program...
(#) Beles hozzászólása Jan 9, 2014 /
 
Sziasztok!
UART adatátvitelnél mennyi lehet a maximum Baud rate error? 0,017%-ot számoltam, vajon működni fog rendesen az átvitel?
(#) icserny válasza Beles hozzászólására (») Jan 9, 2014 /
 
Ha minden Start bit homlokélnél szinkronizál a vevő, akkor leegyszerűsítve az a fontos, hogy innen számítva a STOP bitig kumulálódó időeltolódás kevesebb legyen, mint egy fél bitidő. Tehát 9-10 bit halmozott hibája legyen kisebb, mint 50 %, ebből egy bitidő hibája max. 4 % lehet, de ha két , random összepárosított készülék kommunikál, akkor egyenként külön-külön 2 %-on belül legyenek.

Az általad megadott érték szerintem maximálisan megfelelő.
(#) Beles válasza icserny hozzászólására (») Jan 9, 2014 /
 
Köszönöm! Akkor jó, ha ennyi belefér
(#) ktamas66 válasza vicsys hozzászólására (») Jan 9, 2014 /
 
A te esetben a forrásellenállás mértéke nem hat ki a bemeneti feszültségtartományra ( a potit kitekered 0-5V között), az AD meg is méri a feszültséget, csak a linearitás veszik el (terhelt feszültségosztó), de gondolom itt nem a halálpontos linearitás a fontos (ilyen hibája úgyis a potinak is van).
A mérés zavaraira két javaslatom lenne:
1 AD mérés időzítéseinek átgondolása (gyors mérés->nagy zaj),
2 ilyen esetekben a tápfeszre szoktam rakni egy LC szűrőt (kb 100uH-10µF egy kis ferritgyűrűre tekerek 10-15 menetet), ami leválasztja az érzékenyebb részeket.

Ez pont egy olyan kijelzőt vezérel, mint amit neked küldtem. I2C porton keresztül lehet meghajtani, hogy ne foglaljon el sok lábat .
(#) kissi válasza vicsys hozzászólására (») Jan 9, 2014 /
 
Ez miért okoz problémát ? A forrás belső ellenállása a mintavevőben lévő kondenzátor töltődési sebességére hat, azaz ha nagy belső ellenállással hajtod, akkor nem lesz ideje feltöltődni, de ha letekered a potit, akkor ez nem okoz gondot, mert akkor a legkisebb az ellenállása (~0 ohmos generátorként viselkedik!). Az AD bemeneti ellenállása okozhat gondot a linearitásra vonatkozóan, ahogy ktamas66 kolléga leírta, de ez nem a mérést befolyásolja, hanem a karakterisztikát, amit ha lényeges, szoftveresen tudsz kompenzálni... Ezt csak az AD szempontjából írtam, zavarszűrés, stb. szempontjából lehet próbálkozni soros ellenállás-párhuzamos kondenzátor megoldásokkal az integrálás mellett, úgy, hogy a forrásimpedancia a katalógusban megadott alatt maradjon !
A hozzászólás módosítva: Jan 10, 2014
(#) vicsys válasza ktamas66 hozzászólására (») Jan 10, 2014 /
 
Igen, az LC tagon már gondolkodtam.
Szoftveresen megoldottam az ugrálást. Sajnos a 100x-os mintavételezés/átlagolás sem vezetett tökéletes eredményre (pedig a legkisebb és legnagyobb értékeket is kidobtam). Most éppen a skála átkonvertálásával küzdök. A képlet már megvan, de valamiért nem teljesen azt írja ki, amit én szeretnék...
(#) nagym6 válasza vicsys hozzászólására (») Jan 10, 2014 /
 
Ha pld. az érték általában nem pont kerek, tehát nem pld. pont 123, hanem pld. 123 és 124 közötti. Ezért normális ha egyszer 123, egyszer 124 a kapott érték. Nem csak ez a baj?
(#) Beles válasza icserny hozzászólására (») Jan 10, 2014 /
 
Pedig sajna nem akar működni! Elkezdtem növelni a sebességet, 115kBaud-nál még jó, felette nem. Egy bluetooth modullal próbálok kommunikálni dspic30f2011-el. FCY = 30Mhz. Ha UBRG = 1, akkor a baudrate = 30000000/16/(1+1) = 937500. Azaz a hiba 0,017%. De mégsem jó. Teljesen más karakterek mennek át, többnyire semmi. Mi lehet a baj?
Lehetséges, hogy a szintillesztésem miatt van? Ugyanis a BT modul 3,3V-os, a dspic meg 5V.
A hozzászólás módosítva: Jan 10, 2014
(#) ktamas66 válasza vicsys hozzászólására (») Jan 10, 2014 /
 
Ha annyira fontos a linearitás egy MCP6001T-E/OT SOT-23-5-TR 66Ft+ÁFA. Hány órát érdemes ezért programot fejleszteni . Ráadásul Attila86 szerint a bemeneti ellenállás még az azonos típusok között is változik Bővebben: Link.
Ha a 100-as átlagolás ugrál a sima egyenfesz méréskor ott valami árulás van, tegyél rá egy 1,5 voltos elemet tesztnek, hogy kiderítsd nem az AD beállításaiban van hiba, vagy próbálj ki tesztre egy másik AD bemenetet. Ha a tápot használod referenciának azt is jól kell szűrni.
(#) vicsys válasza ktamas66 hozzászólására (») Jan 10, 2014 /
 
Igen, azt hiszem minden hibát sikerült legenerálnom. A több (5db.) analóg bemenet lekezelés->rövid mérési idő és a hit, hogy a 7805 majd stabil tápot biztosít. No, meg a lógó vezetékek és az oda-vissza konvertálások. (végén már csonkolt lebegőpontos számokat próbáltam kiíratni, hátha...) A lényeg, hogy az ugrálást (igaz szoftveresen) sikeresen megszüntettem. Azért ezt az LC-s szűrést még tesztelem, mert nagyon izgat. Külső AD-t nem nagyon tudnék használni, mert a panel kész és így is elég zsufi lett, ráadásul 99%-ban SMD.
Mindenkinek köszönöm a segítséget! (Tényleg sokat tanultam a hozzászólásokból)
(#) Balagemann2031 hozzászólása Jan 10, 2014 /
 
Sziasztok! Van egy I2C-vel kommunikáló eszközöm (giroszkóp ic), és egy SPI-vel működő graf. LCD-m. (nok.3310). Szeretném a szenzor adatait megjeleníteni az lcd-n, de csak olyan PIC-eim vannak amelyekben 1 MSSP modul van. Megoldható két pic között UART-tal a kommunikáció? (mindenképpen hardveres kommunikációt szeretnék) .
(#) Hp41C válasza Balagemann2031 hozzászólására (») Jan 10, 2014 /
 
Az I2C master vagy az SPI master programozott megoldása nem túl bonyolult. Programozott i2C, Programozott SPI.
A hozzászólás módosítva: Jan 10, 2014
(#) Balagemann2031 válasza Hp41C hozzászólására (») Jan 10, 2014 /
 
Köszi, tanulmányozom!
(#) Beles válasza Beles hozzászólására (») Jan 10, 2014 /
 
Közben meg lett a hiba. A 3,3V->5V fetes levelkonverteremben 10k helyett 100k-t raktam, mert nem volt itthon 10k-m. Elmentem venni, kicseréltem, most jó
(#) Kovabe hozzászólása Jan 10, 2014 /
 
Sziasztok
Nemrég jelezetm egy 16F690-es vezérlés problémáimat. Ugynézki a dolog hogy sikerült megoldanom de csak honap derül ki a dolog. Lényeg a lényeg, nem az erösáram volt a baj (230V) hanem volt a vezérlésben egy trafó ami elött 1cm-re vezettem el az ICSP csatlakozovezetéket (igy kivülröl tudtam programozni) és az zavarta be hogy az LCD össze vissza jeleket írt ki. Most visszavágtam illetve egy kiemelökerettel 3-4cm távolságra bövitem a dobozt.
(#) c27 hozzászólása Jan 10, 2014 /
 
Sziasztok!
ismét van egy érdekes problémám. Megpróbálom röviden leírni a helyzetet: a program amit írtam minden 10. megszakításkor ír az lcd-re. Egy megszakítás kb 100ms, tehát kb 1 mp-ként kéne neki írnia az lcd-re 6db számot. A gondom, az, hogy nem 1mp-ként változnak a számok hanem 4-5 mp-ként. A szimulációba lefuttattam 1,0xxxsec telik el két írás között. Maga az írás a szimuláció szerint 7msec.
Megpróbáltam azt is, hogy csak minden 5. megszakításnál írok az lcd-re, kb fele annyi időnként ír már, de az is olyan 2mp körüli. A szimuláció szerint akkor 0,5mp-ként kéne írnia a számokat. Mi lehet a gond? Minden parancsküldés után 0,5msec várakozás van. Az enable on és off között 3db nop.
A program tesztelésekor mindig lefut lefut az lcd-re kiírás attól függően, hogy minden 10. vagy 5.-re állítom.
Mi lehet a gond? 20Mhz-es oszcillátort használok, az is van ráírva. Esetleg az inicializálásban van valami rosszul? Lehet ott kisebbnek érzékeli vagy nem 20Mhz-ként kezeli? Mert a tapasztalt jelenség megfelelne, ha mondjuk 4Mhz-es kristállyal menne.
Az ini így néz ki:
ERRORLEVEL 2
LIST P=16F684
#INCLUDE "P16F684.INC"
__CONFIG _INTOSCIO&_CP_OFF&_WDT_OFF&_MCLRE_OFF
(#) Buvarruha válasza c27 hozzászólására (») Jan 10, 2014 /
 
Ha jól értelmezem a programod, akkor éppen belső oszcillátort használ.
(#) c27 válasza Buvarruha hozzászólására (») Jan 10, 2014 /
 
Már kezdem érteni a problémát. Tehát, ha HS módra váltok oda az RA5 és RA4 mint bemenet. Hát ez nem túl jó.
(#) icserny válasza c27 hozzászólására (») Jan 10, 2014 /
 
Idézet:
„Tehát, ha HS módra váltok oda az RA5 és RA4 mint bemenet.”
Miért, most hova van kötve a (nem használt) kvarc?
(#) zenetom válasza c27 hozzászólására (») Jan 10, 2014 /
 
Szia!
Milyen programmal szimulálod? Az MPLAB alapból 20MHz-re állítja be a szimulációs órajelet, ha jól emlékszem. Ott azért működhet jól. A valóságban meg az a bibi, amit Buvarruha is írt, mégpedig az oszci konfigot belsőre állítottad be, vagyis a PIC a belső, 8MHz-es oszciról megy (és lehet hogy van egy 1:2-es utóosztó beállítva).
Szerk.: no igen, az RA5, RA4-re meg megy a kvarc, szóval azokat nem tudod használni I/O-ként.
A hozzászólás módosítva: Jan 10, 2014
(#) c27 válasza zenetom hozzászólására (») Jan 10, 2014 /
 
Ok, kösz a segítséget, neked is Buvarruha. Megoldottam a dolgot, minden port ki van használva. Már csak tesztelni kéne élesbe a progit, de amíg nincs kész nyák addig nem kínlódok tovább a próbapanelen.
A hozzászólás módosítva: Jan 10, 2014
(#) c27 válasza c27 hozzászólására (») Jan 10, 2014 /
 
Sajnos még mindig nem az igazi. Áttettem a portokat azzal nincs is baj, de még mindig kb 4mp-ként frissíti az lcd kijelzőt. Mintha még mindig nem a kristályról menne.
__CONFIG _HS_OSC&_CP_OFF&_WDT_OFF&_MCLRE_OFF
Kell még ezen kívül valahol valamit bekapcsolni, hogy arról menjen?
(#) icserny válasza c27 hozzászólására (») Jan 10, 2014 /
 
Ha kiveszed a kvarcot és leáll a program, akkor biztosan nem a belső oszcillátorról megy....
Következő: »»   477 / 1210
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