www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Externer -Schneller - Speicher am Atmega oder ...


Autor: Frank Fritze (z80-1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mahlzeit,

ich sitze über einem "Design"-Problem:

Die Aufgabe ist die Ansteuerung eines Display (OLED) über einen 
microController. Das Display wird parallel angeschlossen und soll das 
Bild (128*128 pixel, 16 Bit/Pixel) möglichst schnell darstellen, so daß 
sich u.a. eine Animation anzeigen lässt.

Das OLED hat einen eigenen Controller und speichert immer ein Bild (also 
kein Refresh nötig).

Ein Bild hat also einen Speicherbedarf von 32768 Byte (32k). Wenn ich 
von 'nem Atmega128 mit 16MHz ausgehe - seriellen Falsh z.b. DataFlash 
angeschlossen habe, dann komme ich - korrigiert mich - auf einen 
maximalen SPI-Clock von 8 Mhz. D.h (Adress-Overhead mal nicht gerechnet) 
ich kann pro Sekunde ca. 1.000.000 Bytes lesen (theoretisch). Oder liege 
ich da falsch ??

Wie sähe es denn mit einem parallelen Flash aus ? Gibts da schon 
Erfahrungen ?

Oder sogar ne bessere Idee ?
Platz für ca. 30 Frames (also ca. 1 MByte) wird benötigt.

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Frank Fritze

>Die Aufgabe ist die Ansteuerung eines Display (OLED) über einen
>microController. Das Display wird parallel angeschlossen und soll das
>Bild (128*128 pixel, 16 Bit/Pixel) möglichst schnell darstellen, so daß

>Platz für ca. 30 Frames (also ca. 1 MByte) wird benötigt.

Naja, paralleles Flash sollte sich genauso wie normalers SRAM 
anschliessen lassen. Allerdings kann der AVR nicht 1 MByte direkt 
addressieren, da müsste man mit Banking arbeiten. Ein Zugriff dauert 
AFAIK 3 Takte + ggf. Waitstates, fals der FLASH zu langsam sein sollte.

Aber auch 1 Mbyte/s über SPI ist schon ziemlich schnell. Aber mal was 
anderes, wozu braucht man 16bit/pixel? Ist das ein farbiges, also 5/6 
Bit pro RGB?
Aber 1 Mbyte/s vom FLASH ins Display schaufeln ist für nen normalen AVR 
schon ORDENTLICH Arbeit. Vielleicht sollte man dafür einen etwas 
grösseren Controller nehmen. Oder die "Drecksarbeit" des reinen 
Umkopierens in einen kleinen CPLD als DMA-Controller auslagern.


Mfg
Falk


Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>D.h (Adress-Overhead mal nicht gerechnet)
>ich kann pro Sekunde ca. 1.000.000 Bytes lesen (theoretisch). Oder liege
>ich da falsch ??

Theoretisch ist das richtig. Aber die Daten aus dem Dataflash zu lesen
ist nur die halbe Wahrheit. Du musst sie ja noch in dein Display
schreiben. Das braucht auch wieder Zeit. Ich würde mal so von
350KByte/s ausgehen. Das kann man schaffen. Oder du schaufelst
die Daten OHNE Umweg (AVR) direkt vom Dataflash in das Display ;)
Mit ein bisschen Zusatzlogik ist das unter Umständen möglich.

Autor: Frank Fritze (z80-1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Falk:

Ja, das ist richtig: da sDisplay ist ein  OLED mit 16Bit/Pixel (5:6:5); 
es gingen zwar auch 8Bit, aber das wäre optisch nicht so ideal, weil es 
sich bei der Darstellung um Photos handelt.

Es existiert eine Lösung mit einem PIC18F und dazu einem seriellen 
Flash, bei dem die sache schon ganz ordentlich ( 10 Frames/sec) läuft.

Im übrigen kannst du dir auch mal eine Demo unter

http://www.pelleplutt.net/data/kb9202-ol128/OLED128_SMC.MPG

ansehen - da hängt das OLED an einem AT91RM9200 ...

Aber ich denke, die Lösung mit einem parallelen Flash und dem OLED am 
gleichen (Daten-) Bus sollte gehen. Leider habe ich noch keinen 
gefunden, der so'n Flash am AVR betreibt usw.

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder du nimmst nen SRAm dann mußte halt einmal am Anfang die Daten vom 
Mega in den SRAM speichern.

Autor: KoF (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
können die Megas denn mehr als 64 oder 128k externes ram ansteuern?

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.