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   474 / 1216
(#) benjami válasza sz_ferko hozzászólására (») Jan 2, 2014 /
 
Nem néztem végig, de nekem úgy tűnik itt kell a komment jelet kitörölni a két soroshoz:
  1. ;#define    Two_Line    1    ; Un-comment for two line displays

A 628-ra történő átíráshoz, meg csak a
  1. #define    F84
sort kell kikommentezni.
A hozzászólás módosítva: Jan 2, 2014
(#) Stefan hozzászólása Jan 2, 2014 /
 
Sziasztok!

TCP/IP Demot szeretném portolni PIC32MX250F128B -re.
Compiler X32
IDE MPLAB 8.x

A probléma a linkelésnél jelentkezik. Másik kontrollerre fordítva a kód mérete:
code: 47059 byte
ram: 2428 byte

Ennek bele kellene férni ebbe a típusba is (adatlap szerint 128KB a flash ), de a linker szól, hogy nincs hely...
"Memory Usage Gauge" is azt mutatja, hogy bizony csak 33532 van...
Akkor most 128KB vagy csak a negyede?
Mit nézek be?

Köszi előre is.
(#) sz_ferko válasza sz_ferko hozzászólására (») Jan 3, 2014 /
 
Köszönöm a segítő hozzászólásokat. Reméltem, hogy a fórum segítségével megtudom oldani a problémát. Valami apróság azonban még mindig hiányzik. A legjobb eredmény, hogy működik a program 16F628-al de az a probléma továbbra is fennt áll, hogy két sorba írja ki az eredményeket. A tegnapi napom ráment, kb. 10 klf. próbálkozással.
(#) Prendick válasza sz_ferko hozzászólására (») Jan 3, 2014 /
 
Van egy ilyen sor az 1170-es sor környékén:
CALL LINE2
Kommentezd ki.
(#) c27 válasza ktamas66 hozzászólására (») Jan 3, 2014 /
 
Átírtam a programot, tettem bele késleltetést az elejére, de még mindig elmegy az első sor végére, ha törtöm a kijelzőt nem kéne visszamennie az első karakterre? Nem értem miért nem működik, 5 nop-ot tettem az enable on-off közé, utána pedig vár kb 4-5ms-t, de nagyobb értékkel is ugyan az a hiba. Bekapcsoláskor is vár elég sokat mielőtt bármit is csinálna. Milyen hiba lehet még benne?
A hozzászólás módosítva: Jan 3, 2014

PROGRAM1.txt
    
(#) ktamas66 válasza c27 hozzászólására (») Jan 3, 2014 /
 
A 2 soros üzemmód beállításnál visszaállítod a 8 bites módot.
(#) Kovabe hozzászólása Jan 3, 2014 /
 
Sziasztok
Egy kérdésem lenne hozzátok: van egy PIC16F690-es vezérlésem ami idönként megbolondul "az LCD kriksz-krakszokat ír ki és még talán le is fagy de csak idönként" a tápellátás 7805 és elötte illetve utánna ELCO kondi 10µF és 100µF és 100µF kerámia közvetlenül a táplábakra forrasztva. A környezetében egy gázkazán illetve relés kapcsolások amit persze a PIC vezérel "ha épp mükdik" és ha pl a kazán megáll akkor a vezérlés lefagy illetve az LCD megbolondul.
Van valakinek ötlete hogy kit tudnék kezdeni vele?
(#) vicsys válasza Kovabe hozzászólására (») Jan 3, 2014 /
 
A táp leválasztása, szűrése. A vezetékek rövidel és vaskosak legyenek. A vezérlőnek készíthetsz egy fém árnyékoló dobozkát.
(#) Kovabe válasza vicsys hozzászólására (») Jan 3, 2014 /
 
A tápleválasztást hogy érted? A fém doboz necces de én arra gondoltam hogy a doboz amibe van az egész (két részböl áll az aljában az erösáram és az elölapban a gyengeáram) kettéválasztom egy földelt fémlappal. Ez szerinted megoldás lehet? A vezetékek rövidek legalábbis az LCD és a PIC között kb 10cm de van egy DS18B20 rajta ami 15m hosszú és 3 termosztát ami darabonként 10m hosszú. Tudom hogy csurgatom az infot de már rég csináltam és msot jutnak eszembe a dolgok de emlékeim azerint ennyi. A táp müködése 7805-ről megy a PIC-LCD illetve a termosztátok és a DS, 7812-röl pedig a relék.
(#) nagym6 válasza Kovabe hozzászólására (») Jan 3, 2014 /
 
Ha kapcsolók, vagy nyomógombok mennek pic lábra, 33pF kondit tegyél minden kapcsolós pic láb és gnd közé. Esetleg ha nem ez a baj, akkor más pic bemenetekre (in-re config. láb) is meg lehet próbálni.
Ha van csak kb. 5cm drót bemenetre config. pic lábon, közeli zavarokat veheti, pld. relé.
(#) Kovabe válasza nagym6 hozzászólására (») Jan 3, 2014 /
 
Rendben kszönöm mindkettötök segitségét. Holnap megyek ki helyszinre és nekilátok a probának. A földelt elválasztolemez megoldás lehet?
(#) c27 válasza ktamas66 hozzászólására (») Jan 3, 2014 /
 
És tényleg! Köszönöm szépen. Elég sokat szívtam miatta.
Még egy érdekesség, hogy ha vss-re kötöm a d0-d3-at akkor marad egy soros üzemmódban és nem ír karaktert sem, bár nem értem miért, ha +5-ra kötöm akkor megy rendesen. Minden esetre eddig működik. Kösz még egyszer.
(#) nagym6 válasza Kovabe hozzászólására (») Jan 3, 2014 /
 
Lehet, hogy segít a földelt elválasztólemez. Én is kínlódtam egy ideig ilyen gondokkal, mire rájöttem, hogy 3 nyomógomb 3 pic bemenetre menő 5 centis drótja veszi-viszi a zavart.
Amit kontakhibás kapcsoló okozott. Itt a bemenetre gombnyomás +5V-ot ad, erre valamit lép a pic. De ezt gombnyomás nélkül is megtette néha. A 33pF a pic bemenetre -ahova a nyomógomb drót is megy- tökéletes megoldást jelentett. Azért nem nagyobb kondi, mert közben kimenet is lesz az a pic láb, és nagyobb kondi terhelné a kimenetet.
De ha az a bemenet sosem vált kimenetre, akkor nagyobb kondi is lehet a 33pF-nál.
Persze nem biztos, hogy ez lesz a megoldás, csak egy ötlet. Abból kiindulva, hogy szerintem a bemenetre config. lábakon tud bejutni zavarjel, illetve programfutásba beleszólni.
A hozzászólás módosítva: Jan 3, 2014
(#) nagym6 válasza c27 hozzászólására (») Jan 3, 2014 /
 
Idézet:
„ha +5-ra kötöm akkor megy rendesen”

Itt valami nem stimmel. Nem tudom mi, de d0-d3 gnd-re kötve kell jól működni.
(#) c27 válasza nagym6 hozzászólására (») Jan 3, 2014 /
 
Időközben visszatértem a 3 elemhez, de most ismét 5V a tápfesz, így is megy ha 0-ra kötöm, de gyakran egy p betűt kiír első karakternek. Az indításra elég érzékeny, néha egy fekete télalapot ír ki első karakternek, akkor is na nincs bekötve a d0-d3 nem tudom miért.
Végül is betettem némi késleltetést a pic portjainak beállítása után mielőtt még nekikezdene az lcd-nek most nincs fekete téglalap.
A hozzászólás módosítva: Jan 3, 2014
(#) nagym6 válasza c27 hozzászólására (») Jan 3, 2014 /
 
Gyanítom programhiba lehet, hardveresen valószinűleg jó.
Nem ismerem az assembly nyelvet, én basicben csinálom, ebben nem tudok segíteni.
Próbáld mégegyszer az inicializálást, tehát kétszer egymás után menjen bekapcsoláskor.
Írd be google-ba "hd44780 inicializálása" hasznos infókat találni.
Bővebben: Link
A hozzászólás módosítva: Jan 3, 2014
(#) c27 válasza nagym6 hozzászólására (») Jan 3, 2014 /
 
Pontosítanék: ha d3 földre van kötve eljut a 2 soros üzemmódig, de onnantól semmi, se kurzor, se karakterírás, ha szabadon vannak akkor most már minden ok, legalább is amit eddig próbáltam.
Az is lehet, hogy az lcd-vel van valami vagy kizárt? Bár elvileg új.
Ha d2-d0 van csak földre kötve minden megy, szóval a d3 földre kötésénél van valami gikszer.
A hozzászólás módosítva: Jan 3, 2014
(#) vicsys válasza Kovabe hozzászólására (») Jan 3, 2014 /
 
Úgy értem, hogy a PIC-es rész tápja független legyen egyéb (kapcsolt) részektől. Pl.: relék, motorok, meg minden ami indukálhat zavarjelet.
Jellemzően, ipari környezetre fel kell készülni, nem igazán elég a hobbi szint. Persze kis szerencsével és farigcsálással orvosolható a hiba.
Mindig hülyének néznek a megrendelők, ha többet kérek, mondván, hogy a Pisti (villanyszerelő) sokkal olcsóbban megcsinálja (PIC programozás). Na ja. Csak Pisti nem fogja tudni, hogy miért kell 2 naponta visszajárni a zügyfélhez...? A megrendelő meg csak vár, csak vár, aztán feladja...
(#) Kovabe válasza vicsys hozzászólására (») Jan 3, 2014 /
 
Köszönöm
Amugy én nem adom fel föleg mert havernak csináltam. Különben a többi 10darab (más és más változatok) tökéletesen müködik, igaz ez az elsö hogy LCD-t használtam.
(#) vicsys válasza Kovabe hozzászólására (») Jan 3, 2014 /
 
Ne vedd magadra, nem neked céloztam. Én sem vagyok egy nagy Májer, de igyekszem. Gondolom Te is a megoldást keresed és a következőnél már másképpen tervezel. Ez a lényeg, ne add fel!
(#) nagym6 válasza c27 hozzászólására (») Jan 3, 2014 /
 
Nincs valami zárlat a panelon a d3 -nál? Nem szabadna másképpen viselkedni d3-nak.
Lehet kijelzőhiba is, ha új, esetleg időközben keletkezett. Másik kijelző ha van, azzal próba.
Én megpróbálnám 8 bites módban, kicsit át kell kötni, progit írni, hátha így valami lenne.
(#) ktamas66 válasza c27 hozzászólására (») Jan 3, 2014 /
 
Azért csinálja, mert előtte nem vált 4 bites üzemmódra. Én a 4 bites módra váltást még egyszer ki szoktam adni már 4 bites módban is (felső 4bit, alsó 4bit). Nálad ezt a 2 soros módra váltás intézi, ide viszont kell a D3=H beállítás. Amikor másodszor is írod a FUNCTION regisztert akkor áll be minden a helyére.
(#) c27 válasza ktamas66 hozzászólására (») Jan 3, 2014 /
 
Nem egészen értem. Ha nem vált át 4 bites módra, akkor mégis, hogy tud átváltani 2 soros módra? Ha üresen hagyom a d3-d0-t akkor átvált. Próbáltam kiadni 2x a 4 bites módot, másodjára felső-alsó külön, de úgy is ha földre kötöm a d3-at marad egysoros üzemmódban.
Hogy kellene akkor csinálni? (Már csak kíváncsiságból is érdekel.) Ha a kétsoros mód előtt adom ki 2x a 4 bites módot, akkor sincs változás. Csak nem értem.
(#) Kovabe válasza vicsys hozzászólására (») Jan 3, 2014 /
 
Rendben köszönöm. És sajnos még mindig találok valami furcsaságot de igyekszem áthidalni. Gondolom nem csak én találok hibt a saját munkámba de amit találok és tanulságos azt igyekszem megosztani illetve segitséget kérek ha nem találom a megoldást.
(#) ktamas66 válasza c27 hozzászólására (») Jan 3, 2014 /
 
Ha D3=H már 8 bites módban is 2 sorosra vált. Én mindig lekötöm az alsó 4 bitet földre, ezért kell a regisztert másodszor is írni, hogy az alsó 4 bit is beálljon.
(#) c27 válasza ktamas66 hozzászólására (») Jan 3, 2014 /
 
De 8 bites módba nem tudok átváltani 2 sorosra, mivel D3=0, ha lekötöm földre, ha nem. Ezzel szemben először kiadom a 4 bites mód parancsot csak a felső 4 bit állításával, majd kiadom a 2 soros módot, majd ismét a 4 bites mód jön, de ha lekötöm földre a D3-D0-t akkor így sem vált át 2 soros módra. Akkor hogy kéne csinálnom? Elvileg át kéne váltania neki ha lekötöm a D3-D0-t akkor is. Bocs, de még mindig nem értem, hogy mi a probléma. Ha nem kötöm sehova a D3-D0-t attól még 0 a bemenet, szóval nem értem mi a problémája a földre kötéssel.
A hozzászólás módosítva: Jan 3, 2014
(#) ktamas66 válasza c27 hozzászólására (») Jan 3, 2014 /
 
Azt mondtad csak akkor vált 2 soros üzemmódba, ha az LCD D3 lábát H-ra kötöd ( ha lekötöd földre akkor 0, ha lóg a levegőben akármi lehet). Mellékeld be a programot újra, hátha észreveszünk valamit.
A 2 soros mód után, ha kiadod újra a 4 bites módot ott már alsó négy bitet is úgy állítsd be, ahogy a működéshez kell.
A hozzászólás módosítva: Jan 3, 2014
(#) c27 válasza ktamas66 hozzászólására (») Jan 4, 2014 /
 
Nem egészen ezt mondta: ha D3 földre van kötve akkor nem megy, ha lóg vagy ha H-ra van kötve akkor megy.

PROGRAM2.txt
    
(#) ktamas66 válasza c27 hozzászólására (») Jan 4, 2014 /
 
A 2 soros mód beállításakor a 103. sorban visszaállítod a 8 bites módot, utána amikor újra be akarod állítani a 4 bites módot nem írod az alsó 4 bitet (mindegy is mert 8 bites módban van, tehát azt olvassa ahova az LCD D3 lába kötve van, ezért működik jól, ha H-ra van kötve).
Így csináld:
inicializálás után után:
4 bites mód: 0010xxxx
2 soros mód 0010 felső
1000 alsó
egyéb beállítások.
(#) c27 válasza ktamas66 hozzászólására (») Jan 4, 2014 /
 
Értem, szóval az volt a baj, hogy a kétsoros módnál 00111000 kódot használtam a 00101000 helyett. Ezért váltott vissza 8 bites módra. Kösz, remélem most már tényleg jó lesz.
Csak most meg kipurcant a pic, a tegnapi működő program most már nem fut rajta, valami törtönt vele újraírom és semmi, egy másikkal működik. De ha a portjait írom, akkor eddig minden ok, egyszer L egyszer H az összes portja és azt megcsinálja. Viszont az RA3 hiába inputnak van beállítva, mégis kint van rajta mindig a tápfesz. Ettől függetlenül mennie kéne, mert a másik piccel ugyan az a program fut. (Programozáskor rajta van a 10K az mcrl és a vdd között).
Talán a statikus feltöltődés lehet a ludas?
A hozzászólás módosítva: Jan 4, 2014
Következő: »»   474 / 1216
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