Fórum témák
» Több friss téma |
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?
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.
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
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.
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.
Egy potméternél, amit le tudsz nulláig tekerni?
Örülök, hogy sikerült, de attól még nem lenne szabad ilyenek csinálni - ha jó a program...
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?
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ő.
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 .
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
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...
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?
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
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.
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)
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) .
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
Köszi, tanulmányozom!
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ó
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.
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
Ha jól értelmezem a programod, akkor éppen belső oszcillátort használ.
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ó.
Idézet: Miért, most hova van kötve a (nem használt) kvarc? „Tehát, ha HS módra váltok oda az RA5 és RA4 mint bemenet.”
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
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
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?
Ha kiveszed a kvarcot és leáll a program, akkor biztosan nem a belső oszcillátorról megy....
|
Bejelentkezés
Hirdetés |