Forum: Mikrocontroller und Digitale Elektronik Jemand schonmal mit dem USI - TWI gearbeitet?


von Paul H. (powl)


Lesenswert?

Hi, ich stelle die Frage nun mal so.

Da ich auf sämtliche Fragen was das USI mit TWI anbelangt irgendwie 
keine Antwort bekomme würde ich gerne mal wissen ob sich überhaupt 
jemand dafür interessiert bzw. schonmal damit beschäftigt hat. Oder ob 
jemand daran interesse hätte dafür mal einen Master zu "entwickeln". Das 
ganze in Assembler.

Habe dazu mehrere Fragen was die Taktung der ganzen Geschichte angeht.

meine ICQ-Nummer: 126342470

mfg PoWl

von Magnus Müller (Gast)


Lesenswert?

Ich denke mal, dass du dich auf deinen anderen Thread beziehst...

"TWI Master mit USI sinnvoll?"
Beitrag "TWI Master mit USI sinnvoll?"

Es gibt hier bestimmt viele Leute, die das USI bereits (erfolgreich) 
eingesetzt haben. Hast du schon mal die entsprechenden AppNotes von 
Atmel angesehen? Damit müssten sich die meisten Fragen eigentlich 
beantworten lassen.

AVR310: Using the USI module as a I2C master (8 pages, revision B, 
updated 09/04)
This Application Note describes how to use the USI for TWI master 
communication.
http://www.atmel.com/dyn/resources/prod_documents/doc2561.pdf

AVR319: Using the USI module for SPI communication (8 pages, revision A, 
updated 09/04)
This application note describes a SPI interface implementation, in form 
of a fullfeatured driver and an example of usage for this driver.
http://www.atmel.com/dyn/resources/prod_documents/doc2582.pdf

Gruß,
Magnetus

von Annegret (Gast)


Lesenswert?

>Da ich auf sämtliche Fragen was das USI mit TWI anbelangt irgendwie
>keine Antwort bekomme würde ich gerne mal wissen ob sich überhaupt
>jemand dafür interessiert bzw. schonmal damit beschäftigt hat.

Nein, leider nicht.

von Peter D. (peda)


Lesenswert?

Magnus Müller wrote:

> Es gibt hier bestimmt viele Leute, die das USI bereits (erfolgreich)
> eingesetzt haben.

Wie kommst Du denn bloß darauf ?

Bisher gibts ja schon ne Menge Threads dazu, mit wenig bis null 
Antworten.

Beitrag "TWI Master mit USI sinnvoll?"

Beitrag "TWI clock stretching funktioniert nicht"

Beitrag "ATmega8 TWI <- ATtiny26 USI TWI, clock stretching?"

Beitrag "USI: I²C/TWI Slave sendet kein ACK :-/"

Beitrag "Hilfe bei TWI / I²C mit dem USI des ATtiny26"

Beitrag "Clock Stretching unterstützt ATmega8 - TWI"

Beitrag "USI - TWI Slavemit ATtiny26"


Peter

von Magnus Müller (Gast)


Lesenswert?

Nun ja... "viele" war bestimmt ein wenig übertrieben ;) Die Threads hab 
ich mit der Suchfunktion (+powl +usi) auch schon gefunden, aber nicht 
alle gelesen. Trotzdem sollten sich die meisten Fragen mit den AppNotes 
beantworten lassen.

@powl:

Du kannst dich in deinen Fragen dann ja auch auf die (für dich) unklaren 
Abschnitte in den AppNotes beziehen, dann fällt es uns auch bestimmt 
leichter, dir weiter zu helfen.

Gruß,
Magnetus

von Paul H. (powl)


Lesenswert?

Ok.

Using USI as a TWI Master. Atmel stellt ihr USI im TWI betrieb so ein 
dass die Taktquelle für das Schieberegister eine positive Flanke an SCL 
ist. Die des 4-bit Counters ist das einschreiben einer 1 des USITC-bits. 
Ebenso SCL wird durch USITC getoggelt.

Das geht aber meinem logischen Verständnis entgegen. Zuerst wird die 
SDA-Leitung auf den entsprechenden Datenzustand low oder released, also 
high, gebracht und DANN gibt es einen Taktimpuls, das Schieberegister 
muss also VOR der positiven Taktflanke an SCL auf die richtige position 
gebracht werden und nicht während oder noch schlimmer nach ihr.

Um die Start Condition zu erzeugen wird zuerst die SDA-leitung auf low 
gezogen (im Schieberegister befindet sich 0xFF), danach die SCL-Leitung. 
Dann wird das zu sendende Byte ins Schieberegister geladen. An SDA liegt 
nun das Bit-7 im Schieberegister an. Wenn ich nun mit der Atmel 
Einstellung einen Takt auslöse in dem ich eine 1 in das USITC-bit 
reinschreibe entsteht an SCL eine positive Taktflanke und durch diese 
wird das Schieberegister entweder im gleichen oder im darauffolgenden 
Moment weitergeschoben. Das ist aber unlogisch das darf garnicht sein. 
Das Schieberegister darf wenn überhaupt nach einer negativen Taktflanke 
an SCL weitergetaktet werden. So werde ich das probieren. Deswegen 
verstehe ich die Appnotes nicht. Die Vorgehensweise ist ja auch 
nirgendwo vernünftig dokumentiert, man krigt einfach so n Code in die 
Hand gedrückt und darf sich dann da durchwurschteln..

mfg PoWl

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.