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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren