TavIR-AVR
TavIR-AVR

Menü
· Főoldal
· WebShop
· Események
· File csere-bere
· Fórum
· Fórum-Chat
· Kapcsolat
· Keresés
· Letöltések
· Lexikon
· Linkek
· Partnerek
· Select AVR
· Tartalom

Fórumumtémák
5 legfrissebb hozzászólás

Mi van az AVR-el és a BASCOM-al?
Robert küldte 03 Sep 2010 as 09:19:21

Bascom szimulátor hogyan működik?
Robert küldte 03 Sep 2010 as 09:11:16

Szervó motor léptetése
Robert küldte 02 Sep 2010 as 20:43:19

Karakteres LCD kezelése
Robert küldte 02 Sep 2010 as 13:05:50

megszakítások !! egy pici elakadás!
Bence küldte 02 Sep 2010 as 12:41:56


[ Tavir AVR ]

Lexikon
  Bináris
  fordító (interpreter)
  Interpreter (értelmező)
  Parser
  Tárgykód

Régebbi hírek
2010-05-17
· 16. TavIR-AVR hírlevél
2010-05-16
· COW protokol
2010-04-15
· Bascom-AVR tanfolyam
2010-04-13
· Új chipek, panelek
2010-03-02
· Postázások rendje
2010-02-13
· AVR-Duino és a hanglejátszás
2010-02-03
· Arduino-0018
· WaveShield és Wiznet demopanelek
2010-01-31
· Arduino és a Bascom....
2009-12-25
· Megjelent a Bascom 1.11.9.8 verzió (DEMO és regisztrált is)

Korábbi cikkek

Információ

A site a Webring tagja


902. USB-n keresztüli alfanumerikus LCD vezérlése




A korai időkben felmerült,. hogy alfanumerikus LCD modult érdemes lenne USB portra illeszteni. Itt a kommunikáció az, ami nehézkessé vált, ugyanis az USB protokoll jóval összetettebb, mint akár egy soros, akár egy párhuzamos porton történő kommunikáció. Mintaként az ATmel chipek közül az ATMega16-osra esett a választás, lévén ez elegengően nagy belső programtárral bír, valamit a belső funkcionalitása is széleskörű. Az USB felé az illesztés FT232BM chippel valósult meg, ami egy egyszerűen kezelhető USB->Sorosport konverter. A dokumentációja jól hozzáférhető és a PC felől (Windows/Linux/Mac) sorosportként látszik (DOS ablakban QBasicból lekezelhető).


Az alkalmazási előirat bármely részének vagy egészének leközlése nyomtatott, írott, elektronikus, hangzó vagy bármely formában történő közlése csak a szerző előzetes hozzájárulásával történhet. Az itt leírtak saját tapasztalatok, saját munka eredménye. A megvalósítás a szigorúan vett GPL licensz alá esik, így bármely részének módosítása csak és kizárólag a szerző értesítése mellett, teljes publikálással történhet. Legyen ez a program vagy kapcsolási rajz módosítása, utánközlése. A GPL licensz a letölthető és publikált anyagok szerves részét képezi.

A korai időkben felmerült, hogy alfanumerikus LCD modult érdemes lenne USB portra illeszteni. Itt a kommunikáció az, ami nehézkessé vált, ugyanis az USB protokoll jóval összetettebb, mint akár egy soros, akár egy párhuzamos porton történő kommunikáció. Mintaként az ATMEL chipek közül az ATMega16-osra esett a választás, lévén ez elegengően nagy belső programtárral bír, valamit a belső funkcionalitása is széleskörű. Az USB felé az illesztés FT232BM chippel valósult meg, ami egy egyszerűen kezelhető USB->Sorosport konverter. A dokumentációja jól hozzáférhető és a PC felől (Windows/Linux/Mac) sorosportként látszik (DOS ablakban QBasicból lekezelhető).

Ha meg akarod építeni, az oldalon a teljes dokumentáció elérhető. A nyomtaott áramkört, az alkatrészcsomagot illetve a készreszerelt modult a WebShopban meg lehet vásárolni.


Az előzmények

A megvalósítás három fő részből áll:

  • USB->Soros konverter
  • Soros port ->Mikrovezérlő
  • Mikrovezérlő->LCD

