Fórum témák
» Több friss téma |
Hi,
Két forrást tudok ajánlani, ami alapján bárki megértheti a 1-wire alapjait, és írhat magának egy rutint: DS28EA00 adatlap (én ezzel szórakoztam)(kiemelném a 27. oldaltól kezdődő részt) valamint a fent említett segédlet. Sok sikert!
Üdv!
Elmondható az az 1 wire eszközökről, hogy mindegyikben megtalálhatóak az alábbi parancsok? SEARCHROM, READROM, MATCHROM, SKIPROM.
Üdv!
Amikkel eddig találkoztam azokba volt.
Sziasztok!
Egy DS1990 iButtonal küzdök!Nem tudom mi lehet a baj!A kódot értem is meg nem is de inkább nem!Valaki tudna segíteni aki ilyet csinált már! A kimenet: 8080808080 A kód:
Köszi szépen! A hozzászólás módosítva: Ápr 16, 2013
Sziasztok!
1 Wire buszt szeretnék galvanikusan leválasztani az avr-ről . Szerintetek használható a kép amit csatoltam? Vagy inkább az EZEN a linken lévőt kéne megcsinálni? DS1820/18B20 szenzorok írás/olvasása a cél. Ebben milyen opto lehet? Innen van a kép. Köszi előre is. A hozzászólás módosítva: Márc 14, 2016
Sziasztok!
Arduinoval használok DS18B20-as szenzorokat 4 darabot egy buszra felfűzve. A program indexeket oszt ki 0-3-ig az elhelyezkedésük szerint. Akárhogy variálom az érzékelőket mindig helyes a sorrend. Hogyan képes erre, és mennyire bízhatok meg ebben?
A DS18B20 adatlapjának első oldalán van a válasz.
Idézet: „Each Device has a Unique 64-Bit Serial Code Stored in an On-Board ROM” A programot, pedig te látod, hogy mit csinál.
Gondolom innen van a kód(részlet): 1-Wire Search Algorithm.
Az igazi megoldás az, hogy egyenként lekérdezed a ROM kódokat és az alapján szólítod meg az érzékelőket nem pedig index alapján. A négy közül vegyél ki egyet és tegyél be egy ötödiket, azonnal borul a sorrend, ha nincs szerencséd.
A DallasTemperature példaprogramjából:
Ezek az indexek hogyan keletkeznek? Nekem eddig úgy tűnik megtalálja a sorrendet, de akkor azt mondod ez nem megbízható.
Nem tudom, hogyan keletkeznek az indexek, nem tudom, mennyire stabil. Annó arra jutottam, hogy:
A: Minden érzékelőnek kell a ROM kódja. B: Minden érzékelő egy-egy lábat foglaljon a kontrolleren. C: Multiplexer IC-vel oldom meg a dolgot (pl. CD4066). B és C esetben szabadon cserélgethetőek a szenzorok. A esetben nem cserélhetőek szabadon a szenzorok, viszont egy kontroller láb elég.
Szia!
Ebből a kódrészletből ki tudod mazsolázni simán ami kell. Minden szenzornak van egyedi azonosítója, az alapján kérdezem le alakítom és adom át. Ebben benne van a felbontás beállítása is .
Sziasztok ds2430 tipusú eepromokkal küzdök, megépítettem hozzá ezt a programozót:Open Programmer , működik is szépen , viszont egy két dolgot nem értek a chippel kapcsolatban, a 256 bites memoriát tudom írni is meg olvasni is, ez eddig rendben is van, viszont van neki egy egyszer írható 64 bites Application Registere, azt hogytan tudnám vajon irni? a másik meg az , hogy nem is igazán értem hogyan kéne azt cimezzem ugyanis az adatlap 00h tol írja a Data Memoryt és az Application Memoryt is. Adatlap szerint az Application Registert 99h koddal lehet írni , de nem értem én ezt a programozónak hogy tudom megmondani, a hex fileba kéne valahogy beirni ? Igazából Mimaki nyomtatónak lenne a festék chipje és úgy tünik nem elég sajnos csak a Program Memoryt lemásolni ,ugyanis a nyomtató azonnal IC errort ad, most vagy a széria szám alapján változik a program memory valamilyen algoritmus alapján, (viszont a serial nem másolható mivel egyedi minden chipnek,) vagy jobbik esetben az App.Reg.-el hasonlitja össze, ez esetben talán ha másolnám az app.reg-et is az segítene. Valakinek valami ötlete ?
Köszi.
Hali!
Normál esetben kiadod a WRITE SCRATCHPAD [0Fh] parancsot, kiküldöd az összes adatot, majd kiadod a COPY SCRATCHPAD [55h] parancsot. Ekkor scratchpad összes adata beíródik az EEPROM-ba. A másik eset ugyan ez, csak a WRITE APPLICATION REGISTER [99h] és a COPY & LOCK APPLICATION REGISTER [5Ah] parancsokat kell kiküldened. Ezt, hogy hogyan magyarázod meg a programozónak, azt nem tudom. Kipróbálni nem tudom, nálam nem fut valamiért.
Közben bele néztem a program forráskódjába. Sajnos nincs támogatva ez a funkció. Kiolvassa az egészet, de írni már nem írja. Az előzőleg említett két parancs definiálva van, de nem használja semmire. Szóval lehet, előbb-utóbb belekerül.
Tehát akkor elvileg nem kell cimeznem , alapból gondolom 00h adressel kezdi beirni az adatot, azt sajnos még nem fejtettem meg hogyan adok neki parancsot mert gondolom az a programozó chippjén belül történik, mindenesetre a programozó fejlesztőjének is irtam a fórumon, talán van neki valami megoldása erre mert a softon belül nem látok erre lehetőséget..de mindenképp köszönöm a segítséged..
Üdv. Szabi
Hát én irtam neki, reménykedem hogy fejlesztenek rajta valamit, esetleg megprobállom arduinoval valahogy irni, legalább azt a részt..
Köszi szépen hogy belenéztél .. A hozzászólás módosítva: Feb 3, 2022
üdv
Egyik projecthez szükségem lenne ds2482-100 1wire masterre. de ilyent nem lehet kapni, kb 2 év múlvára van visszaigazolva. az jutott eszembe, hogy STM8S001J3-re megírom a OW kodot, és ezt illesztem be a rendszerve ugyanúgy i2c-vel. és talán egyszerűbb lenne az i2c lekérdezés a hostban mint a dsben... van-e valakinek hasonló megoldása? hajlandó eladni?
Anélkül, hogy érdemben tudnék válaszolni...
Mire jó ez az IC? I2C hosszú vezetéken nem nyerő, 1-Wire pedig szoftveres úton viszonylag könnyen ugorható, hacsak nem a sok megszakítás elrontja az időzítéseket. UART - 1Wire átalakítónak több értelmét látnám de ahogy írtad, ilyesmit egy kis mikrokontrollerrel meg lehet ugrani.
a betervezett ds2482 3.5 cmre van a host processzortról. a hostnak semmilyen szabad lába nincs, plusz nem akarom a host egyetlen lábát sem 4+ méteres vezetékre kötni. legegyszerűbb megoldás letenni mégegy footprintet az új procinak és alternatívan lenne ültetve. pl 16 onewire hőmérő olvasása is sok időbe került, sok a várakozás, nem is lehet egybe megcsinálni, mert blokkolt mindent. még lehet jobb ötlet a külső dedikált proci erre, mert az megold mindent, én meg egy index+temp adatokat elkérek, minden időigényes műveletet áttolok erre a picire. esetleg igény szerint uuid-ket az azonosítához, bár ezt még annyira nem találtam fel hogy működjön
Sziasztok!
Segítséget kérnék 1 wire kapcsolattal. Megoldható lenne az valahogy, hogy mindössze két vezeték erem van csak, és a távoli oldalon szeretnék egy kapcsolót figyelni illetve egy LED-et is kapcsolgatni? Úgy, hogy a végoldalon külön tápfeszültség nem áll rendelkezésre? Kis olvasgatás után a DS2413-re gondoltam. Itt magának az IC-nek nem kell táp, de a kapcsoló figyeléséhez és a LED meghajtásához kellene táp az IC adatlapja szerint (local power). Az a megoldás működőképes lehet, hogy az adatvonalról az IC előtt magamnak is külön leválasztok egy parazita tápot (ahogy azt az IC is teszi) és azt használom fel a "local power" helyett? Ha igen, akkor az adatvezetékről elég lenne egy dióda és egy kondenzátor a parazita táp leválasztáshoz, vagy valami komolyabb áramkör kellene?
Lásd melléklet.
1: 'A' pont H szinten van, 'B' pedig L szinten, LED világít. 2: 'A' pont nagy impedanciás bemenet, 'B' H szinten van. Ha az 'A' ponton H mérhető, akkor a kapcsoló nyitva, ha ettől eltérő (ellenállások értékétől függ), akkor a kapcsoló nyitva. Ha R1 lehúzó ellenállás nagy értékű R3-hoz képest, akkor nyitott kapcsolónál közel H szint mérhető de érzékenyebb is lesz a zavarokra a rendszer. Nagy távolságokra érdemes optocsatolós leválasztásokkal elkészíteni. Pl. 10 ms jut a LED-nek, 10 ms jut a kapcsolónak felváltva, ezt egy mikrokontroller lazán kezeli. Ettől a LED kicsit vibrálni fog és a fényereje is korlátozódik de talán elég, nem írtad a konkrét alkalmazást. A hozzászólás módosítva: Ápr 7, 2023
Nagyszerű megoldás! Köszönöm a tippet!
Nem kellene nagy távolság, kb. 7-8 méter lenne. A LED vibrálás nem gond. Ez a megoldás akár egy Arduinoval is működne, ha az A lábon váltogatom a I/O irányt?
Minden olyan lábbal működik, amelyik be- és kimenetként is tud szolgálni.
szerk.: Kicsit összekevertem az előzőben a 2. variációt. Nyitott kapcsolónál az 'A' pont L szinten van. A hozzászólás módosítva: Ápr 8, 2023
Értem, akkor ez lesz a megfelelő megoldás nekem. Még egyszer nagyon köszönöm!
|
Bejelentkezés
Hirdetés |