www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI <-> Parallel Ansteuerung OLED + Dataflash


Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich möchte eine kleine Schaltung aufbauen, die Bilder von einem 
DataFlash auf ein OLED schaufelt. Der DataFlash hat 7 Sektoren mit je 
64k. In jedem Sektor würde ich ein Bild platzieren.
Jetzt stelle ich mir im Vorraus ein paar Fragen. Vielleicht können wir 
diese ja gemeinsam klären.
1. Als erste Lösung würde ich Dataflash und OLED in einen sternförmig 
aufgebauten SPI miteinander verbinden. Der µC holt sich die Daten vom 
Flash und schickt sie ans OLED weiter. Als µC setze ich einen AT90CAN128 
mit 16Mhz und als DataFlash ein AT26F004 ein. Was meint ihr, würde der 
SPI Bus für diese Aufgabe reichen oder stosse ich damit an seine Grenzen 
und sollte ich lieber beide parallel ansteuern? Die Bilder werden nur 
einmal übertragen und werden dann im RAM das Displays gespeichert und 
müssen danach nicht mehr refresht werden.
2. Hat jemand eine Idee wie ich die Daten vom Flash ohne den Umweg über 
einen µC direkt ans Display weiterleiten kann, dann parallel. Kann mir 
nicht recht vorstellen, ob das möglich ist würde mir aber dann 
theoretisch jede Menge Pins am µC sparen und den µC nicht so stark 
beschäftigen. Habe hier im Forum mal etwas über einen DMA Baustein 
gelesen geht es mit so etwas und was ist das?


MfG Thomas

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn OLED und Dataflash am selben SPI Bus hängen, kann man einen Trick 
anwenden:
Das Flash so initialisieren, dass die Daten übertragen werden, und das 
OLED so, dass Daten geschrieben werden. Dann aktiviert man beide 
gleichzeitig, so dass die Daten direkt vom Flash zum OLED wandern. 
Aufgrund der MOSI/MISO Leitungen, müssen die Daten leider durch den µC. 
Das ganze sieht dann in etwa so aus:
1. Byte vom Flash lesen
1. Byte zum OLED senden und gleichzeitig 2. Byte vom Flash lesen
2. Byte zum OLED senden und gleichzeitig 3. Byte vom Flash lesen
usw.

Das spart die Hälfte der Zeit.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Benedikt

Vielen Dank für deine Antwort. Hört sich nicht schlecht an diese Lösung.
Wenn ich dich richtig verstanden habe stelle ich das OLED auf Schreiben 
und den Flash auf Lesen. Danach triggere ich vom µC einen Lesevorgang 
vom Flash und die Daten bekommt OLED und Controller. Der Controller kann 
die Daten danach wieder verwerfen und den zweiten Lesevorgang starten. 
Ist es so richtig?
Hast du selbst schon mal sowas aufgebaut und kannst Erfahrungen bzgl 
Geschwindigkeit sagen?

MfG Thomas

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas wrote:
> Danach triggere ich vom µC einen Lesevorgang
> vom Flash und die Daten bekommt OLED und Controller. Der Controller kann
> die Daten danach wieder verwerfen und den zweiten Lesevorgang starten.
> Ist es so richtig?

Das wäre eine Möglichkeit, die allerdings daran scheitern, dass die 
Daten vom Flash über MISO kommen, das OLED die Daten aber über MOSI 
erwartet.

Wenn das OLED die Daten aber parallel bekommt, und der Flash auch 
parallel ist, dann kann man auf diese Art theoretisch >1Mbyte/s 
erreichen.

> Hast du selbst schon mal sowas aufgebaut und kannst Erfahrungen bzgl
> Geschwindigkeit sagen?

Mit 8bit parallelem Interface habe ich das schon gemacht: PC -> OLED 
(über FT245 und mega8) erreicht rund 500kByte/s. Mit dem Flash und SPI 
würde ich eine ähnliche Geschwindigkeit erwarten, und das sollte 
eigentlich reichen.

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.