Az USB->Soros konverzióról a Bascom kézikönyv 22. fejezetében lehet bővebb információt találni. Az ott adott USB-1 modul is ugyanezt a chipet és elvet használja.

A mikrovezérlő tartalmazza a fordítóprogramot, ami az USB-ről kapott parancsot értelmezi és az LCD modul felé továbbítja. Ami eltérés a standard LCD bekötésekhez képest, hogy a modul 4 biten kommunikál (lábtakarékosság), ugyanakkor a sebessége a standard bekötéskor (itt fix várakozási idők vannak, hogy megértse a modul a parancsot) - elég kiábrándító. A sebesség növelése miatt a busy (foglalt) jel figyelés került megvalósításra - így, amint végzett az LCD-kontroller az adatfeldolgozással, azonnal küldhető a következő adat. A modul sebessége a 2-3 képváltás/másodpercről 25-30 képváltás/másodpercre nőtt! Ezzel már lehet mit kezdeni :).

A PC->USB modul kommunikációt nem volt igazán affinitásom kitalálni. Körbenéztem, hogy a piacon milyen lehetőségek vannak, -> voltak akik már elkövettek ilyet. Két gyártót találtam, a MatrixOrbital-t és a Crystalfontz-ot. Egy-egy kisebb cég volt még, de a program-támogatottságuk....:( - hát hagy kívánni valót maga után. A Crystalfontz és a MatrixOrbital protokollja jól hozzáférhető és teljesen dokumentált. Több se kell, akkor ez lesz megvalósítva! Irodalomkutatás eredményeként kiderült, hogy PIC vezérlővel valósították meg a kódfeldolgozást. Ahhoz lövésem nem sok van, így az eddig már jól bevált ATMEL chipek AVR családját kell befogni. Programozásra nem sok választás volt - Bascom. Ezt ismerem, ezen gyakoroltam már eleget. Egy ATMega16-t tartalmazó próbapanelen kezdtem neki, gondoltam ez úgyis sok is lesz - aztán a hordozhatóság jegyében majd átpakolom ATMega8-ba.

A kód alakult, nőtt és jöttek a tippek mi kerüljön még bele: az első ilyen kívánság - hogy erre a gyártók miért nem gondolnak.... - hogy a PC-n kívül is elhelyezhető legyen, valamint kikapcsolt állapotban mutassa az időt. Azaz óra legyen! És ha már óra akkor ismerje az ébresztési funkciókat is. Csipogjon. És innen beindult a gőzhenger: hőmérő, fényorgona, LED-sor, megvilágításmérő, füstjelő, tolvajfogó... A rajzot úgy terveztem, hogy minden kívánság - akár később is - implementálható legyen.


A rajz

A programfejlesztés elindult, de jó lett volna nem csak sima sorosporton át nyaggatni a kijelzőt, hanem valamiféle előzetes állapotban összerakott USB vezérlővel ellátva önálló eszközként. Így papír, ceruza és EAGLE (tervezőprogram) előkerült, azután a nyomtatott áramköri terv és a kapcsolási rajz is elkészült:

Klik a képre a nagyításhoz!
1. ábra Áramköri terv

Ezen a rajzon sokminden van, legfőképp egy halom alkatrész. Reptében nem illik szerelni, így nyomtatott áramkör került alája. Itthoni elkészítésre nem vállalkoztam, lévén az FT232BM chip sűrűlábú. Ennek beforrasztásához Weller/Fahrenheit vagy valami SMD forrasztásra alkalmas páka javasolt. Fahrenheit van itthon, így a nyomtatott áramkörbe belevágtam. Az eredmény: Kb. 1/2 kisfloppy méretű, kétoldalas, furatgalvanizált, forrasztásgátló lakkbevonatos, előónozott (innen rendelhető). Gazdaságosság + kísérletezés miatt 15 darabot rendeltem, legyen tartalék...

2a. ábra A főbb alkatrészek....


2b. ábra A nyomtatott áramköri rajz
(A felső nyákterv-réteg és az alsó nyákterv-réteg is elérhető)


Az élesztés, beültetés

A panelt kézbevéve megdícsértem magamat. Viszonylag szellős, ugyanakkor nem sikerült elkötést összehozni rajta:). Az alkatrészek 2 nap szaladgálás és postai rendelés, telefonok után megvoltak. Kiraktam magam elé mindent és elindult a beültetési procedúra.

