Dneska jsme se v debatě poněkud zacyklili, jak vlastně řešit clock stretching u čipu. On po adresaci potřebuje 10-150ms na to, aby se probudil, pak pošle ACK. Jenže já tu dobu neznám a nevím, jestli mu můžu posílat hodiny, dokud nepošle ACK? A bez hodin snad ACK nepošle?
Na obrázku je to ten první byte, pak je pauza a následná další komunikace.
Jak to vlastně je? Tvrdá pauza je taky řešení, ale škoda 150ms, když je to výjimka jednou denně.
i2c_clk_str.png
Komentář:
Velikost:
75.68 kB
Zobrazeno:
140 krát
_________________ Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
Založen: May 13, 2009 Příspěvky: 5044 Bydliště: BA-Petržalka :(
Zaslal: čt červen 20 2019, 16:27 Předmět:
Však pozastav hodiny po dobu, pokiaľ nepríde ACK. V datasheete je čo? CLOCK má ostať L alebo H? Na ňom čakáme na ACK, potom pustíme hodiny ďalej. Samozrejme dať timeout, napríklad 200ms, keby sa dačo pošahalo, aby to neostalo zamrznuté. _________________ Silou vybrať peniaze od ľudí a následne za ne spraviť niečo proti ľuďom, s čím nesúhlasia, to je civilizácia?! Tento systém je chorý a vedie do záhuby.
Ideológie developerov niesu kompatibilné so šťastným životom.
Založen: Jul 21, 2006 Příspěvky: 25741 Bydliště: skoro Brno
Zaslal: čt červen 20 2019, 16:49 Předmět:
To tak jednoduchý nebude. Podívej se na ten průběh signálů. _________________ Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
Založen: May 13, 2009 Příspěvky: 5044 Bydliště: BA-Petržalka :(
Zaslal: čt červen 20 2019, 18:08 Předmět:
No veď vidím. Žlté je CLOCK, zelené DATA? A to padnutie DATA na L za cca polovicou obrazovky je ACK? Potom by sa hneď mohol spustiť CLOCK, nečakať zbytočne. Skrátka nemať pevne definovaný čas CLOCK, ale mať detekciu ACK.
Keď som robil čítanie a zápis do 24LC16, riadil som zvlášť CLOCK aj DATA. Keď sa čakalo na ACK, tak sa čakalo. Nezáležalo ako dlho. Stačí urobiť nejakú krátku slučku, kedy stojí CLOCK a kontroluje sa DATA kedy príde ACK, potom sa pokračuje. Ak sa slučka skončí a ACK nepríde, nasleduje skok na ERROR. _________________ Silou vybrať peniaze od ľudí a následne za ne spraviť niečo proti ľuďom, s čím nesúhlasia, to je civilizácia?! Tento systém je chorý a vedie do záhuby.
Ideológie developerov niesu kompatibilné so šťastným životom.
Založen: Jul 21, 2006 Příspěvky: 25741 Bydliště: skoro Brno
Zaslal: pá červen 21 2019, 10:12 Předmět:
To asi těžko.
Navíc onen zákazník i hezký český pojmy překládá do vlastní angličtiny, takže mu občas vůbec nerozumím. I tady se rozčiloval, že je to "ACK stretching" a ne "clock stretching" a pak z něj vypadlo, že už na to narazili, I2C se kousala a oni nevěděli proč, protože to prostě ignorovali.
P.S. Bavíme se třeba o měniči a on řekne, že tam bude nějaká disipace. Chvilku se mně kouří z hlavy, než mně dojde, že mluví o účinnosti. A tak je to pořád.
PotPalo má zřejmě pravdu, podíval jsem se v klidu do dokumentace I2C a ten ACK skutečně spadne do nuly i bez hodin. Pak je to jasný. _________________ Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
Založen: Jul 21, 2006 Příspěvky: 25741 Bydliště: skoro Brno
Zaslal: pá červen 21 2019, 16:59 Předmět:
Není. Jen potřebuje zvednout sebevědomí, což sám doma před zrcadlem nedá. _________________ Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
Založen: Jul 21, 2006 Příspěvky: 25741 Bydliště: skoro Brno
Zaslal: st červen 26 2019, 12:36 Předmět:
Už jsme se dobrali korektního řešení, jak by to mělo být, i když autor té součástky použil daleko elegantnější řešení (nemusí se hlídat SCL).
Psát na tohle SW driver je tedy docela pakárna. Pokud bych přidal z definice I2C, že to může být multimaster komunikace s detekcí kolizí, pojmenoval bych to skoro jako horor.
clock_str.png
Komentář:
Velikost:
38.64 kB
Zobrazeno:
92 krát
_________________ Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
Založen: May 13, 2009 Příspěvky: 5044 Bydliště: BA-Petržalka :(
Zaslal: st červen 26 2019, 13:16 Předmět:
Tak podľa tohoto obrázku je to inak ako som písal. Zvyčajne je SCL iba vstup do riadeného zariadenia (do SLAVE), ale v tomto prípade je to aj vstup, aj výstup (podobne ako SDA). Ako výstup sa používa práve na ten clock stretching, zariadenie drží SCL na LOW.
Softvérovo to ošetriť nieje ťažké (a dalo by sa aj čisto hardvérovo, pokiaľ má master signál WAIT), treba mať v MASTER vstupno-výstupný port SCL (prípadne dorobiť vstupný, stačí akýkoľvek vstup, oddeliť odporom od SCL OUT). Potom už len podmienka: pokiaľ SCL OUT (=high) <> SCL IN (=low), je aktivované clock stretching slave zariadením, a treba čakať (až pokiaľ SCL IN nebude tiež high). Ak som to teda správne pochopil. Pokiaľ to pri tom zároveň používa aj ACK na SDA, tak stačí sledovať ten.
Ľudovo povedané, SLAVE kecá MASTERovi do CLOCKu.
ZdenekHQ napsal(a):
...Jen potřebuje zvednout sebevědomí...
Skôr potrebujem nájsť zmysel života (alebo spriaznenú dušu opačného pohlavia). Sebavedomie som nikdy nemal, tu nieje čo zdvíhať. _________________ Silou vybrať peniaze od ľudí a následne za ne spraviť niečo proti ľuďom, s čím nesúhlasia, to je civilizácia?! Tento systém je chorý a vedie do záhuby.
Ideológie developerov niesu kompatibilné so šťastným životom.
Založen: Jul 21, 2006 Příspěvky: 25741 Bydliště: skoro Brno
Zaslal: st červen 26 2019, 14:30 Předmět:
V podstatě ano, jenže některý procesory mají přepínání direction(směru) portu IN/OUT(vstupní/výstupní) a je to pak pakárna, pokud se to emuluje softwarově. Prostě i dva obsazené piny (SDA,SCL) jsou někdy "moc". _________________ Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
Založen: May 13, 2009 Příspěvky: 5044 Bydliště: BA-Petržalka :(
Zaslal: st červen 26 2019, 14:40 Předmět:
Tak potom v mieste "Clock Stretching" prepnúť SCL na IN, načítavať stav a čakať až bude HIGH (mal by tam byť pull-up rezistor). To je celé. Následne sa môže SCL prepnúť zasa na OUT a pokračovať.
V tomto prípade by to hardvérovo išlo spraviť tak, že medzi CLK na master a CLK na slave dať rezistor, a operačným zosilňovačom podľa stavu [Vmaster>Vslave] aktivovať WAIT. _________________ Silou vybrať peniaze od ľudí a následne za ne spraviť niečo proti ľuďom, s čím nesúhlasia, to je civilizácia?! Tento systém je chorý a vedie do záhuby.
Ideológie developerov niesu kompatibilné so šťastným životom.
Naposledy upravil PotPalo dne st červen 26 2019, 14:45, celkově upraveno 1 krát.
Založen: Jul 21, 2006 Příspěvky: 25741 Bydliště: skoro Brno
Zaslal: st červen 26 2019, 14:44 Předmět:
Ano. Na papíru to vypadá jednoduše. Horší je to v praxi, když se třeba mění piny.
Každopádně pak si ten slave ten clock vygeneruje vlastně sám tím, že uvolní SCL. _________________ Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
Založen: Jul 21, 2006 Příspěvky: 25741 Bydliště: skoro Brno
Zaslal: st červen 26 2019, 14:46 Předmět:
PotPalo napsal(a):
V tomto prípade by to hardvérovo išlo spraviť tak, že medzi CLK na master a CLK na slave dám rezistor, a operačným zosilňovačom podľa stavu [Vmaster>Vslave] aktivovať WAIT.
Tak tady jsi se skutečně zbláznil. Už si dej STOP bit. _________________ Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
Založen: May 13, 2009 Příspěvky: 5044 Bydliště: BA-Petržalka :(
Zaslal: st červen 26 2019, 14:50 Předmět:
Zvláštny systém pauzy pri zaneprázdnení. Nechápem, prečo nemohlo ostať klasické [ne]oznámenie odpoveďou ACK po poslaní ŠTART, ako je to pri zápise na serial eeprom rady 24xx.
edit:
ZdenekHQ napsal(a):
...Tak tady jsi se skutečně zbláznil. Už si dej STOP bit.
Prečo? Ono by to aj fungovalo, skrátka pokiaľ slave drží clock dolu, master má čakať. Len aby slave nezamrzol, to by to zamrzlo komplet. Inak uznávam, že je to blbosť, je to iba krajné riešenie pokiaľ by to už softvérovo nešlo inak. _________________ Silou vybrať peniaze od ľudí a následne za ne spraviť niečo proti ľuďom, s čím nesúhlasia, to je civilizácia?! Tento systém je chorý a vedie do záhuby.
Ideológie developerov niesu kompatibilné so šťastným životom.
Naposledy upravil PotPalo dne st červen 26 2019, 14:55, celkově upraveno 1 krát.
Časy uváděny v GMT + 1 hodina Jdi na stránku 1, 2Další
Strana 1 z 2
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.