Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   394 / 1320
(#) delmur82 válasza szilva hozzászólására (») Jan 20, 2009 /
 
Igy sem jó. Világít a ledem mint az állat.
(#) trudnai válasza delmur82 hozzászólására (») Jan 20, 2009 /
 
Idézet:
„Aza agond akár 1 - et akár 0 - át küldök mindig egy lessz:”


Mi lesz 1? Ami kimegy a vonalon?
(#) szilva válasza delmur82 hozzászólására (») Jan 20, 2009 /
 
Jó lenne az összes vett bitet látni valahogy, ahogy trudnai is utalt rá korábban.
(#) watt hozzászólása Jan 20, 2009 /
 
Hú jól belehúztatok, nem győzök olvasni!
Ahogy látom ott vagyunk ahol eddig. Minden jónak tűnik, még sem működik.
Szilva említette, hogy van két bit, ami mindig ugyanaz, azokat át se lehet írni! Azokat kéne kiolvasni, hogy egyáltalán lehet e értékelhető eredményt kapni a hőmérőtől!

Én is javaslom, hogy az egész bájtot kéne kiolvasni és utána tesztelni a biteket egyenként.

delmur82 kérdezted:
Idézet:
„Hogy a fenébe kerül bele a BEJOVO_TEMP - be az érték?”

Vizsgálja az adat vonalat, majd annak állapotától függően beállítja Carry bitet. A következő utasítás az RRL ami ezt a bitet belépteti a BEJOVO_TEMP-be. Ez így jó!

Az a vicc, hogy minden jónak tűnik, még sem megy. Én már a hőmérőre is gyanakszom!
(#) delmur82 válasza trudnai hozzászólására (») Jan 20, 2009 /
 
az előző oldali hosszú kódot ha megnézed a A "DS1620 konfigurálása" részben kiküldök egy parancsot és egy adatot. A parancs a WRITE CONFIG , ami annyit tesz hogy a DS1620 tudni fogja hogy a következő bejövő 8 bit az ő CONFIG regiszterét fogja írni. Az adat amit küldök a b'00000000' . Namost a gond az hogy sajnos nem tudom leellenőrizni hogy a 8 bit beíródott e a CONFIG regiszterbe.(itt természetesen minden esetben a DS1620 CONFIG regiszteréről van szó.) Ugyanis ahhoz hogy én vizsgálni tudjam azt a regisztert ki kell olvasni a tartalmát , beletenni egy a PIC - ben található regiszterbe (ez nálam a BEJOVO_TEMP). Szoval nem tudom eldönteni hogy az adat már el sem megy a CONFIG regbe vagy elmegy de a kiolvasás nem jó. Az én vizsgáló rutinom a BEJOVO_TEMP - et vizsgálja. De ahogy már írtam pl. a 0. bit mindig 1. Pedig én ahogy le is írtam 0 - át küldök.
(#) delmur82 válasza watt hozzászólására (») Jan 20, 2009 /
 
Üdv!

A szenzor vadi új. Nem először rakok össze PIC - es áramkört úgyhogy a DS1620 is foglalatba van. Forrasztva nem volt. A tápot jól kapja el sem romolhat. De talán érezve valamit kettőt vettem úgyhogy ha hazaérek kipróbálom a másikkal is. Dehát nemtom.
(#) trudnai válasza delmur82 hozzászólására (») Jan 20, 2009 /
 
Hulye kerdes, de a scope-on latszik, hogy a PIC tolja ki a parancsot, meghozza helyesen? Mondjuk ehhez tarolos scope vagy logikai analyzator kellene...
(#) szilva válasza delmur82 hozzászólására (») Jan 20, 2009 /
 
Ezt egy pár oldallal korábbi verzióból ollóztam ki:

  1. SEND
  2.         MOVLW   D'8'
  3.         MOVWF   COUNT
  4.         CALL    DATA_LOW                                        ; kimenetre kapcsolás
  5.         NOP
  6. SEND_
  7.         BSF     CLK
  8.         NOP
  9.         BCF     DAT
  10.         BTFSC   KIMENO,0                                        ; HA H AKKOR H-t küldjön
  11.         BSF     DAT
  12. SEND_VEGE
  13.         CALL    DELAY
  14.         RRF     KIMENO,F
  15.         BCF     CLK
  16.         DECFSZ  COUNT,F
  17.         GOTO    SEND_  
  18.         RETURN


Az adatlap ezt írja (kiemelés tőlem):

For data inputs, the data must be valid during the rising edge of a clock cycle.
Data bits are output on the falling edge of the clock and remain valid through the rising edge.

Szerintem a fenti kódrészlet ennek nem felel meg. Mielőtt a bitet állítgatod a küldendő adat legalsó bitje szerint, pont magasban van a CLK, és miután beállítottad, utána lesz rajta egy lefutó él.

Ahogy én az adatlapban látható idődiagramot nézem, a következőnek kellene történnie a ciklusban:

CLK low
adat bit beállítása
CLK high

A CLK high-ba állítását pedig még a RST felemelése előtt illene megtenni a kommunikáció legelején.
(#) watt válasza delmur82 hozzászólására (») Jan 20, 2009 /
 
Akkor romolhat el esetleg, ha szembe kerül két kimenet. Úgy emlékszem első körben nem volt az adat vonalban védő ellenállás, most van?
(#) watt válasza szilva hozzászólására (») Jan 20, 2009 /
 
Idézet:
„A CLK high-ba állítását pedig még a RST felemelése előtt illene megtenni a kommunikáció legelején.”

No ez már egy jó meglátás!
Még az inicializálás előtt H-ba kéne tenni, és minden rutinba úgy belépni, hogy H!
(#) szilva válasza watt hozzászólására (») Jan 20, 2009 /
 
Sajnos nem tudom, melyik az aktuális verzió, lehet, hogy én régit néztem, mert volt olyan is itt, amiben már a pozitív élnél van kint az adat.

Ellenben én is pont azt néztem, hogy a legelső SEND vagy RECEIVE előtt a CLK vonal alacsonyban van, semmi nem emeli azt fel. Az adatlap szerint pedig az RST felemelése előtt már a CLK-nak magasban kellene lennie. Az első kommunikáció után már magasban marad, de a legelső előtt nem, és lehet, hogy emiatt nem megy el megfelelően az a legelső, írási parancs.

Még mindig azt mondom, hogy jó lenne látni a RECEIVE által beolvasott összes bitet, akár azon az 1 LED-en lemorzézva, mert abból nagy valószínűséggel láthatnánk, hogy van-e kommunikáció, és a parancsok szintjén kell csiszitolni még, vagy egyáltalán nem jó a kommunikáció.
(#) watt válasza szilva hozzászólására (») Jan 20, 2009 /
 
Idézet:
„Az első kommunikáció után már magasban marad, de a legelső előtt nem”

Igen, és pont a konfiguráció előtt nem, ami így meg is híusúl!

(#) delmur82 válasza watt hozzászólására (») Jan 20, 2009 /
 
Nos hazaértem.

Először is kicseréltem a szenzort, ugyanúgy működik. Szenzorhibát kizárhatjuk. Két új szenzor csak nem romlik el egyszerre

Beleraktam a configurálás elé a BSF CLK - t.
Bár nem nagyon értem mit jelent az hogy magasabban. Valami vagy magas vagy alacsony nem?
Hiába raktam 1 - be a SEND - be úgy is 0 - ra kerül a RST meg marad 1 - en.

Megnéztem bitenként a visszajövő adatot:

00000001

Ez jön vissza mindig, függetlenül attól hogy az iniciálós részben mit küldök. Ezen azt élrtem ne tévesszen meg senkit hogy az init részben pont ez van jelenleg. Ha minden bitet átállítok akkor is a fönti jel jön vissza. Felrakom a kód azon részét ami eddig kész a fölös dolgokat kivettem (CALL START_ CONVERT és CALL READ_TEMPERATURE.)MAjd ha működik az ellenőrzés mehet a convertálás is addig fölösleges. Ha van ötlet szivesen várom még.

proba2.asm
    
(#) delmur82 válasza trudnai hozzászólására (») Jan 20, 2009 /
 
sajnos nincs itthon scope - om.
(#) delmur82 válasza szilva hozzászólására (») Jan 20, 2009 /
 
Ez egy régebbi verzió.
A fönti proba2.asm - et nézd.
(#) watt válasza delmur82 hozzászólására (») Jan 20, 2009 /
 
Idézet:
„Bár nem nagyon értem mit jelent az hogy magasabban. Valami vagy magas vagy alacsony nem?”

De. Ez csak egy szófordulat. Magasan kell lennie, hogy onnan le lehessen vinni. A CLK-nak mindig magasban kell maradnia a kommunikációk végén, ezt le is ellenőrizhetnéd!
(#) watt válasza delmur82 hozzászólására (») Jan 20, 2009 /
 
Keresztkérdés! Van az RA4-en felhúzó ellenállás?

Persze, hogy nincs, látom a nyákon! Az RST soha nem lesz H! Gyorsan tegyél oda egy 1kohm-ot a Vdd felé!
(#) szilva válasza watt hozzászólására (») Jan 20, 2009 /
 
Uhh, ez szép fogás volt!

Valóban, az RA4 itt open drain, és az adatlapból nekem az derül ki, hogy a Dallasban sincs felhúzó.
(#) delmur82 válasza watt hozzászólására (») Jan 20, 2009 /
 
Akkor huzzam +5V - ra?
a rajzokon ez miért nincs rajta?
(#) watt válasza delmur82 hozzászólására (») Jan 20, 2009 /
 
Mert nem az RA4-en volt a RST! Igen, húzd fel 5V-ra.
(#) delmur82 válasza watt hozzászólására (») Jan 20, 2009 /
 
Nos uraim úgy látom sikerült előrelépnünk. Ez hihetetlen. Mi van ezzel az RA4 - el?
Mimimimi? Miez hogy open drain? és miért pont ez? ha másik lábra teszem akkor ok lett volna?
Comparátort kikapcsoltam. Az a TOCKI zavart be? ez nem sima digitális kimenet vagy bemenet? Mármint az RA4
(#) szilva válasza delmur82 hozzászólására (») Jan 20, 2009 /
 
Idézet az adatlapból:

Idézet:
„PORTA is an 8-bit wide latch. RA4 is a Schmitt Trigger
input and an open drain output. Port RA4 is multiplexed
with the T0CKI clock input. RA5(1) is a Schmitt Trigger
input only and has no output drivers. All other RA port
pins have Schmitt Trigger input levels and full CMOS
output drivers”


Azaz az RA4 kimenetként open drain (nyitott drain-ű, olyan, mint a nyitott kollektoros a TTL IC-knél, csak ez CMOS technológia és itt FET-ekről beszélünk) kimenet tud lenni, az RA5 pedig egyáltalán nem tud kimenet lenni, csak bemenet. A PORTA többi lába teljes értékű CMOS kimenet vagy bemenet is lehet.
(#) watt válasza delmur82 hozzászólására (») Jan 20, 2009 /
 
Idézet:
„ha másik lábra teszem akkor ok lett volna?”

Igen, de ezen is jó lesz, csak kell az ellenállás.
Kíváncsian várom a további eredményeket!
(#) delmur82 válasza szilva hozzászólására (») Jan 20, 2009 /
 
Szóval ez volt a gond. Az én figyelmetlenségem.Na holnap rámászok erre a témára. Amúgy mindenkinek nagyon köszi a sok segítséget. Most már nagyon szépen működik. Ha ráteszem a kezem már jelzi is hogy melegszik szépen aztán visszahül. Jól működik.Hát ez a szép ebben az egészben nagyon farnkó. Holnap neki is leselkedek az LCD vezérlésnek. Azt a PORTB - re terveztem. Remélem ott már nem ér nagy meglepetés.
(#) watt válasza delmur82 hozzászólására (») Jan 20, 2009 /
 
:eljen: Szuper!
(#) skeletornb válasza potyo hozzászólására (») Jan 20, 2009 /
 
Köszönöm szépen a válaszokat, kezdetnek átnézem a BIOS-t aztán ha nem megy, újra építem az égetőket még figyelmesebben.
(#) m.joco hozzászólása Jan 20, 2009 /
 
Hello
Szeretnék csinálni PIC-cel 4 digites LED kijelzős órát, amelynek a számjegyei multiplexelve lennének meghajtva. Nos kb. mennyi ideig világítson egy digit? Előtétellenállást hogy számoljak, mennyi áramot engedhetek rá így a LED-ekre? Hányszor többet, mint normális esetben?
Üdv.
(#) skeletornb válasza m.joco hozzászólására (») Jan 20, 2009 /
 
PIC-es tapasztalatom még nincs a témában, de TTL áramkörös órával már volt dolgom. A kijelző adatlapjában van, hogy mit bírnak a szegmensek, és azt mennyi ideig. Ez alapján kalkulálj. Másodpercenként, 24-25 villanást már egybefüggő világításnak lát a szem, de ez még bántó. Értelemszerűen minél magasabb a másodpercenkénti felvillanás, annál jobb.
(#) szilva válasza m.joco hozzászólására (») Jan 20, 2009 /
 
Szerintem célszerű a lehető leglassabb multiplexelést használni, ami még nem zavaró, nem látszik villogásnak. Ez azért jó, mert a digitek közti átkapcsoláskor a "szellemkép" jelentősen csökkenthető. Minél gyorsabb a multiplexelés, annál nyűgösebb a szellemkép.

50Hz felett már folyamatosnak látod a fényt, feltéve, hogy nem mozgatod az órát, de mondjuk lehet a biztonság kedvéért 100Hz környékére venni a kijelzőfrissítés ütemét. Ez 4 digitnél 400Hz-es digitléptető ütemet jelent. Aztán lehet kísérletezni, ha kevésnek bizonyulna a gyakorlatban.

A LED-ek vagy kijelzők adatlakpjában vannak határértékek impulzusüzemre meg abszolút értékre is, én ilyen 4-es multiplexben maximum a LED folyamatos üzemi áramának duplájával kalkulálnék.
(#) potyo válasza szilva hozzászólására (») Jan 20, 2009 /
 
Próbaképpen megküldtem egy 8 digitből álló kijelzőt 8kHz-es léptetéssel (tehát egy kijelző 1kHz-et kapott), de nem volt szellemkép. Szerintem ha szellemkép jelenik meg valakinél, ott az van, hogy nem kapcsolja ki a digiteket, mielőtt a szegmensekre kiküldi az új kombinációt.
Következő: »»   394 / 1320
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