Szerző |
Üzenet |
HiMen
arany tag
Csatlakozott: kedd szept. 07, 2004 14:53 Hozzászólások: 147
|
Valaki dolgozott már PCF8583 RTC-vel? Eddig R2025-el semmi gondom sem volt. Kapásból küldte az időt. Ez pedig számlál.
Bekapcsoláskor a controlll register 0-án áll, tehát a belső kristály alapján kellene időt mérnie. Erre az 1 és 2 címről emelkedő számadatokat olvasok le ha az újjammal piszkálom az OSCI lábat.
Na erre gondoltam akkor számláld meg saját magadat és bekötöttem a saját OSCO lábát az OSCI -re. Erre teljesen megállt a számlálás. Ilyet.....???
|
vas. márc. 21, 2010 23:38 |
|
|
Jose7
ezüst tag
Csatlakozott: szer. okt. 07, 2009 17:53 Hozzászólások: 34 Tartózkodási hely: Móvár
|
Bocs RW-re gondoltam,csok elírtam!
|
vas. márc. 21, 2010 9:08 |
|
|
Jose7
ezüst tag
Csatlakozott: szer. okt. 07, 2009 17:53 Hozzászólások: 34 Tartózkodási hely: Móvár
|
HiMen ! "Természetesen. Nézd meg a programomat (lejjebb) LOW RS"
Megnéztem!
Örülök hogy megoldódott, és valóban az esetek nagy részében kötési gondok szoktak előfordulni, az RS nem volt teljesen LOW!
|
vas. márc. 21, 2010 9:02 |
|
|
HiMen
arany tag
Csatlakozott: kedd szept. 07, 2004 14:53 Hozzászólások: 147
|
Értem ! Igazatok van!
Már csak egy gondom maradt:
A PCF8583 RTC-m van event counter állapotban, a controll register 0 állapota ellenére!!! Ami lehetetlen...
Így nem az időt méri, hanem az OSCI bemenetet számolja.
Van erre fórum, mert nem akarok off topic lenni ?!
|
szomb. márc. 20, 2010 19:00 |
|
|
T68m
a fórum lelke
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 12729 Tartózkodási hely: FLF
|
HiMen írta: ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Megoldottam!!!! kb. 10 éves digitális technikai gyakorlattal (és oktatással, mármint hogy tanítom is) a hátammögött, éreztem, hogy csakis valami nagyom amatör hiba lehet. Ráment egy hetem!!!
Érdekes, hogy ti sem vettétek észre, pedig írtam is, hogy az R/W-t 10 K-val húztam a GND-re... Hát kevés volt neki. Amikor a multimétert hozzáérintettem, majdnem 2 voltot mértem rajta és hirtelen megjelent egy csomó karakter a kijelzõn. Kicseréltem a 10K-t 220 Ohmra és tökéletesen megy!
Tanulság: 1. 99,9% az ember a hibás, ott kell keresni a bajt 2. Az I2C-nél elmegy a 10K felhúzó (máshol 4,7K), de ha valamit biztosan a földre akarsz húzni akkor 220 Ohmos ellenállást tegyél be.
Hálásan köszönöm, hogy foglalkoztatok a problémámmal!!!
Valóban írtad fentebb ezt a 10k-s dolgot, de átsiklottam felette, mivel már korábban is írtál különféle nem használt bemenetekre fel és lehúzogatást, amire azt írtam, hogy tök felesleges. Így aztán (gondolom Potyohoz hasonlóan) most nem figyeltem, hogy az R/W lábra írod azt!!! Nekem eszembe se jutna egy bemenetet (hacsak nem akarom azt vezérelni, pl. nyomógombbal, vagy másról, pl. programozó eszközrõl) ellenállással bekötni! Direktbe ráteszem mindet a tápra vagy a földre és kész. Normál üzembe semmi baja nem lesz.
Az ellenállásos játék az IO bemenetekre azért kell, mert ha hiba folytán a tápbemenetek nem kapják meg a delejt, akkor az IO bemeneteknél lévõ FET-ek diódáján keresztül kapja az IC az áramot, ami diódák (ellenállás nélkül) túlterhelõdhetnek. De - szvsz -, akkor inkább menjen tönkre az IC és rögtön tudni fogom, hogy nem kap helyesen tápot.
|
szomb. márc. 20, 2010 17:28 |
|
|
potyo
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3691 Tartózkodási hely: Ada
|
Kontrollernél is azért van az, hogy ha véletlenül kimenetté van állítva a láb, akkor ne tudj rövidzárat csinálni a gomb lenyomásakor. Kezdőknek gyakorláshoz így bolondbiztos. De utána kész áramköröknél már csak a felhúzó kell a gombhoz, és direktben húzhatja a gomb gnd-re. Ilyesminél, ahol meg a láb eleve csak bemenet lehet, itt nem lehet vele semmi kárt csinálni, ha direktben lehúzod.
|
szomb. márc. 20, 2010 16:46 |
|
|
HiMen
arany tag
Csatlakozott: kedd szept. 07, 2004 14:53 Hozzászólások: 147
|
A fene se tudja miért... Előtte R2025 RTC -vel dolgoztam és annak az I2C vonalait 10 K-val kellett VDD-re húzni. Automatikusan 10 K-t raktam be id is, hogy az majd szépen GND-re húzza.
A 220 Ohm-ot azért szoktam berakni mert a Basic Stamp referencia kézikönyvébe a nyomógomboknál is az van berakva. Sorosan egy 220 Ohm, párhuzamosan GND-re vagy VDD-re egy 10 K-s. Így stabilan fel vagy le van húzva a láb, amíg a gombot le nem nyomják. Akkor pedig egy 220-ason keresztül megy le vagy fel aszeint hogy LOW vagy HIGH az aktív. Talán innem is jött a 10K használata, mert a kontroller bemenetén annyi a kézikönyv szerinti javasolt.
|
szomb. márc. 20, 2010 16:39 |
|
|
potyo
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3691 Tartózkodási hely: Ada
|
Tényleg nem vettem észre. De most így utólag megkérdezném, hogy miért 10k-val húztad le? Az a láb az LCD-n sosem lesz kimenet, simán lekötném GND-re ellenállás nélkül.
|
szomb. márc. 20, 2010 16:28 |
|
|
HiMen
arany tag
Csatlakozott: kedd szept. 07, 2004 14:53 Hozzászólások: 147
|
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Megoldottam!!!! kb. 10 éves digitális technikai gyakorlattal (és oktatással, mármint hogy tanítom is) a hátammögött, éreztem, hogy csakis valami nagyom amatör hiba lehet. Ráment egy hetem!!!
Érdekes, hogy ti sem vettétek észre, pedig írtam is, hogy az R/W-t 10 K-val húztam a GND-re... Hát kevés volt neki. Amikor a multimétert hozzáérintettem, majdnem 2 voltot mértem rajta és hirtelen megjelent egy csomó karakter a kijelzőn. Kicseréltem a 10K-t 220 Ohmra és tökéletesen megy!
Tanulság:
1. 99,9% az ember a hibás, ott kell keresni a bajt
2. Az I2C-nél elmegy a 10K felhúzó (máshol 4,7K), de ha valamit biztosan a földre akarsz húzni akkor 220 Ohmos ellenállást tegyél be.
Hálásan köszönöm, hogy foglalkoztatok a problémámmal!!!
|
szomb. márc. 20, 2010 16:13 |
|
|
HiMen
arany tag
Csatlakozott: kedd szept. 07, 2004 14:53 Hozzászólások: 147
|
Jose7:
Természetesen. Nézd meg a programomat (lejjebb) LOW RS
|
szomb. márc. 20, 2010 15:21 |
|
|
potyo
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3691 Tartózkodási hely: Ada
|
T68m írta: potyo írta: Okoz zavart a PIC működésében Nem tapasztaltam.
Akkor azthiszem ennyit a próbaáramkör zavarérzékenységéről
|
szomb. márc. 20, 2010 14:50 |
|
|
T68m
a fórum lelke
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 12729 Tartózkodási hely: FLF
|
potyo írta: Okoz zavart a PIC mûködésében
Nem tapasztaltam.
|
szomb. márc. 20, 2010 14:48 |
|
|
potyo
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3691 Tartózkodási hely: Ada
|
T68m írta: hát, amikor én egy izmosabb igbt-vel a hálózati fázist kapcsolgatom direktben különféle potenciálra, húzogatom le-fel, akkor nemhogy a szünetmentesek kapcsolnak k. gyorsan védő üzemmódba, hanem a házban lévő izzók is furcsa fényjelenséget produkálnak.... Arról, meg hogy mekkora zajt kelt, jobb nem is beszélni!
Okoz zavart a PIC működésében
|
szomb. márc. 20, 2010 14:05 |
|
|
T68m
a fórum lelke
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 12729 Tartózkodási hely: FLF
|
potyo írta: Nem szed azért egy áramkör állandóan akkora hatalmas zajokat össze egy szobában, hogy újra kellene indulnia ezektõl. Valami combosabb mágneskapcsolók közelében már összeszedhet, de a próbaasztalon nem. Ha mégis újraindul, az vagy érintkezési hiba, vagy tervezési hiba, pl. tápszûrõ kondenzátor kispórolása.
hát, amikor én egy izmosabb igbt-vel a hálózati fázist kapcsolgatom direktben különféle potenciálra, húzogatom le-fel, akkor nemhogy a szünetmentesek kapcsolnak k. gyorsan védõ üzemmódba, hanem a házban lévõ izzók is furcsa fényjelenséget produkálnak.... Arról, meg hogy mekkora zajt kelt, jobb nem is beszélni!
(De a lényeg, hogy a kapcsolást a kívánt eredményt produkálja - laci et. legnagyobb sajnálatára... )
Azért tényleg hihetetlen, hogy a mostani félvezetõkkel a fázisokat olyan potenciálra teszem, amilyenre akarom!
|
szomb. márc. 20, 2010 2:07 |
|
|
T68m
a fórum lelke
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 12729 Tartózkodási hely: FLF
|
potyo írta: Jose7 írta: A WDT , ez az õrzõkütya felügyeli a Pic mûködését, és ha rendellenes mûködés alakul ki, pl túlcsordulás,lefagyás vagy hibás adatátvitel, ujraindítja a PIC-et! Mivel a kijelzõk meghajtása is adatátvitelel történik, általába SCIIkódban, ezért úgy néz ki, ha tiszta adatátvitelt akarsz, akkor mégis hasznos dolog, és mint Írtam mûködik! Bekapcsolni több féle móon is lehet! Vagy a betöltõ program kezelõfelületén kell, vagy meg kell adnod a programíráskor a program elsõ részében a konfigurációs részben! Nézz utána a Help -menüben, vagy az íróprogramod kézikönyvében! Hülyeséget beszélsz. A WDT akkor indítja újra a pic-et, ha túlcsordult a számlálója. Normál mûködés közben rendszeresen végrehajt egy utasítást, az CLRWDT-t, ami nullázza a számlálóját és kezdi elõlrõl a számolást. Ha valami történik vele, ami miatt elkószál a programja, akkor nem nullázódik a számláló, ezért túlcsordulás után újraindítja a pic-et. Jól megépített áramkör és rendesen megírt, nem vasvillával összehányt programnál semmi szükség a wdt-re. A wdt egy plusz biztonsági dolog, ami az olyan esetekben kellhet, amire nem lehet felkészülni. Ilyen eset pl. hogy lecsap a villám 10m-re, ettõl a pic-ben valahol megváltozik valami bit, ami miatt pl. végtelen ciklusba kerül a programja, és akkor ebbõl a végtelen ciklusból ugrasztja ki a wdt. De a dolog úgy mûködik, hogy elõször építünk egy kikapcsolt wdt mellett hibátlanul mûködõ áramkört, minden elképzelhetõ módon megpróbálunk hülyeséget csináltatni vele, mint pl. egyszerre lenyomott több nyomógombok, soros porton hibásan beküldött adat, ilyesmi és ha ezek után is hibátlanul dolgozik, na akkor kapcsoljuk be a wdt-t.
Potyo et. mondókáját kiegészíteném, hogy még világosabb legyen:
1. rendellenes mûködést ku.rvára nem figyel a WDT, mert ott kezdõdik, hogy mi is a rendellenes mûködés? Túlcsordulás? Szép is volna, ha 0..255 tartományon túli mûveletvégzés minden esetben újraindítást vonna maga után! Túlcsordulás a status regiszter C és DC bitjeivel ellenõrizhetõ. Hibás adatátvitel pl. rs232-nél rcsta regiszter ferr bitjével ellenõrizhetõ, stb.
2. az, hogy adott esetben a WDT bekapcsolása után kiírt valamit a kijelzõ az a véletlennel van összefüggésben.
3. a CLRWDT utasítást szándékosan kell rendszeresen végrehajtatni a programban idõként. A CLRWDT törli a WDT számlálót ezzel megakadályozza az újraindítást. Célja, ha valamitõl ténylegesen lefagyna a PIC, akkor a törlés hiányában a belsõ áramkör egy idõ után újraindítsa az áramkört. Ez egy szükségmegoldás arra az estre, ha a kézi újraindítás (és annak késlekedése) nagyobb kárt okozna, mint a lefagyás és az újraindítás folytán - szükségszerûen - kiesõ idõszak és az elmaradó adatfeldolgozás hiánya.
4. a WDT van egy normál mûködési funkciója: a wake up from sleep. De az adott esetnek ehhez semmi köze nincs.
|
szomb. márc. 20, 2010 1:58 |
|
|
Jose7
ezüst tag
Csatlakozott: szer. okt. 07, 2009 17:53 Hozzászólások: 34 Tartózkodási hely: Móvár
|
HiMen!
E M E R G I N G D I S P L A Y MODEL NO. VERSION PAGE 6
TECHNOLOGIES CORPORATION 16290(LED TYPES) 1
9 . INTERFACE SIGNALS
PIN NO. SYMBOL DESCRIPTION FUNCTION
1 VSS GROUND 0V (GND)
2 VDD POWER SUPPLY FOR LOGIC CIRCUIT +5V
3 VO LCD CONTRAST ADJUSTMENT
4 RS INSTRUCTION/DATA
REGISTER SELECTION
RS = 0 : INSTRUCTION REGISTER
RS = 1 : DATA REGISTER
A 4 pontban az adatváltót a programaban Így használod?!
|
pén. márc. 19, 2010 23:08 |
|
|
Jose7
ezüst tag
Csatlakozott: szer. okt. 07, 2009 17:53 Hozzászólások: 34 Tartózkodási hely: Móvár
|
"Egyszóval nem értem, honnan jött ez neked, hogy a wdt az univerzális megoldás minden hibára ?"
Nem!! De arra jó, hogy detektáljuk hogy hibás működésről van szó, vagy nem, és így tovább lépjünk! Egyébként osztom a véleményem azzal hogy hibátlan kivitelezésre kell törekedni!
Sajnos egy kicsit elszakadtunk a téma fő vonalátóll!!
|
pén. márc. 19, 2010 20:24 |
|
|
potyo
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3691 Tartózkodási hely: Ada
|
Jose7 írta: Röviden hibás működés. De mivel garantálod hogy az elsőre megírt program hibátlan! Főleg akkor ha sokszor a fordító program sem hibátlan!?! Egyebként több féle megfogalmazással is taálkoztam a működést illetően, néha ezek között is vannak külömbségek, de a lényeget tekintve a nincs nagy különbség! Egyébként a gyakorlatban ahogy írtad, sok zavaró tényező előfordul, főleg ha még a panelünk próbapanelen van és a zavarvédelme még nincs biztosítva! Ezzel szembe mégis töltöttem le olyan gyári konfigurációt is ahol a wdt be volt kapcsolva!??
Nem garantálja senki, hogy az elsőre megírt program hibátlan. Ezért kell tesztelni, hogy kijavítsuk a hibákat. A fordító programok sem szoktak olyan sokszor hibásak lenni. Ha meg mégis, akkor annak sem a wdt-vel javítjuk a hibáját. Próbapanelen is lehet stabil áramkört építeni. Ha ethernetet, usb-t össze lehet rakni napokig működőre próbapanelen wdt nélkül, akkor szinte bármit össze lehet. Nem szed azért egy áramkör állandóan akkora hatalmas zajokat össze egy szobában, hogy újra kellene indulnia ezektől. Valami combosabb mágneskapcsolók közelében már összeszedhet, de a próbaasztalon nem. Ha mégis újraindul, az vagy érintkezési hiba, vagy tervezési hiba, pl. tápszűrő kondenzátor kispórolása.
És ebből mi következik, hogy a gyári cuccokban be van kapcsolva? Semmi. Ettől még ugyanúgy hibátlanra meg kell írni a programot.
Egyszóval nem értem, honnan jött ez neked, hogy a wdt az univerzális megoldás minden hibára
|
pén. márc. 19, 2010 20:01 |
|
|
Jose7
ezüst tag
Csatlakozott: szer. okt. 07, 2009 17:53 Hozzászólások: 34 Tartózkodási hely: Móvár
|
Röviden hibás működés.
De mivel garantálod hogy az elsőre megírt program hibátlan!
Főleg akkor ha sokszor a fordító program sem hibátlan!?!
Egyebként több féle megfogalmazással is taálkoztam a működést illetően,
néha ezek között is vannak külömbségek, de a lényeget tekintve a nincs nagy különbség! Egyébként a gyakorlatban ahogy írtad, sok zavaró tényező előfordul, főleg ha még a panelünk próbapanelen van és a zavarvédelme még nincs biztosítva!
Ezzel szembe mégis töltöttem le olyan gyári konfigurációt is ahol a wdt be volt kapcsolva!??
|
pén. márc. 19, 2010 19:51 |
|
|
potyo
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3691 Tartózkodási hely: Ada
|
Jose7 írta: A WDT , ez az őrzőkütya felügyeli a Pic működését, és ha rendellenes működés alakul ki, pl túlcsordulás,lefagyás vagy hibás adatátvitel, ujraindítja a PIC-et! Mivel a kijelzők meghajtása is adatátvitelel történik, általába SCIIkódban, ezért úgy néz ki, ha tiszta adatátvitelt akarsz, akkor mégis hasznos dolog, és mint Írtam működik! Bekapcsolni több féle móon is lehet! Vagy a betöltő program kezelőfelületén kell, vagy meg kell adnod a programíráskor a program első részében a konfigurációs részben! Nézz utána a Help -menüben, vagy az íróprogramod kézikönyvében!
Hülyeséget beszélsz. A WDT akkor indítja újra a pic-et, ha túlcsordult a számlálója. Normál működés közben rendszeresen végrehajt egy utasítást, az CLRWDT-t, ami nullázza a számlálóját és kezdi előlről a számolást. Ha valami történik vele, ami miatt elkószál a programja, akkor nem nullázódik a számláló, ezért túlcsordulás után újraindítja a pic-et. Jól megépített áramkör és rendesen megírt, nem vasvillával összehányt programnál semmi szükség a wdt-re. A wdt egy plusz biztonsági dolog, ami az olyan esetekben kellhet, amire nem lehet felkészülni. Ilyen eset pl. hogy lecsap a villám 10m-re, ettől a pic-ben valahol megváltozik valami bit, ami miatt pl. végtelen ciklusba kerül a programja, és akkor ebből a végtelen ciklusból ugrasztja ki a wdt. De a dolog úgy működik, hogy először építünk egy kikapcsolt wdt mellett hibátlanul működő áramkört, minden elképzelhető módon megpróbálunk hülyeséget csináltatni vele, mint pl. egyszerre lenyomott több nyomógombok, soros porton hibásan beküldött adat, ilyesmi és ha ezek után is hibátlanul dolgozik, na akkor kapcsoljuk be a wdt-t.
|
pén. márc. 19, 2010 18:58 |
|
|
Jose7
ezüst tag
Csatlakozott: szer. okt. 07, 2009 17:53 Hozzászólások: 34 Tartózkodási hely: Móvár
|
A WDT , ez az őrzőkütya felügyeli a Pic működését, és ha rendellenes működés alakul ki, pl túlcsordulás,lefagyás vagy hibás adatátvitel, ujraindítja a PIC-et! Mivel a kijelzők meghajtása is adatátvitelel történik,
általába SCIIkódban, ezért úgy néz ki, ha tiszta adatátvitelt akarsz, akkor mégis hasznos dolog, és mint Írtam működik!
Bekapcsolni több féle móon is lehet! Vagy a betöltő program kezelőfelületén kell, vagy meg kell adnod a programíráskor a program első részében a konfigurációs részben! Nézz utána a Help -menüben,
vagy az íróprogramod kézikönyvében!
|
pén. márc. 19, 2010 18:10 |
|
|
T68m
a fórum lelke
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 12729 Tartózkodási hely: FLF
|
Õrkutya. Semmi köze a te problémádhoz és - feltehetõleg - Jose7-éhez sem volt.
|
pén. márc. 19, 2010 13:46 |
|
|
HiMen
arany tag
Csatlakozott: kedd szept. 07, 2004 14:53 Hozzászólások: 147
|
Mi az a Wdt ?
|
pén. márc. 19, 2010 8:44 |
|
|
potyo
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3691 Tartózkodási hely: Ada
|
T68m írta: Jose7 írta: És meglepve láttam hogy a kijelzőn megjelent az utolsónak kiküldött szöveg HELLÓ ÉLEK! Aztán utánanéztem a dolognak, a wdt-t kellett bekapcsolni! Ezután már minden OK-lett! ??? Hasonló a véleményem róla
|
csüt. márc. 18, 2010 22:56 |
|
|
T68m
a fórum lelke
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 12729 Tartózkodási hely: FLF
|
Jose7 írta: És meglepve láttam hogy a kijelzõn megjelent az utolsónak kiküldött szöveg HELLÓ ÉLEK! Aztán utánanéztem a dolognak, a wdt-t kellett bekapcsolni! Ezután már minden OK-lett!
???
|
csüt. márc. 18, 2010 22:54 |
|
|
Jose7
ezüst tag
Csatlakozott: szer. okt. 07, 2009 17:53 Hozzászólások: 34 Tartózkodási hely: Móvár
|
Egyszer volt egy hasonló jelenség , egy 16f877- essel egy nagyobb LCD-t próbáltam összehozni, és akkor is csak fekete négyzetek látszottak,
méregettem a feszültségeket,de sehogy sem akart összejönni. És ekkor a műszer resetele a pic-et! És meglepve láttam hogy a kijelzőn megjelent az utolsónak kiküldött szöveg HELLÓ ÉLEK! Aztán utánanéztem a dolognak, a wdt-t kellett bekapcsolni! Ezután már minden OK-lett!
|
csüt. márc. 18, 2010 22:01 |
|
|
HiMen
arany tag
Csatlakozott: kedd szept. 07, 2004 14:53 Hozzászólások: 147
|
Mérni?
Ha GND-re kötöm fekete négyzetek, de egy 4K trimerrel beállítom halványra. De más akkor sincs csak négyzetek.
|
csüt. márc. 18, 2010 20:49 |
|
|
Jose7
ezüst tag
Csatlakozott: szer. okt. 07, 2009 17:53 Hozzászólások: 34 Tartózkodási hely: Móvár
|
Akkor egy másik gyakori probléma, a kontraszton (VO) mekkora feszültséget mérsz? -->Adatlap!
|
csüt. márc. 18, 2010 20:03 |
|
|
HiMen
arany tag
Csatlakozott: kedd szept. 07, 2004 14:53 Hozzászólások: 147
|
Az 1. és a 2. készült az új LCD-vel, a 3. egy régebbi projekt, és tökéletesen működik. A 3. -ba beillesztve a 162B helyére az új 16290-es LCD-t az itt nem működik...
[img]
http://delfin.unideb.hu/~godoz/lcd.jpg
[/img]
|
csüt. márc. 18, 2010 17:22 |
|
|
HiMen
arany tag
Csatlakozott: kedd szept. 07, 2004 14:53 Hozzászólások: 147
|
Átírtam, így sem megy. Bár ahogy írtam az elején átmegy szépen kétsorosra, ahogy eddigis, majd úgy marad és a kijelzőn semmi sem jelenik meg.
A feszültséget 7805 -el is adtam neki, most pedig a kontroller adja. Működés közben végig 4,98 V maradt stabilan. A tarfóm után egy 470uF -os szűrőkondit raktam.
betu VAR Byte
betu4 VAR Nib
rs PIN 0
e PIN 1
p1 PIN 2
p2 PIN 3
p3 PIN 4
p4 PIN 5
OUTPUT 0
OUTPUT 1
OUTPUT 2
OUTPUT 3
OUTPUT 4
OUTPUT 5
LOW e
LOW rs
PAUSE 2000
betu4=%0011
GOSUB LCD_Write4
GOSUB LCD_Write4
GOSUB LCD_Write4
betu4=%0010
GOSUB LCD_Write4
betu4=%1000
GOSUB LCD_Write4
betu4=%0000
GOSUB LCD_Write4
betu4=%1100
GOSUB LCD_Write4
betu4=%0000
GOSUB LCD_Write4
betu4=%0001
GOSUB LCD_Write4
PAUSE 1000
HIGH rs
betu=65
GOSUB LCD_write
LOW rs
END
' ---------------------------------------------------------------------------------------
' ---------------------------------------------------------------------------------------
LCD_write4:
p1 = betu4.BIT0
p2 = betu4.BIT1
p3 = betu4.BIT2
p4 = betu4.BIT3
semmi:
IF IN8=0 THEN semmi ' a 8. lábra egy nyomógombot tettem
HIGH e
PAUSE 1000
LOW e
PAUSE 1000
RETURN
' ---------------------------------------------------------------------------------------
LCD_write:
p1 = betu.BIT4
p2 = betu.BIT5
p3 = betu.BIT6
p4 = betu.BIT7
HIGH e
PAUSE 50
LOW e
PAUSE 50
p1 = betu.BIT0
p2 = betu.BIT1
p3 = betu.BIT2
p4 = betu.BIT3
HIGH e
PAUSE 50
LOW e
PAUSE 50
RETURN
|
csüt. márc. 18, 2010 17:02 |
|
|
Jose7
ezüst tag
Csatlakozott: szer. okt. 07, 2009 17:53 Hozzászólások: 34 Tartózkodási hely: Móvár
|
Lehet, hogy ez az LCD adatküldéskor annyira leterheli a tápot hogy
a feszültségeséstől resetelődik az LCD Meghajtó uc-je és az előzőlég átküldött beállítások elszállnak ?!?!
Szerintem ellenőrizd hogy a táp ténylegesen elbírja ezt a viszonylag nagy fogyasztású LCD-t!
Ílletve a konfigurációs beállításokat is meg kellene nézni!
|
csüt. márc. 18, 2010 16:33 |
|
|
T68m
a fórum lelke
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 12729 Tartózkodási hely: FLF
|
a felsõ lábakan kell benyomni a jelet, az alsó lábak lebeghetnek vagy oda kötöd õket, ahova akarod. A táp fölé és a gnd alá azért ne kösd! hacsak nem akarod kiégetni a bemeneteket. De az is mindegy. Lehet trükkösnek lennie, visszafejtés megnehezíteni. A bemeneti tápot nagyjából lebegve hagyod és az alsó négy byte-on hajtod meg a modult. A következõ jó visszafejtés ellen: átengedni a vezérlõjeleket valami ismeretlen IC-n, és a uC-t ennek megfelelõen felprogramozni. Garantált fél napos fejtörést okozol annak, aki meg akarja érteni a kapcsolásod. Fõleg, ha az IC-nak van enabled lába vagy lath benne. Vagy betolod az adatot shift regiszterbe egy lábon... Mindig ez van, ha nem iszok elég sört, ugye laci_l?
A uC-táp lábait (közvetlenül a uC)-nél szûrni kell 100nF-al, de ez az összes IC-re igaz. A táp legyen (nagyjából) stabil 5V. Én 7805/7905-el szoktam csinálni, annak meg még kell egy 220nF szûrés a kimenetén.
|
szer. márc. 17, 2010 21:32 |
|
|
T68m
a fórum lelke
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 12729 Tartózkodási hely: FLF
|
HiMen írta: Ha úgy kezdem, ahogy T68m javasolta egykoron, hogy elõször 8 bitbe rakom majd abból 4 bitbe akkor ez történik: 0011 - itt átvált kétsorosra 0011 0011 0010 - ez rakná 4 bitbe (semmi nem történik) 0010 - és ekkor visszaáll 1 soros üzemmódba... a többi egyáltalán nem érdekli, semmire semmit sem reagál...
de jó: beírtam elõbb a hsz-t és elszállt!
a három 0011 jó.
az elsõ 0010 jó, de onnantól kezdve elrontod. A következõ parancsnak a kijelzõ bekapcsolásának kell lennie, vagy a kétsorosba váltásnak, természetesen innentõl kezdve két félbyte-on, azaz
00101000 - kétsoros mód be, tehát
0010
1000
00001100 - kijelzõ be, tehát
0000
1100
|
szer. márc. 17, 2010 21:23 |
|
|
HiMen
arany tag
Csatlakozott: kedd szept. 07, 2004 14:53 Hozzászólások: 147
|
Ha úgy kezdem, ahogy T68m javasolta egykoron, hogy először 8 bitbe rakom majd abból 4 bitbe akkor ez történik:
0011 - itt átvált kétsorosra
0011
0011
0010 - ez rakná 4 bitbe (semmi nem történik)
0010 - és ekkor visszaáll 1 soros üzemmódba...
a többi egyáltalán nem érdekli, semmire semmit sem reagál...
|
szer. márc. 17, 2010 16:55 |
|
|
potyo
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3691 Tartózkodási hely: Ada
|
Inicializálás négybitesre megvan rendesen?
|
szer. márc. 17, 2010 16:47 |
|
|
HiMen
arany tag
Csatlakozott: kedd szept. 07, 2004 14:53 Hozzászólások: 147
|
Na ehhez mit szóltok?
Beszereztem egy új LCD panelt. Újra bekötöttem egy másik kontrollerhez. Tehát mindent újra megcsináltam.
RS a 0. lábhoz E az 1. lábhoz, majd DB4-DB7 a 2.-5. I/O lábakhoz.
Az R/W lábat 10 K-val a GND-re húztam.
A programot átírtam, hogy mindig csak egy gomb megnyomására vigye csak ki az adatokat. Az e lábat 1 mp-ig magasan majd 1 mp -ig alacsonyan tartja utána.
Így minden egyes kivitelkor multiméterrel ellenőriztem hogy helyes adat van-e az adatlábakon, majd láttam az E láb fel-le állását is.
MINDEN RENDBEN. Lépésről - lépésre minden kimegy ahogy kell.
Kiküldtem az adatlapja szerint:
0010
0010
1100 2-line mode , display on
0000
1111 display on, cursor on, blink on (hagy lássam)
0000
0001 display clear
Történt a következő, ahogy eddigis: Bekapcsolás után (vár a gombra, majd ha megnyomtam) az első adatátvitel a 0010. Erre átvált kétsoros üzemmódba, ami ugye lehetetlen... A következő gombnyomásomra a kontroller ismét kiviszi a 0010-t mire az LCD visszavált 1 soros üzemmódra. A további kivitelekre semmit sem csinál az ég világon de azt stabilan.
Ugyan ide kötve egy 162B LCD panel simán működik. Tehát biztos, hogy az LCD -ben van a gond, nem a programban!
Ilyenekre gondolok:
1. A másik négy lábat fel vagy le kell húzni közben.
2. Az e lábra egy 10K-s lehúzó ellenállás kell, esetleg az adatlábakra is.
3. Nem a négy felső, hanem a négy alsó lábon kell programozni.
4. Az egész széria hibás
Nem ma kezdtem, de ekkorát még nem szívtam. Egy hete állok a munkával, az I2C szenzor kiolvasás (amitől a legjobban tartottam) gond nélkül megy, egy nyomorult LCD panel pedig kifog rajtam...
Ez egy igazi elektronikai rejtély! Kérlek próbáljatok meg segíteni!
Az LCD adatlapja:
http://www.chipcad.hu/letoltes/adatlapok/EW16290LED.pdf
A vezérlőjének adatlapja:
http://pdf1.alldatasheet.com/datasheet- ... S0066.html
|
szer. márc. 17, 2010 16:40 |
|
|
HiMen
arany tag
Csatlakozott: kedd szept. 07, 2004 14:53 Hozzászólások: 147
|
Nos, kikötöttem az EW16290 -t és bekötöttem egy működő régebbi eszközbe a 162B panelhez párhuzamosan.
A 162B működik, ez nem. A programja ez:
' ---------------------------------------------------------------------------------------
Init_LCD:
PAUSE 2000
LOW rs
betu=%00110011 ' egy 0011 alsó byte , 0011 első félbájt
GOSUB LCD_write ' 0011 második félbájt (8 bitben van), 0010 ( 4 bitben van)
betu=%00110010
GOSUB LCD_write
betu=%00101000 ' leismételjük a 0010-t hogy az alsó részét is kiküldhessük 1000
GOSUB LCD_write
betu=%00001100 ' Képernyő be
GOSUB LCD_write
RETURN
' ---------------------------------------------------------------------------------------
|
szomb. márc. 13, 2010 16:58 |
|
|
T68m
a fórum lelke
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 12729 Tartózkodási hely: FLF
|
HiMen írta: Az nem lehet esetleg, hogy ennél a tipusnál az "e" lábat vagy az adatvonalakat le kellene húzni gnd-re 10k-val? Mert nem állank elég gyorsan, stabilan vissza?
azt te állítod, direkt módon low-ba.
|
szomb. márc. 13, 2010 10:00 |
|
|
HiMen
arany tag
Csatlakozott: kedd szept. 07, 2004 14:53 Hozzászólások: 147
|
Az nem lehet esetleg, hogy ennél a tipusnál az "e" lábat vagy az adatvonalakat le kellene húzni gnd-re 10k-val? Mert nem állank elég gyorsan, stabilan vissza?
|
szomb. márc. 13, 2010 9:07 |
|
|
T68m
a fórum lelke
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 12729 Tartózkodási hely: FLF
|
HiMen: pedig ez vagy rossz bekötés vagy rossz a panel. Más tippem nincs.
|
pén. márc. 12, 2010 23:50 |
|
|
T68m
a fórum lelke
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 12729 Tartózkodási hely: FLF
|
tomi52 írta: Próbáld meg az általam megadott sorozattal. Az elso 0010-nál csak fél byte-ot küldök ki, különben az enyém sem megy. Pedig a doksi nem ezt mondja.
nem érted, hogy akkor még nyolcbites módban van?!?!?!?!? Amíg nyolcbites módban van addig egy kiküldés egy byte-nak számít, független attól, hogy te csak a felsõ négybitet használod. Amint átkapcsolod négybites módba, onnantól kell kétszer küldened (egy-egy félbyteot)
|
pén. márc. 12, 2010 23:41 |
|
|
tomi52
ezüst tag
Csatlakozott: kedd okt. 18, 2005 18:14 Hozzászólások: 37 Tartózkodási hely: Budapest
|
Próbáld meg az általam megadott sorozattal. Az elso 0010-nál csak fél byte-ot küldök ki, különben az enyém sem megy. Pedig a doksi nem ezt mondja.
|
pén. márc. 12, 2010 18:29 |
|
|
HiMen
arany tag
Csatlakozott: kedd szept. 07, 2004 14:53 Hozzászólások: 147
|
Megőrülök lassan...
Ellenőriztem vagy ötször az összes bekötést. Minden rendben.
A 162B panel gond nélkül megy, a EW16290 nem.
Észrevettem, hogy első bekapcsoláskor egy pillanatra felvillan a kétsoros üzemmód, majd visszaáll egysorosra és néma csend... Ezért megnéztem lépésenként. Nem fogjátok elhinni:
bekapcsolás
Az első 0010 után beáll kétsorosra.
A következő 0010 után visszaáll egy sorosra
Eldobom magam. 0010 ra semmi estre sem állhat két sorosra ha első félbájt ha második... A kétsoros üzemmód a 7. bit a második félbájtban, amit egyre kell állítani a kétsoroshoz. Tehát 0010 -ra lehetetlen hogy kétsorosra álljon...
lassan a kalapácsnál kezdek járni...
|
pén. márc. 12, 2010 18:22 |
|
|
HiMen
arany tag
Csatlakozott: kedd szept. 07, 2004 14:53 Hozzászólások: 147
|
A p1 = 1 illetve HIGH p1 ugyan az.
Az LCD_write4 eljárásnak nem kellene még 4 bitet kiküldenie? Ugyanis csak a felső 4 biteket küldöm ki, de az LCD 2 x 4 bitet vár, nem????
|
pén. márc. 12, 2010 14:53 |
|
|
T68m
a fórum lelke
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 12729 Tartózkodási hely: FLF
|
HiMen írta: Ennek KS0066 vezérlõje van. Mindent úgy csinálok , ahogy az adatlapja elõírja. Semmi sem történik, csak az elésõ sor világít fekete kockákkal, még csak kétsorosra sem áll át.
Talán a lábakat GND-re kellene húzni 10K-val? Eddig sose csináltam, anélkül is ment.
A progi (bocs, BS2-ben, de az is PIC alapú!):
betu VAR Byte
rs PIN 0 e PIN 1 p1 PIN 2 p2 PIN 3 p3 PIN 4 p4 PIN 5
OUTPUT 0 OUTPUT 1 OUTPUT 2 OUTPUT 3 OUTPUT 4 OUTPUT 5
LOW e LOW rs
PAUSE 1000
betu=%00100000 GOSUB LCD_write4 ************ ide kell várakozás! betu=%00100000 GOSUB LCD_write4 betu=%11000000 GOSUB LCD_write4 PAUSE 50, legyen ez is 1600 teszt idõszak alatt
betu=%00000000 GOSUB LCD_write4 betu=%11000000 GOSUB LCD_write4 PAUSE 50, legyen ez is 1600 teszt idõszak alatt
betu=%00000000 GOSUB LCD_write4 betu=%00010000 GOSUB LCD_write4 PAUSE 1600
betu=%00000000 GOSUB LCD_write4 betu=%01110000 GOSUB LCD_write4 PAUSE 5000
END ' ----------------------------------------------------------------------------------- ' ----------------------------------------------------------------------------------- LCD_write4: p1 = betu.BIT4 p2 = betu.BIT5 p3 = betu.BIT6 p4 = betu.BIT7 HIGH e PAUSE 50 <- felesleges, de ártani nem használ LOW e PAUSE 50 <- felesleges, de ártani nem használ RETURN ' -----------------------------------------------------------------------------------
nem kell felhúzni, se lehúzni. Megkérdezném, hogy a BS2-ben az, hogy
p1 = 1, illetve HIGH p1 az ugyanazt jelenti-e? (illetve p1 = 0 és a LOW p1)
|
csüt. márc. 11, 2010 22:52 |
|
|
tomi52
ezüst tag
Csatlakozott: kedd okt. 18, 2005 18:14 Hozzászólások: 37 Tartózkodási hely: Budapest
|
Aha! Biztos, ami biztos, beraktam az eddigi inicializálásom elé 3-szor a 8 bitbe állító parancsot, bár nekem eddig is működött. Inkább azért, mert később szeretnék olyan kütyüt csinálni, ahol menet közben ki-be kapcsolható az LCD.
|
csüt. márc. 11, 2010 22:43 |
|
|
T68m
a fórum lelke
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 12729 Tartózkodási hely: FLF
|
tomi52 írta: Nekem egy EW20400-ast (4 sor, 20 karakter) sikerült szóra bírnom. Ennek a kijelzõnek (illetve a vezérlõ IC-jének) az a "trükkje", hogy az elsõ, a 4 bites módba állító parancsnak csak egy fél byteját szabad ráküldeni.
Nyilván, mert 8 bites módban indul! Ha ráadod mindkét félbyteot, akkor az elsõ átteszi 4bites módba, majd a második egy újabb utasítás elsõ félbyteja lesz, majd ezután minden utasítás/parancs el lesz tolódva félbyte-al. Viszont arra sincs garancia, hogy mindig 8bites módban indul, ezért kell a már korábban leírt módszer: 3x egymás után 8bitesbe kell váltani, majd ezután tehetõ 4bitesbe, majd ezután jöhetnek a 2x félbyte-ok.
Azért 3x, mert a legrosszabb esetben 4bitesben van és egy második félbyte-ot vár. Ilyenkor az elsõ átváltás egy régi parancs befejezése - ki tudja mit csinál. A másik kettõ lesz egy önálló váltás.
|
csüt. márc. 11, 2010 22:25 |
|
|
tomi52
ezüst tag
Csatlakozott: kedd okt. 18, 2005 18:14 Hozzászólások: 37 Tartózkodási hely: Budapest
|
A programhoz nem tudok hozzászólni, én assemblerben írok egyelőre. Amúgy meg én csak most kezdtem a PIC-kelést.
Az én LCM ugyan ezzel a vezérlővel megy. A leírással ellentétben az első parancsnak csak fél byte-ját küldöm ki, különben valóban nem lesz jó az LCD. Ide írom, sorban miket küldök ki. Az időzítések kicsit nagyobbak, mert kerek 1, 10, 50, 100-as lépéseim vannak. Az első fél byte után a többi, teljes byte felső-alsó félbyte sorrendben megy ki. (Ezek csak az adat bitek.)
- 50 miliSec várakozás, mert a bakapcsolás után az első művelet az LCD inicializálása.
4 bites módra állítás
- 0x02 - csak az alsó félbyte (2) kiküldése
- 0x2A - felső alsó félbyte sorrendben
- 50 mikroSec várakozás
Display ON/OFF Control: kijelző be, kurzor
- 0x0D
- 50 mikroSec várakozás
kijelző törlése
- 0x01
- 1,55 miliSec várakozás
Entry Mode Set: karekter módba kapcsolás
- 0x06
- 50 mikroSec várakozás
Ennyit tudok segíteni, ha ez segít. Ha nem, akkor majd a hozzáértők....
Csak még annyit, hogy egy más helyen található fórumon volt egy jó kis cikk, ahol azt írták le, hogy milyen egyszerű kapcsolással (csak kapcsolók) lehet kézzel kipróbálgatni az LCD-t.
Ja, és ne a föld, hanem a táp felé húzd az üres adat lábakat.
|
csüt. márc. 11, 2010 22:16 |
|
|
HiMen
arany tag
Csatlakozott: kedd szept. 07, 2004 14:53 Hozzászólások: 147
|
Ennek KS0066 vezérlője van.
Mindent úgy csinálok , ahogy az adatlapja előírja.
Semmi sem történik, csak az eléső sor világít fekete kockákkal, még csak kétsorosra sem áll át.
Talán a lábakat GND-re kellene húzni 10K-val? Eddig sose csináltam, anélkül is ment.
A progi (bocs, BS2-ben, de az is PIC alapú!):
betu VAR Byte
rs PIN 0
e PIN 1
p1 PIN 2
p2 PIN 3
p3 PIN 4
p4 PIN 5
OUTPUT 0
OUTPUT 1
OUTPUT 2
OUTPUT 3
OUTPUT 4
OUTPUT 5
LOW e
LOW rs
PAUSE 1000
betu=%00100000
GOSUB LCD_write4
betu=%00100000
GOSUB LCD_write4
betu=%11000000
GOSUB LCD_write4
PAUSE 50
betu=%00000000
GOSUB LCD_write4
betu=%11000000
GOSUB LCD_write4
PAUSE 50
betu=%00000000
GOSUB LCD_write4
betu=%00010000
GOSUB LCD_write4
PAUSE 1600
betu=%00000000
GOSUB LCD_write4
betu=%01110000
GOSUB LCD_write4
PAUSE 5000
END
' -----------------------------------------------------------------------------------
' -----------------------------------------------------------------------------------
LCD_write4:
p1 = betu.BIT4
p2 = betu.BIT5
p3 = betu.BIT6
p4 = betu.BIT7
HIGH e
PAUSE 50
LOW e
PAUSE 50
RETURN
' -----------------------------------------------------------------------------------
|
csüt. márc. 11, 2010 20:09 |
|
|
tomi52
ezüst tag
Csatlakozott: kedd okt. 18, 2005 18:14 Hozzászólások: 37 Tartózkodási hely: Budapest
|
Nekem egy EW20400-ast (4 sor, 20 karakter) sikerült szóra bírnom. Ennek a kijelzőnek (illetve a vezérlő IC-jének) az a "trükkje", hogy az első, a 4 bites módba állító parancsnak csak egy fél byteját szabad ráküldeni.
A hülyeségen az volt, hogy kísérletezgetéssel jöttem rá. Később megkerestem a kijelző adatlapján, hogy milyen vezérlő IC-vel működik, annak adatlapját is megkerestem a neten. Azon folyamatábrával van megadva, hogyan kell 4 vagy 8 bites módra inicializálni. Meg vannak adva a szükséges várakozási idők is.
|
csüt. márc. 11, 2010 19:54 |
|
|