SPI über USI Schnittstelle des Tiny84

OP #575375
Lesenswert?
• ▲
▼
Hallo AVR Experten,

ich habe folgendes Problem:

Ich möchte den DA-Wandler TLV5638 über SPI mit meinem Tiny84 ansprechen.
Ich mache, dass eigentlich auch genauso, wie im datasheet angegeben ist.
Im der Simulation im AVR Studio, sehe ich jedoch, dass mein 4bit counter 
nicht hochzählt, in der Praxis tut es ebenfalls nicht. Ich bekomme also 
nie einen overflow und das USIDR Register wird auch nicht geschoben.
Ich habe mir auch schon die verschiedensten application notes (app 307, 
319) von avr angesehen und meine, dass die das genauso machen, wie ich.
Was habe ich vergessen?
Sieht vielleicht jemand von euch meinen bug?
Wäre super!!!
Vielen Dank im Voraus!

MfG
Julian
Angehängte Dateien:
Gast #575624
Lesenswert?
• ▲
▼
Bin auf deinen falschen Kommentar reingefallen. PA7=CS. Dann stimmts 
dieser Teil.

Bei deinem SPI dürfte der AVR Master sein. Dazu passt dein Code 
allerdings überhaupt nicht, denn bei einem USI als SPI Master wird der 
Takt per Software erzeugt. Nochmal ins Datasheet reinsehen und den 
richtigen Codeschnipsel finden.
OP #575952
Lesenswert?
• ▲
▼
Entschuldigung, jetzt sollte der Kommentar aber stimmen


A.K. wrote:
> Bei deinem SPI dürfte der AVR Master sein. Dazu passt dein Code
> allerdings überhaupt nicht, denn bei einem USI als SPI Master wird der
> Takt per Software erzeugt. Nochmal ins Datasheet reinsehen und den
> richtigen Codeschnipsel finden.

Ich muss dir leider widersprechen,
wenn ich im USICR USICLK=1 setze aktiviere ich die Software clock und 
über den Befehl USITC=1 wird der Clock port getoggelt.
Da ist doch mein avr ein master. Oder muss man den avr noch anders als 
master definieren?

MfG
Julian
Angehängte Dateien:
Gast #575982
Lesenswert?
• ▲
▼
> wenn ich im USICR USICLK=1 setze aktiviere ich die Software clock
> und über den Befehl USITC=1 wird der Clock port getoggelt.

Kein Widerspruch. Ich sehe bloss nirgends wo du ihn toggelst, ausser ein 
einziges Mal in der Initialisierung des Registers. Dein Missverständnis: 
Der toggelt sich nicht selber (eben "software clock", nicht "hardware 
clock"), da ist pro Bit 2xUSITC fällig. Und genau das steht schön 
beschrieben im Datasheet.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.