Először a panelt erős fénnyel átvilágítva (most nyáron ablak felé tartva) megnéztem, hogy nincs-e rajta repedés, összeérő forrszem (nagyon jól dolgozott a nyákgyártó), így semmi ilyesmi nincsen).

Először az USB csatlakozót kell beépíteni (nem mindegy melyik oldalra! Én el szoktam rontani...). az aljára fel szoktam ragasztani egy ún. csempe/tükörragasztó csíkdarabot, ezzel is plusz rögzítést adva.

3. ábra Így kell fordítva berakni...

Ha a fordítva berögzítést sikeresen elkövettük, akkor - még forrsztás előtt - vegyük ki és tegyük át a túloldalra. Ha már beforrasztottuk, akkor ónszívó, finom kézmozdulatok segítségével (mintha nővel/hímestojással bánnál) vedd ki a panelből. A furatgalvanizálás ha megsérül, akkor vékony rézdrótszállal javítható (pl. billentyűzet PS2 csatlakozókábeléből lefejtve).


4. ábra És így kellene....

Ha már az USB csatlakozót beforrasztottuk, akkor a DIP foglalatot is forrasszuk be az ATMega16 chipnek. Fontos! A chip foglalatának a 20-as lábát emeljül ki, mert a nyomtatott áramkörben a láb és az alatta lévő vezetősáv csak a v09-es firmware változatig volt használva!

5. ábra A beültetett DIP foglalat a hiányzó lábbal (valamint az előkészített FT232BM chip)

Az összeszerelés és az élesztés a működési sorrendben történik. Először az USB illesztőfelületet hozzuk létre. Az FTDI chip eléggé kisméretű. Így este ne - vagy csak asztali lámpa, jó megvilágítás esetén fogjunk neki a beforrasztásának. Ja és ne igyunk előtte (sem kávé, sem sör), mert a remegő kéz 1 mm-es kilengése összeköti a szomszédos lábakat....
Első lépésként forrasztógyantával kenjük be a TQFP chip lábszigeteit, majd ha már csepeg a kezünk tőle mossuk le a mancsunkat. Utána kezdetnek a chip - ld. 6. ábrán - jobb felső csücskét hefteljük a panelhez. Hegyes pákahegy ajánlott, általában ez van az alapcsomagban. A chip nem körforgatható, nézzük, hogy mind a 4 oldalán jó legyen az illeszkedés a lábak alatti panelszigetekhez! Ha ez sikeres, akkor az átellenes sarkon is végezzük el a heftelést. Ha forrasztásgátló lakk lenne a sarki szigeten - éles késsel, csipesszel kapargassuk meg egy kicsit. Ha összefolyik az ón - egyenlőre - ne akarjuk kipiszkálni.

6. ábra Valahogy így rögzítsük a sarkon

Ezitán keressük meg az ónszívó fémsodratot (koaxkábel harisnyája (pl. RG58-asé jó)). Ónnal futtassuk körbe a chipet, hogy a lábak hegedjenek a panelra. Ha az ón befolyik közéjük nem baj, csak ne melegítsük túl sokáig...

7. ábra Ez jól körbefolyta magát...

Most az előzőleg összekészített fémsodrat-harisnyát gyantázzuk be és az ónra tartva a pákával melegítve itassuk fel. Az ábrán látható ónmennyiséghez kb. 3 cm sodratot használtam el. Oldalanként új ónsodrattal kezdjünk neki, az elhasználtat vágjuk le! A chipet ne melegítsük sokáig! Ha jól dolgoztunk, akkor valami ilyet kell látni:

8. ábra Az ónsodrat csodákra képes

A fény felé tartva ellenőrizzük, hogy a lábak közt nem-e maradt forrasztóón. A chip alá nem szokott bekúszni (én nem találkoztam vele). Ezután ültessük be az USB-chiphez szükséges alkatrészeket az ábra szerint:

9. ábra Az USB illesztő elemei

