ATtiny4312 im MSPIM -Modus

OP #2498029
Lesenswert?

Moin,

ich möchte gerne einen SPI-SPI-"Wandler" bauen, und habe mich hierbei 
für einen ATtiny4312 entschieden, da dieser bis zu 20Mhz taktbar ist. 
Nun würde ich gerne, wie im Datenblatt beschrieben, den USART im 
SPI-Modus benutzen. Hier steht auf Seite 146:
"Setting both UMSEL1:0 bits to one enables the USART in MSPIM logic."
Ok, das klingt einfach.
Auf Seite 149 ist dann auch gleich noch einmal ein Beispiel:
1
; Set MSPI mode of operation and SPI data mode 0.
2
ldi r18, (1<<UMSEL1)|(1<<UMSEL0)|(0<<UCPHA)|(0<<UCPOL)

Nun probiere ich das ganze im AVRStudio (Version 4.19, Build 730), und 
das meckert, dass es UMSEL1 und UMSEL0 nicht kennt. Also mal 
reingeschaut in die "tn4313def.inc", und diehe da, da steht auch nur 
".equ  UMSEL  = 6  ; USART Mode Select".
Wenn ich ein
1
ldi   R16, (3<<UMSEL)
2
out   UCSRC, R16
dann meckert der Compiler wenigstens nicht. Beim simulieren sieht man, 
dass das vordere Bit im UCSRC grau hinterlegt und, und an Bitstelle 6 
auch nur UMSEL steht. Schreibt man dann die 0XC0 von oben rein, dann 
steht die da auch drin, allerdings wird nie das RXC-Bit im UCSRA 
gesetzt.

Kann mir jemand von Euch sagen, ob das nur im Simulator so in die die 
Grütze geht, und ob das in der Realität dann doch funktioniert? Sonst 
muss ich nämlich einen anderen Chip auswählen (habe noch nichts 
bestellt...)

Vielen Dank und viele Grüße
Christoph
Gast #2498447
Lesenswert?

Du kannst sowohl
Atmel\AVR Tools\AvrAssembler2\Appnotes\tn4313def.inc
als auch
Atmel\AVR Tools\Partdescriptionfiles\ATtiny4313.xml
entsprechend anpassen.
Dann ist auch nix mehr ausgegraut. Laut Datenblatt gibt's auch kein 
UCPHA, sondern nur UCSZ1..0

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