mikrocontroller.net

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


Autor: Christian Hunke (thunder2002) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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:
DDRB = 0xff;

CS schalte ich zu Beginn auf 0 damit das LCD als einziger Slave sofort 
ausgewählt ist.
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 :)

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.