Stránka 1 z 1

USI Two-wire komunikace pomoci Attiny2313A/4313 (I2C)

Napsal: 26 led 2013, 15:12
od poprad
Zdravím.
Hraji se s Two-wire komunikací (I2C) a měl bych dotazy:
- Když Master vyvolá START podmínku (SCL=High, SDA přechází na Low), kdo se postará aby následně přešlo SCL na nízkou úroveň? Musí se o to postarat na straně Slave programátor zápisem sbi PORTB,SCL v rutine přerušení USI_START?
- Když je po START podmínce SCL na nízké úrovni, musí ji MASTER testovat před tím, než zapíše první bit do SDA?
Děkuji za odpověď. Začínám s Two-wire komunikací a potřebuji o ní získat základní informace.

Napsal: 26 led 2013, 17:46
od Andrea
Sestupnou hranu na SCL musí udělat master, slave může SCL v nule podržet, než se dostane do stavu, kdy je schopen komunikovat. Takže master, poté co poprvé po startu uvolní SCL, musí testovat, jestli SCL skutečně přešlo do log. 1 a pokud ne, tak počkat. Totéž po ACK, tam také může slave SCL podržet, pokud nestíhá.

Napsal: 26 led 2013, 18:16
od poprad
Děkuji. Přesně o toto mi šlo.
Takže když Master vyšle START, musí zhodit SCL. Slave potom může podle svého vědomí a svědomí SCL podržet než bude náležitě pŕipravený na příjem dat. Master po tento čas musí sledovat stav SCL, to znamená, musí se pŕepnout na příjem. Je teda nutné zařadi spožďovací smyčku mezi zhodením SCL a přepnutím se do vstupního režimu (stále mluvím o Master)? Jestli ano, kolik času má dát pro Slave na to, než se rozhýbe a podrží SCL?

Napsal: 26 led 2013, 19:10
od Andrea
Kdyby ses podíval do datašítu, je tam nakreslený ten detektor startu a z něj je patrné, že slave SCL podrží okamžitě, jakmile master dá SCL do 0 a drží ho, dokud software neshodí USISIF.

Napsal: 26 led 2013, 19:38
od poprad
Právě že z datasheetu to není patrné. Dokonce i slovo "okamžitě" mi nesedí... Nechci být puntičkář, ale žádný obvod na světě nedělá nic okamžitě. A právé proto jsem se ptal, kolik času mám nechat Slave aby vybavil svoje obvody a podržel SCL na nízké úrovni. Zřejmě půjde o čas, který někdo vysledoval jako dostatečný...

Napsal: 26 led 2013, 19:40
od Andrea
No tak si slovíčkař jak chceš, když tě to baví.

Napsal: 26 led 2013, 19:43
od poprad
Vzala si si to osobně a to není dobře. Jde mi skutečně o praktické zkušenosti. Na zbérnici se nikdy nedělá nic okamžiě. Co když je Slave v režimu Sleep, například?

Snad už to teď bude jasné, že problém není na sběrnici. OT odmazáno. ZdenekHQ

Napsal: 27 led 2013, 11:54
od ZdenekHQ
Snad se teď dokážete vrátit k tématu.