Az USB csatlakozó mögött 2 db 27 ohmos ellenállás, mellette jobbra az 1k5 ohmos ellenállás, a chip és a kvarckristály között a 470 ohmos chipellenállás. Ezután a kondenzátorokat tegyük a helyére: 2 db 27 pF a kvarchoz, 2 db 100 nF: egy a tápszűrésre felül és egy a 3,3 V-os táp stabilizáláshoz az FT232BM chip mellé. Ha ezzel megvagyunk, akkor bízzunk magunkban. az USB felület készen áll a használatra.


Telepítés

Ha most az USB kábel segítségével a PC-re kötjük a panelt, akkor az USB-s eszköznek mint 'USB-serial converter' vagy 'TavIR LCD_USB', be kell jelentkeznie és kérnie a telepítőlemezt. Ha ismeretlen eszközként jelenik meg, akkor valamit elrontottunk. Ha a gép restartol/újraindul, akkor valahol a panelen rövidzár van!

  • Kvarc 6 MHz-s?
  • 27 pF-s kondenzátort raktunk be a kvarchoz?
  • A 2 db 27 ohmos ellenállás jól be lett forrasztva?
  • 1k5 ellenállás érintkezik?

A telepítés során a következőkez kell látni (driver legyen kéznél! Pl. innen letölthető):


10. ábra Jé - látja a modult, füst nincs:) - Eddig jó....


11. ábra Beadjuk a drivert, a holmi bejelentkezett
(XP SP1/SP2 esetén NE hagyjuk, hogy a beépítettet tegye fel!)


12. ábra Meg ez, mint ahogy annak rendje van,
csak senki nem kérte meg az M$-t, hogy hagyja jóvá....


13. ábra Nem is kellett, felmegy anélkül is....

Még egy hasonló telepítési procedúra lezajlik (az előbb az USB illesztő volt, most meg a sorosporti felület jön). Végül az eszköz használatra kész. Ezt ellenőrizzük a Start->Beállítások->Vezérlőpult->Rendszer->Hardver->Eszközkezelő területen belül:

14. ábra És itt is van az eszközünk, mint COM 6-os port
(vagy valami hasonló is lehet COM1...COM15 között)

Ebbéli örömünkben azért indítsuk újra gépet, mert az ördög szeme karikás...(=>Soha nem alszik) és "Ne is fessük a falra", mert lemászik vagy jön a házmester és moshatjuk le....


Élesztés

Az USB felület a kritikus része az alkalmazásnak. Ha ennek telepítésén túl vagyunk, akkor - leválaszva a PC-ről! - folytassuk a beültetést. A jelölt helyekre kerülnek alkatrészek (ha nem felejtettem ki valamit...).

15. ábra A nyilak jelzik mi van még hátra. Hát akad....

Már a munka aprórésze következik: A 14,7456 MHz-s kvarc beültetése után a kvarc feletti 4k7-es ellenállás kerül sorra (ez a reset vonalat húzza fel, nem lehagyható!). Ezután a DIP foglalton belül a két világos 27 pF-s kondenzátor (kvarc lábail levő) és a sötétebb 2 db 100 nF-s következik. A kép alján levő 2*10 kohm ellenállás elhagyható, csak akkor szükséges, ha valamikor az I2C buszt akarjuk használni (pl. hőmérő, stb). A 2*3-as tüskesor a chip programozásához kell, valamint a felső 2 tüske a chip resethez szükséges. A 2*8-as csatlakozósor (keretes tüskesor) az LCD csatlakozója. Ezzel egyenrangú a kép tetején látható 1*16-os sor, vagylagosan használható. 2 LCD modult egyidőben nem tud meghajtani! A 2*8-as csatlakozósor alatt levő SMD forrjumper a LCDmodul tápellátásáért felel. Ha nincs bekötve, akkor külső áramforrás a tőle balra lévő forrszemen keresztül oldható meg (az USB-port terhelhetősége a gép bekapcsolt állapotában max. 450mA, kikapcsolt PC esetén - ha standby állapotban is működik - akkor minimum 1,5-2 A áramleadást is tudjon a tápegység!).

16. ábra Ami a beültetésből hátra van...

