Forum: Mikrocontroller und Digitale Elektronik SPI Master über USI


von Meik D. (meik)


Lesenswert?

Hallo µC Gemeinde.
Ich unternehme gerade erste Gehversuche mit AVR und Bascom. Kenntnisse 
habe ich bisher eigentlich nur mit PIC's. Nun zum Problem: Ich versuche 
die Funktionsweise des USI Controllers in einem Attiny2313 zu verstehen. 
Dazu möchte ich einen DAC ansteuern. Mit dem Bascom eigenen Soft-SPI 
geht das auch wunderbar. Zum Verständnis wollte ich die Register mal von 
Hand befeuern:

$regfile = "ATTiny2313.dat"

$crystal = 8000000
$hwstack = 32
$swstack = 10
$framesize = 40

Dim A As Word
Config PORTB = Output

A = &B0100_0000_0000_0000

Do
PORTB.3 = 0
Usidr = High(A)
Usisr = 0
Usicr = &B0001_1001
Usicr = &B0001_1011
Usicr = &B0001_1001
Usicr = &B0001_1011
Usicr = &B0001_1001
Usicr = &B0001_1011
Usicr = &B0001_1001
Usicr = &B0001_1011
Usicr = &B0001_1001
Usicr = &B0001_1011
Usicr = &B0001_1001
Usicr = &B0001_1011
Usicr = &B0001_1001
Usicr = &B0001_1011
Usicr = &B0001_1001
Usicr = &B0001_1011
Usidr = Low(A)
usisr = 0
Usicr = &B0001_1001
Usicr = &B0001_1011
Usicr = &B0001_1001
Usicr = &B0001_1011
Usicr = &B0001_1001
Usicr = &B0001_1011
Usicr = &B0001_1001
Usicr = &B0001_1011
Usicr = &B0001_1001
Usicr = &B0001_1011
Usicr = &B0001_1001
Usicr = &B0001_1011
Usicr = &B0001_1001
Usicr = &B0001_1011
Usicr = &B0001_1001
Usicr = &B0001_1011
PORTB.3 = 1
If A = &B0101_1111_1111_1111 Then A = &B0100_0000_0000_0000
Incr A
Loop

Was funktioniert ist der CS (Portb.3) und das Toggeln der CLK Leitung. 
Die MOSI Leitung bleibt allerdings auf Low. Wo hängts da noch?

von Meik D. (meik)


Lesenswert?

Ich habe mir die Frage soeben selbst beantworten können. Bei dem Chip 
ist die MOSI Leitung (Master out!) im "HW-SPI" Modus die DI (Data in) 
Leitung und die MISO die DO Leitung. Haben die Jungs von AVR da in der 
Entwicklung die falschen Zigaretten geraucht oder hat das Ganze einen 
Sinn, den ich nicht verstehe.

Gruß Meik

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.