Fórum témák

» Több friss téma
Fórum » Fluoreszcens kijelzők (VFD) használata
 
Témaindító: eSDi, idő: Márc 23, 2006
Témakörök:
Lapozás: OK   25 / 51
(#) Buvarruha válasza peti634 hozzászólására (») Aug 3, 2013 /
 
Lehet, hogy a 12V picit meggyilkolta, mindegyik ilyen?
(#) peti634 válasza Buvarruha hozzászólására (») Aug 3, 2013 /
 
Csak ez az egy 5V-os, és még csak ezt sikerült beüzemelni, most jön a többi. Lehet nem bírta, bár a vezérlő gondolom ugyan azon a lábon irányítja, így nem tudom.
(#) peti634 hozzászólása Aug 4, 2013 /
 
Az egyik 16L102DA4 biztos hogy rossz, észrevettem hogy a végén a kis rész el van törve.
A másik kijelző része működik. (Bekötve a lábaihoz érintve a földet világit az adott pont)

16LF01UA3 csak 5V szükséges, kiküldöm a 0xFF (kijelző főnyerő beállítása), és utána lehet küldeni a betűket.

16L102DA4 5V és 12V bekötve. Hasonló bekötéssel, és programkóddal kiküldtem a:
0x60
0x57
0x30
0x00
0x70
Ezután próbáltam többféle kódot is, de nem jelent meg semmi a kijelzőn. Valakinek valami ötlete?
(#) sooty válasza peti634 hozzászólására (») Aug 4, 2013 /
 
Na ezt mondtam először, hogy a SEL-lel kell variálni, mert nem olyan mint a másik:
Idézet:
„If the /SEL pin is changed from LOW to HIGH, the serial transfer is inhibited, and
data, which is entered after the /SEL pin is changed from HIGH to LOW, is recognized
in unit of 8-bits.”

Csak hagytam magam rábeszélni Tehát a SELt is működtetni kell a 8 bites blokkok végén, meg akkor, ha kijelzőn a pozíciót akarod módosítani. Csak azt nem értem hogy az első adatok miért nem jelennek így meg?
A hozzászólás módosítva: Aug 4, 2013
(#) sooty válasza peti634 hozzászólására (») Aug 4, 2013 /
 
Próbáld meg az előzőekben linkelt adatlapon szereplő inicializáló szekvenciát leküldeni neki. Elvileg egy RESET után már a karaktereket várja. A felnyerő FFH szerintem nem jó az adatlap szerint 57H.
Ja látom, azt küldted ki neki... Akkor azt próbáld, hogy reset után egyből karaktert küldesz neki.
A hozzászólás módosítva: Aug 4, 2013
(#) peti634 válasza sooty hozzászólására (») Aug 4, 2013 /
 
Igaz, igaz, azt hittem az is úgy működik mint egyes chipek.
16LF01UA3, és 16LF01UA4 rendben megy.

Ezzel sajnos nem bírok, próbáltam többféle kóddal, bekötéssel, de semmi:S

VFD.cpp
    
(#) sooty válasza peti634 hozzászólására (») Aug 4, 2013 / 1
 
Nem hosszúak ezek a 100mS -os késleltetések?
(#) peti634 válasza sooty hozzászólására (») Aug 4, 2013 /
 
Datasheet csak 1 helyen ír maximumot, vagyis teljesen mind1 mennyit várok, elvileg, csak a biztonság kedvéért, és LED-et rákötve látom hogy jól megy e.
(#) sooty válasza peti634 hozzászólására (») Aug 4, 2013 /
 
Nekem is van egy ilyen kijelzőm, majd megpróbálom , bár egyszer már félretettem...
(#) peti634 válasza sooty hozzászólására (») Aug 4, 2013 /
 
mert nem sikerült elindítani?
(#) sooty válasza peti634 hozzászólására (») Aug 4, 2013 /
 
Igen, a másikból csináltam órát, még egy rtc, dcf rutin kellene bele. De ezt a másikat félretettem, mert nem ment, de lehet hogy a sel szerepét félreértelmeztem, megpróbálom majd újra beindítani.
(#) Hp41C válasza peti634 hozzászólására (») Aug 4, 2013 /
 
Szia!
  1. void SendBit(uint8_t bit){
  2. //PC3 SEL
  3. //PC4 DATA
  4. //PC5 SCK
  5.         if (bit) PORTC &= ~(1<<PC5);
  6.         _delay_ms(100);
  7.         PORTC &= ~(1<<PC4);_delay_ms(100);
  8.         PORTC = (1<<PC5) | (1<<PC4) ;
  9.         _delay_ms(100);
  10. }

Éredeks ez a függvény... Nem így kellene?
  1. void SendBit(uint8_t bit){
  2. //PC3 SEL
  3. //PC4 DATA
  4. //PC5 SCK
  5.         PORTC &= ~(1<<PC5); // SCK \
  6.         _delay_ms(100);
  7.         if (bit) PORTC |= (1<<PC4); else PORTC &= ~(1<<PC4); // Setup DATA
  8.         _delay_ms(100);
  9.         PORTC = (1<<PC5); // SCK /
  10.         _delay_ms(100);
  11. }

Ha lenne egy PICkit2 kéznél, a logikai analizátorral fel lehetne venni a jelalakokat. Épen 3 csatorna van...
(#) peti634 válasza Hp41C hozzászólására (») Aug 4, 2013 /
 
PC4 és PC5 fordítva van, elsőnek az adatot kell beállítani, utána az SCK-t ráadni.
(#) Hp41C válasza peti634 hozzászólására (») Aug 4, 2013 /
 
Az SCK, DATA vonalakon nem tételeztem fel negáló meghajtókat.
Ha jól nézem az adatlap 4.9.1. ábráját, az adat előkészítési idő a SCK felfutó éle elött van (tds), az adattartási idő a felfutó él után van (tdh). Az adatnak be kell álnia a SCK felfutó éle előtt. A módosított program betartja az időzítéseket. A megoldásodban a SCK és az adat egyszerre váltott.
A hozzászólás módosítva: Aug 4, 2013
(#) peti634 válasza Hp41C hozzászólására (») Aug 4, 2013 /
 
Biztos ami biztos próbálgattam ezzel a módszerrel is, de semmi változás. sooty-t megvárom, csak több tapasztalata van mint nekem
(#) sooty válasza peti634 hozzászólására (») Aug 4, 2013 /
 
Hp41C-nek meg sokkal nagyobb tudása van mint nekem...
(#) sooty válasza peti634 hozzászólására (») Aug 5, 2013 / 1
 
Hát egyelőre csak teli és sakktáblamintás karaktereket tudtam rajta megjeleníteni, a teli karakterek a kiíratás sebességével jönnek, ami bíztató... folyt.köv.
(#) peti634 válasza sooty hozzászólására (») Aug 5, 2013 /
 
ha tudsz forráskódot osztani érdekelne már ennyi is!
(#) eSDi válasza peti634 hozzászólására (») Aug 5, 2013 /
 
Üdv!

Nekem is van egy 16L102DA4 típusú kijelzőm. Írtam hozzá egy kis óra és hőmerő programot Oshonsoft PIC BASIC-ben. (Lásd csatolmány.) Én a hardveres SPI-t használom az adat kiküldésére. Remélem segít egy kicsit az előre haladásban.
A képet nézve látom, hogy neked a dupla soros csati van beforrasztva. Azért leírom a másik bekötését:
1. -> 12V
2. -> SCLK
3. -> SEL
4. -> SDATA
5. -> RST
6. -> GND
(#) peti634 válasza eSDi hozzászólására (») Aug 6, 2013 /
 
megpróbáltam átírni Avr studio c++ nyelvre, de nem csinál így se semmit. A kódba lenne a hiba, vagy a kijelzőbe?

16L102DA4.cpp
    
(#) sooty válasza peti634 hozzászólására (») Aug 6, 2013 /
 
Nekem sem megy egyelőre a kijelző, annyit sikerült megtudnom, hogy amíg az összes karakter helyre nincs kiíratva a tizedespontok állapota, nem jelenik meg a kijelzőn semmi (a 30-as parancs után ki kell íratni 16 db 0x00 -át). A másik kijelzőhöz képest az kiíratás sorrendje fordított, tehát először az LSB utána az MSB jön.
(#) peti634 válasza sooty hozzászólására (») Aug 6, 2013 /
 
igen, amit én át írtam az is ilyesmi, de semmi nem jelenik meg. Írtad hogy neked már megjelent valamit, az hogy sikerült? Esetleg forráskód?
Elég hülye módszer a 16LF01UA3, és a HD44780-hoz képest.
(#) sooty válasza peti634 hozzászólására (») Aug 6, 2013 /
 
Ha legalább egy "A" betű megjelenne, már felraktam volna...
(#) eSDi válasza peti634 hozzászólására (») Aug 6, 2013 /
 
Sajnos nem ismerem az AVR C++ nyelvet, így nem tudom mi lehet a hiba.
Annyit tudok mondani, hogy én annak idején úgy indultam el, hogy először a teszt módot próbáltam meg bekapcsolni, ha ez ment, akkor a beállításokat variáltam (fényerő, stb.) és csak ezután következett a "HELLO WORLD".
(#) peti634 válasza eSDi hozzászólására (») Aug 6, 2013 /
 
és ezt a teszt módot hogyan lehet elérni?
sooty, csak írtad hogy valami már megjelent, az már jobb mint nekem
Ezért gondoltam hogy legalább nekem is jelenne meg valami rajta, már annyi is elég lenne.
(#) eSDi válasza sooty hozzászólására (») Aug 6, 2013 /
 
Ha a 16L102DA4-es kijelzőre gondolsz, akkor nekem minden egyes karakter beírása után megjelent az a kijelzőn.
(#) eSDi válasza peti634 hozzászólására (») Aug 6, 2013 / 1
 
Ismét a saját kódomból idézek, ha nem baj...
A segment mode-nál az utolsó két bitet 1-re kell átállítani és akkor az összes szegmensnek világítania kell az előtte beállított fényerővel. Próbáld meg szoftveres SPI-vel először. (gondolom ilyen van nálad is...)

  1. Proc init_vfd()
  2.         //reset vfd
  3.         rst = False
  4.         WaitMs 1
  5.         rst = True
  6.         //number of digit
  7.         Call spi_cs(10)
  8.         Call spi_send(%01100000, 1)
  9.         Call spi_cs(10)
  10.         //dimming adjust
  11.         Call spi_cs(10)
  12.         Call spi_send(%01010000, 1)
  13.         Call spi_cs(10)
  14.         //comma and decimal point
  15.         Call spi_cs(10)
  16.         Call spi_send(%00110000, 1)
  17.         Call spi_send(%00000000, 16)
  18.         Call spi_cs(10)
  19.         //display position & char data
  20.         Call spi_cs(10)
  21.         Call spi_send(%00010000, 1)
  22.         Call spi_send(%00100000, 16)
  23.         Call spi_cs(10)
  24.         //segment mode
  25.         Call spi_cs(10)
  26.         Call spi_send(%01110000, 1)
  27.         Call spi_cs(10)
  28. End Proc
(#) sooty válasza peti634 hozzászólására (») Aug 6, 2013 / 2
 
Sikerült elindítanom egy basic programmal:
A hozzászólás módosítva: Aug 6, 2013
(#) peti634 hozzászólása Aug 20, 2013 /
 
Bocsi, hogy nem voltam eddig elérhető, sok minden volt
Viszont sajnos akkor se tudom ezt beüzemelni:S
Valahol a forrásban van a hiba?

16L102DA4.cpp
    
(#) eSDi válasza peti634 hozzászólására (») Aug 21, 2013 /
 
Belenéztem a forrásba, de én ezt annyira nem látom át.
Beállítottad az SPI-t, hogy először az LSB-t küldje ki?
Szerintem még a CS és az adat közé iktass be egy 10us-es késleltetést.
Valahogy így:
CS_be - 10us - adat(LSB-->MSB) - 10us - CS_ki
Következő: »»   25 / 51
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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