Az SMD holmik után a tüskesorok illetve a nagyobb alkatrészek, valamint a forrasz-jumperek átkötése válik szükségessé. Ezek után - ha még ébresztőórát is szeretnénk, akkor a csipogó beültetése van hátra. Valamint az az átkötőkábel, ami miatt ki kellett hagyni a processzor 20-as lábát, és a reset lábhoz tartozó prellmentesítő-időzítő kondenzátor.

17. ábra A nagyobb alkatrészek beültetése

A képen alul az USB csatlakozó mellett a 10uF kapacitású tápszűrő kondenzátor (elhagyható), a balra fenn található kapcsoló FET (BS170), illetve a háttérvilágítás maximális fényerejéért felelős ellenállás kerül beültetésre (ennek értéke 7R5...18R közt lehet, 0,25...0,5 W teljesítmény mellett - lehetőleg hagyományos, nem SMD kivitelű alkatrész). Ezektől jobbra a forraszátkötés, illetve az ábrán a 2*8-as csatlakozósor alatt 0 ohmos ellenállás látható. Ez a nyáktervben egy 100 ohm + 100 nF szűrő volt. Ez felel a kontrasztért a panelen. A gyakorlatban megvalósuló áramkörben a kontraszt PWM-ként lett előállítva, (ahogy a háttérvilágítás is) és a frekvenciája ~30...50 kHz körül alakul. A szem tehetetlensége illetve a kijelző lomhasága miatt nem szükséges szűrni. A tüskesorok a jobboldalt fentről lefele a következő célt szolgálják: 8 csatornás I/O (részben a firmware frissítés kapcsolója, részben a csipogóval közös), alatta a tápkivezetés (pl. egyéb járulékos áramkörhöz), végül az I2C busz csatlakozója. Ez utóbbi kettő nyugodtan elhagyható.

18. ábra És az alja a panelnak...

A panel hátlapján a RESET áramkör kondenzátora (kb. középen, 100 nF), a csipogó jobboldalt a GND és a PortA.6 kivezetésen, valamint a kép tetjén az átkötés a háttérvilágítás szabályozásához (20-21. láb). A kép jobboldalán a beültetett BS170 illetve a háttérvilágítás védőellenállása található. Ha mindezzel megvagyunk, akkor a ATMega16 chipet behelyezzük a foglalatba és az LCD modult szalagkábellel csatlakoztatjuk a panelhez. A lábkiosztása a standard 16 pólusú alfanumerikus LCD-vel egyezik meg. Az ajánlott és tesztelt modulok, valamint a lábkiosztás innen elérhető. Ezzel a panellel készen is vagyunk.


Programozás

A chip programozására a Bascom programot javaslom. Ezzel a kész firmware beégethető, a belső EEPROM tartalommal együtt. A firmware innen elérhető (a forráskódot is tartalmazza!). A kód fordításához regisztrált Bascom szükséges.

Paraméterek:

  • Kvarc: 14,7456 MHz
  • Kommunikációs sebesség: 2400...57600 bps
  • Alkatrészlista:902_partlist.txt

A vezérlés leírása innen érhető el.

A fejlesztési fórumban zajlik a tippcsere.


Tartalomjegyzék








© Tavir AVR . Minden jog fenntartva.

Közreadva: 2005-08-02 (8944 olvasás)

[ Vissza ]
Content ©
WebShop ajánlat

Eseménynaptár
Szeptember 2010
  1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30  

Kiállítás
Elõadás
Verseny
Publikáció
Egyéb esemény

Bejelentkezés
Felhasználónév

Jelszó

Biztonsági kód: Biztonsági kód
Kód megadása

Még nem vagy a felhasználónk? Regisztrálj, ingyenes!

Keresés



Eddigi szavazások
Itt még szavazhatsz!

TavIR oktatás
· Fórum
· Tesztsor
· Tanfolyamról...

 
Az oldalon található termék- és cégelnevezések tulajdonosaik védjegyoltalma alá eshetnek.
A hozzászólások szerzőik tulajdonai, minden más tartalom: © 2005. Cseh Róbert
Impresszum és adatvédelmi szabályzat
A Weboldal hírei a backend.php fájlal is elérhető.
Tartalomkezelő rendszer: © 2004 PHP-Nuke. Minden jog fenntartva. A PHP-Nuke szabad szoftver, amelyre a GNU/GPL licensz érvényes.
PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Oldalkészítés: 0.03 másodperc