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   59 / 1210
(#) zenetom válasza icserny hozzászólására (») Márc 26, 2010 /
 
Az van bőven, szabad szemmel lehet látni szinte hogy egymás után írja ki a betűket. Egy kérdés: miközben megy egy a MPLAB SIM debugger, illetve nem megy, mert lépésenként nézem, szóval közben ha buildolok, nem befolyásolja a buildolt kódot ugye?
(#) szilva válasza zenetom hozzászólására (») Márc 26, 2010 /
 
Ne haragudj, de annyiszor volt már szó az ilyen LCD-kről ebben a topicban is (de van neki sajátja is), hogy hadd ne írjam már le újfent: vedd elő, légy szíves, a HD44780 adatlapját, és keresd meg a 4- és 8 bites inicializáló folyamatábrákat! Olyan szájbarágósan van leírva minden, hogy el sem lehet rontani. Ezután pedig nézd meg, hogy a parancsok és karakterkiiratások után mennyi idő kell a feldolgozáshoz a kijelzőnek, mielőtt bármi mással megszólítod (erre is van egy szép táblázat). Csoda, hogy a programoddal egyáltalán valami életjelet mutat az a kijelző, mivel semmilyen init sorrend, vagy időzítési követelmény nincs betartva.

Szerk.: bocs, a PIC miértek-re gondoltam, hogy ott már sokszor leírtuk a kijelzőkezelés ABC-jét.
(#) icserny válasza zenetom hozzászólására (») Márc 26, 2010 /
 
Nem értem a kérdést. Az ember vagy debug-ol, vagy fordít...
(#) zenetom válasza szilva hozzászólására (») Márc 26, 2010 /
 
Leírom már x.re hogy nem most nyúlok LCD-hez először, nem menőzésből, de megint leírom hogy PC-re sikerült egy igencsak komolyabb programot csinálni anno, amiben az időzést nem mezei delay-al (mondjuk az csak pascalban van) vagy sleep-pel oldottam meg, hanem néztem mennyi proci időt telt el és az alapján pontos 1uS-et is létre bírtam hozni. Persze az más mert az LPT nem olyan gyors mint egy mikrovezérlő, de azért tisztában vagyok a dolgokkal.
szerk.: nem bántó szándékkal írtam!
(#) szilva válasza zenetom hozzászólására (») Márc 26, 2010 /
 
Itt nem 1us-okról van szó, hanem sokkal hosszabb időkről. Az s_delay-ed nagyon kurta, és szinte mindenhol azt használod. Az adatlapot nem díszből szokták írni, érdemes használni, sok bosszankodást meg lehet előzni vele.

Ja és nem csak az időzítésekről van szó, hanem az init szekvenciáról is. Szerintem az sem véletlenül került bele az adatlapba, volt már olyan kijelzőm, ami háklis volt rá, hogy pont úgy csináljam.

Én sem bántásból mondom, de az adatlap tényleg hasznos!
(#) zenetom válasza szilva hozzászólására (») Márc 26, 2010 /
 
Persze nem 1uS-t használtam, azzal csak a pontosságra utaltam.
A nagyon kurta alatt mit értesz? Növeljem a NOP-okat? De miért pont az o betűnél áll meg... erre nem utal egy adatlap se
(#) szilva válasza zenetom hozzászólására (») Márc 26, 2010 /
 
Szerintem a baj csak ott bukik ki, a korábbi dolgok időzítése nincs betartva. De tényleg nézd meg az adatlapot, mert szerintem abból neked is világossá válik.
(#) Hp41C válasza zenetom hozzászólására (») Márc 26, 2010 /
 
Szia!

Egy kicsit gyorsan csinálsz mindent. A szimulátor szerint 35.8ms alatt (az első időzítési megszakítás megérkeztéig) minden LCD-re vonatkozó dolog lefut, még a szöveg utolsó karakterét is elküldöd....

Az adatlap időzítéseit be kell tartani...

Szia
(#) zenetom válasza Hp41C hozzászólására (») Márc 26, 2010 /
 
Most nézem jó keveset hagytam benne, de most már olyan lassan küldöm ki az adatot hogy majdnem 10 másodpercig tart mire kiírja azt hogy Hell... Aztán egy olyat csinál a kijelző hogy "elsötétedik" mint ha nem lenne inicializálva. Ilyet se láttam még...
(#) zenetom válasza zenetom hozzászólására (») Márc 26, 2010 /
 
Közbe felvittem a delay szubrutint kb 0,4sec-re... Így se jó
és még mindig csak az o betűt nem írja ki, mintha átugorná... mert a main végére raktam egy RA3 LED-es felvillantást ami ki is gyullad.
Ezeket elrettentésként írom le a további kezdő kollégágnak hogy lássák vannak olyan hibák, melyre nincs logikus magyarázat
(#) vilmosd válasza zenetom hozzászólására (») Márc 27, 2010 /
 
Kod hogy nez ki?
(#) zenetom válasza vilmosd hozzászólására (») Márc 27, 2010 /
 
Csatoltam. A S_DELAY szubrutin nincs használatban, csak benne hagytam. Ja és egyik o betűt se írja ki, helyette valami speckó karaktert ír ki, meg az első sorba ugrik a kurzor....

LCD_PIC.txt
    
(#) Thowra válasza zenetom hozzászólására (») Márc 27, 2010 /
 
Üdv!
Én így oldottam meg az LCD kezelést.
Nézd át, hátha segít.

lcd.asm
    
(#) zenetom válasza Thowra hozzászólására (») Márc 27, 2010 /
 
Most még az enyém egyszerűbb, nem akarok még bonyolítani a dolgokat... De egyébként köszi.
(#) potyo válasza zenetom hozzászólására (») Márc 27, 2010 /
 
Idézet:
„Most még az enyém egyszerűbb, nem akarok még bonyolítani a dolgokat...”


Annyira se, hogy legalább működjön? Mert amit felraktál kódot, abban az inicializálás minden, csak nem korrekt...
(#) zenetom válasza potyo hozzászólására (») Márc 27, 2010 /
 
Ugyanez az inicializálása az LPT-s progimnak is.
(#) zenetom válasza zenetom hozzászólására (») Márc 27, 2010 /
 
Gondoltam lehet a táppal van baj, de ráraktam 9V-os elemre egy 7805-öt és azzal se jó. Mint ha nem érzékelné hogy adat módban van.
(#) szilva válasza zenetom hozzászólására (») Márc 27, 2010 /
 
A PIC lábain nincs semmi más terhelés? Nem lehet, hogy RMW hibába futsz?
(#) zenetom válasza szilva hozzászólására (») Márc 27, 2010 /
 
Csak az RA3-an egy LED ami jelzi ha lefutott a progi. meg egy kapcsoló ami az RA0-n van, amivel elindítom a kiiratást. Most azt próbálom hogy megint egyesével küldök ki byteokat, előtte pedig nézem az MPLAB Logic Analyzerrel is.
Közbe tegnap este [éjszaka] írtam delphiben egy programot ami konvertál számrendszerek között
szerk.: bár a dec-bin konvertálást megcsináltam a PIC-re is, néhány karaktert ki is írt, de valami nem kóser, ha csak simán küldözgetem MOVLW, MOVWF-el akkor is, mint ha az alsó nibble mindig teli lenne 1-el.

converter.JPG
    
(#) zenetom hozzászólása Márc 27, 2010 /
 
Egy nagyon fontos kérdésem lenne!
A BCF (8x) utasítás célszerűbb mint a CLRF, LATB törléséhez?
(#) icserny válasza zenetom hozzászólására (») Márc 27, 2010 /
 
Idézet:
„A BCF (8x) utasítás célszerűbb mint a CLRF, LATB törléséhez?”
Csöppet sem!
Idézet:
„néhány karaktert ki is írt, de valami nem kóser”

ITT megnézheted az ASCII kódokat. A Hx oszlop kell neked...
(#) zenetom válasza icserny hozzászólására (») Márc 27, 2010 /
 
Pedig úgylátszódik jobb, leglábbis LCD-n a bitek törléséhez. CLRF-fel "becsúszik" valami zaj vagy el se tudom képzelni mi lehet vele a baj.
Az ASCII-s progit csak gyakorlásképp írtam
(#) Hp41C válasza zenetom hozzászólására (») Márc 27, 2010 /
 
Szia!

Az MpLab Watch ablakában ki lehet jelezni a hexadecimális (ez be van állítva), a decimális és a bináris kijelzést is. A táblázat fejlécén kell lenyomni az egér jobb gombját...

Feltöltöttem a hd44780 4 bites inicializálását. A lépések:
- Várni >15 ms-et a táp beállása után,
- 8 Bites mód parancs küldése (1 E ciklussal),
- Várni >4.1 ms-et,
- 8 Bites mód parancs küldése (1 E ciklussal),
- Várni >100 us-et,
- 8 Bites mód parancs küldése (1 E ciklussal),
- Várni >37 us-et,
- 4 Bites mód parancs küldése (2 E ciklussal),
- Várni >37 us-et,
- Display on parancs küldése (2 E ciklussal),
- Várni >37 us-et,
- Clear Display parancs küldése (2 E ciklussal),
- Várni >1.52 ms-et,
- Entry mode set parancs küldése (2 E ciklussal),
- Várni >37 us-et,

Innentől kezdve lehet küldeni parancsokat és adatokat (2 E ciklussal). A parancs / adat küldések után min. 37 us várakozás kell, a Clear display és a Reutrn home után 1.52ms.

Szia
(#) zenetom válasza Hp41C hozzászólására (») Márc 27, 2010 /
 
Rájöttem már tegnap, egyébként valami elég rejtett hiba van, szerintem amivel csak kevesen találkoztatok, már minden át van nézve, ezt a problémát lehetetlen megoldani
(#) gtk hozzászólása Márc 27, 2010 /
 
Sziasztok !

16F876 -ot probalok felprogramozni. Oshon fele programozom van 74LS07-el. WinPic-et hasznalok programozashoz, mert az Oshon fele soft valamiert hibat talalt az emugy korrekt hex fileban.
Jo nehany oram ra ment, es meg mindig nem sikerult felprogramozni a PIC-et.
Ugy tesz mintha toltene ra a programot, de visszaolvasasnal hibat jelez (verify error,..) A HW is normalisan viselkedik, program -es tapfesz is rendben van. A PIC egy panelban van (egyedul) es 10 cm szalagkabellal kotottem az egetohoz.
Van valami amiben elter a 16F84-tol a programozasa ennek az ICnek? A PGC es PGD, MCLR + tap labakat kotottem ossze az egetovel. Slow mode-ban is probaltam. Mar tepem a hajam
(#) zenetom válasza gtk hozzászólására (») Márc 27, 2010 /
 
Csak kíváncsiságból.. milyen tipusú alaplapod van? (pl ASUS P5GC-MX...)
Egy képet, ha tudnál felrakni az égetőről, az jó lenne.
(#) Hp41C válasza gtk hozzászólására (») Márc 27, 2010 /
 
Szia!

Van egy lényeges eltérés: A 18F87x -nek van alacsony feszültségű programozási (LVP) lehetősége. Próbáld meg az PRM / RB3-at egy ellenállással a földre húzva programozni.

Szia
(#) gtk válasza Hp41C hozzászólására (») Márc 27, 2010 /
 
Lehuztam a PGM labat GND-re ellenallassal. Ugyanaz.
Zenetom: nem tudom,..laptop. F84-et egettem az oshon softal es ezzel a HW-el korabban.
(#) zenetom válasza icserny hozzászólására (») Márc 27, 2010 /
 
A weboldaladon találtam egy elírást (középtájt):

Idézet:

BSF LATB, 5 ;Port B 0. bitjét ‘1’-be állítja
BSF LATB, 7 ;Port B 7. bitjét ‘1’-be állítja”


A BSF LATB,5 a Port B 5. bitjét állítja 1-re.... vagy nem?
(#) zenetom hozzászólása Márc 27, 2010 /
 
Kijelenthetem hogy ezt a kijelzőt nem lehet PIC18F1320-as mikrovezérlővel vezérelni. Akinek ilyen mikrovezérlője van, az ne csodálkozzon ha nem működik.
Kipróbáltam az összes lehetséges megoldást, de egyes karaktereket nem hajlandó normálisan megjeleníteni a kijelző (pl, '7'-es, 'r' betű...).
Nincs a programban semmi felesleges, csak inicializáció. És az adatküldés. Adatküldésre csak a LATB-t használom, a végén már kb 437ms-os késleltetést használva bármilyen adatközlés előtt/után.
Az utolsó turpisság amire rájöttem, hogy először csak az Enable lábról szabad levenni a jelet, ill. ez logikus, de a
  1. MOVLW d'0'
  2. MOVWF LATB

helyett először a BCF LATB,5 (RB5-ön van az enable), majd a többi lábat kell nullázni.

Nem akartam csodát várni, de azért gondoltam hogy egy ilyen egyszerű dolog menni fog, még ha nem is pöcc-röffre. Szerintem ennyi volt az asm programozás, nincs értelme így folytatni.
Azért csatolom a progit, elvileg egy hetest kéne kiírnia, de csak megjelenik a kurzor és kész. Ugyanezeket a lépéseket LPT-ről megcsináltam és ott működött. Aki valami hibát talál a programban, vagy akármiben, ne tartsa vissza magát.

izze1320.asm
    
Következő: »»   59 / 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