www.mikrocontroller.net

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


Autor: Paul H. (powl)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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/...

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/...

Gruß,
Magnetus

Autor: Annegret (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Paul H. (powl)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.