SPI <-> Parallel Ansteuerung OLED + Dataflash

Gast #749022
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
#749025
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.
Gast #749032
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
#749044
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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.