Forum: Mikrocontroller und Digitale Elektronik ATTiny2313 mit DOGM132 per SPI/USI Verständnisprobleme


von Christian H. (thunder2002) Benutzerseite


Lesenswert?

Hi,

ich möchte ein EA DOGM132-5 display per SPI ansteuern. Gepaart habe ich 
dazu einen ATTiny2313. µC läuft bei 4,5V, LCD hängt per DC/DC 5V->3,3V 
Wandler in der LowPower Konfiguration dran.

Port-Mapping:
SI => MOSI (PB5)
CLK => SCK (PB7)
A0 => PB0
CS => PB2
RST => PB1

Erst schalte ich PORTB als generellen Output:
1
DDRB = 0xff;

CS schalte ich zu Beginn auf 0 damit das LCD als einziger Slave sofort 
ausgewählt ist.
1
PORTB &= ~(1<<PB2); // chipselect p40

Nun möchte ich die SPI Verbindung als Master initieren um dann das 
Display zu initialisieren. Dabei bin ich ins Rudern geraten und zwar 
sind für SPI wohl die Register SPCR für die Control zuständig, beim 
Compilieren kommt es jedoch trotz <avr/io.h> zu dem Fehler "'SPCR' 
undeclared..." Dann bin ich bei Atmel in der Featuretabell gucken 
gegangen ob der Attiny2313 SPI hat, in der Spalte steht "USI". Bei 
anderen AVRs steht z.B. 1+USI. Hat der Attiny2313 also vielleicht gar 
kein echtes SPI sondern nur ein USI??? Und wenn ja kann ich auch USI zum 
Ansteuern verwenden??? Zu USI kann ich nur sehr wenig Material finden 
wie das zu Benutzen ist, nur die Reihe Doku von Atmel lässt zumindest 
die Register Namen erklären, jedoch nicht die genauen Flags mit welcher 
Konfiguration, damit ich meine Einstellungen von SPI nach USI portieren 
kann.

Schönen Abend noch :)

von spess53 (Gast)


Lesenswert?

Hi

Wie wäre es mal, das Datenblatt zu konsultieren. Dort steht nämlich, das 
der Tree-Wire-Mode mit einigen Einschränkungen SPI kompatibel ist.

MfG Spess

von Peter D. (peda)


Lesenswert?

Christian Hunke schrieb:
> Ansteuern verwenden??? Zu USI kann ich nur sehr wenig Material finden
> wie das zu Benutzen ist,

Die Codebeispiele im Datenblatt sind völlig ausreichend.
Am schnellsten senden kann man mit der Routine mit den 16 Out-Befehlen, 
d.h. der Takt muß in SW gemacht werden.

Allerdings ist der ATTiny2313 für ein GLCD ziemlich sinnfrei. 2kB 
reichen kaum für eine Zeichentabelle.

Ich rate Dir, den ATTiny861 oder sogar den ATmega328P zu nehmen.


Peter

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.