Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

I2C clock stretching
Jdi na stránku 1, 2  Další
 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Poradna
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
ZdenekHQ
Administrátor


Založen: Jul 21, 2006
Příspěvky: 25741
Bydliště: skoro Brno

PříspěvekZaslal: čt červen 20 2019, 14:46    Předmět: I2C clock stretching Citovat

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:  136 krát

i2c_clk_str.png



_________________
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[?
]
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
PotPalo



Založen: May 13, 2009
Příspěvky: 4955
Bydliště: BA-Petržalka :(

PříspěvekZaslal: čt červen 20 2019, 16:27    Předmět: Citovat

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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
ZdenekHQ
Administrátor


Založen: Jul 21, 2006
Příspěvky: 25741
Bydliště: skoro Brno

PříspěvekZaslal: čt červen 20 2019, 16:49    Předmět: Citovat

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[?
]
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
PotPalo



Založen: May 13, 2009
Příspěvky: 4955
Bydliště: BA-Petržalka :(

PříspěvekZaslal: čt červen 20 2019, 18:08    Předmět: Citovat

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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
Crifodo



Založen: Oct 11, 2005
Příspěvky: 15005

PříspěvekZaslal: čt červen 20 2019, 20:42    Předmět: Citovat

Když jsme se tu tak dojímali ve vedlejším vlákně nad ****ním češtiny, jmenuje se to nějak česky?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
ZdenekHQ
Administrátor


Založen: Jul 21, 2006
Příspěvky: 25741
Bydliště: skoro Brno

PříspěvekZaslal: pá červen 21 2019, 10:12    Předmět: Citovat

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[?
]
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
PeteBurns
Zablokován


Založen: Oct 08, 2007
Příspěvky: 2578

PříspěvekZaslal: pá červen 21 2019, 16:55    Předmět: Citovat

Takze nie je az taky looser ako o sebe tvrdi, je tak? Wink
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
ZdenekHQ
Administrátor


Založen: Jul 21, 2006
Příspěvky: 25741
Bydliště: skoro Brno

PříspěvekZaslal: pá červen 21 2019, 16:59    Předmět: Citovat

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[?
]
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
ZdenekHQ
Administrátor


Založen: Jul 21, 2006
Příspěvky: 25741
Bydliště: skoro Brno

PříspěvekZaslal: st červen 26 2019, 12:36    Předmět: Citovat

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:  89 krát

clock_str.png



_________________
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[?
]
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
PotPalo



Založen: May 13, 2009
Příspěvky: 4955
Bydliště: BA-Petržalka :(

PříspěvekZaslal: st červen 26 2019, 13:16    Předmět: Citovat

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ť. Neutral
_________________
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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
ZdenekHQ
Administrátor


Založen: Jul 21, 2006
Příspěvky: 25741
Bydliště: skoro Brno

PříspěvekZaslal: st červen 26 2019, 14:30    Předmět: Citovat

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[?
]
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
PotPalo



Založen: May 13, 2009
Příspěvky: 4955
Bydliště: BA-Petržalka :(

PříspěvekZaslal: st červen 26 2019, 14:40    Předmět: Citovat

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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
ZdenekHQ
Administrátor


Založen: Jul 21, 2006
Příspěvky: 25741
Bydliště: skoro Brno

PříspěvekZaslal: st červen 26 2019, 14:44    Předmět: Citovat

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[?
]
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
ZdenekHQ
Administrátor


Založen: Jul 21, 2006
Příspěvky: 25741
Bydliště: skoro Brno

PříspěvekZaslal: st červen 26 2019, 14:46    Předmět: Citovat

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[?
]
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
PotPalo



Založen: May 13, 2009
Příspěvky: 4955
Bydliště: BA-Petržalka :(

PříspěvekZaslal: st červen 26 2019, 14:50    Předmět: Citovat

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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Poradna Časy uváděny v GMT + 1 hodina
Jdi na stránku 1, 2  Další
Strana 1 z 2

 
Přejdi na:  
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

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

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.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.15 sekund