Atmega32 zeigt BMP von SD/MMC Karte aus S65

#1156759
Lesenswert?

Hallo.
Ich möchte euch meine Lösung vorstellen, mit der es möglich ist mit 
einem Atmega32 BMPs (Bitmaps) von einer SD / MMC Karte zu lesen, und 
diese auf einem S65 LCD Display auszugeben.
Es sind ein paar Funktionen aus der lib "MMC" und "FAT" in die lib "S65" 
einflossen, was Geschwindigkeitsvorteile gezeigt hat.

Die S65 lib stammt von "Christian Kranz" und wurde um das anzeigen von 
bmp erweitert.
Es handelt sich nur um unkomprimierte bilder, das ich mehr wert auf 
Geschwindigkeit lege, als auf speicher. (SD Speicher ist nicht 
sonderlich teuer, Rechen power dagegen schon)
Es können Bilder mit 16 bit und 8 bit Farbtiefe angezeigt werden.
Die Bilder habe ich mithilfe GIMP erstellt, sicher ist das aber auch mit 
Photoshop möglich.
Mit Pain hatte ich meine Probleme, was die 16 bit angingen.

In der Zip Datei ist ebenfalls ein Schaltplan enthalten. :-)

Anbei noch ein Video: **folgt**

viel spaß beim testen...
#1156796
Lesenswert?

Hallo,

bevor ich jetzt meine eher bescheidenen C-Kenntnisse bemühe:
welche Vorteile hat Deine Lösung gegenüber dieser:

Beitrag "Digitaler Bilderrahmen mit mega8 S65 Display und SD-Karte"

Ist wirklich nur eine Frage, habe den anderen Bilderrahmen gebaut und 
hatte zuerst ein paar Probleme mit dem Format der SD-/MMC-Karten.

Gruß aus Berlin
Michael
#1156817
Lesenswert?

ich denke der größte unterschied sollte sein, das ich mit dem Hardware 
SPI arbeite, und somit ein Bildwechsel deutlich schneller als "3s" von 
statten geht.
Desweiteren scheint mir so, als wäre es bei " M. Bode" nur möglich BMPs 
mit 24bit zu laden.
Das bedeutet, das die Bilder irgendwo wieder runtergerechnet werden 
müssen.
Meine lib kann 8 und 16 bit anzeigen, und sendet diese optimiert ans 
Display.
#1158621
Lesenswert?

Hallo,

macht das das Display lange mit, Du bläst das Teil mit 5V Pegeln an, die 
schon ein Stück über der Vcc des Displays liegen. Die SD Karte auch. 
Wenns funktioniert, dann ist es schön zu wissen. Ich könnte mir aber gut 
vorstellen, dass Ableitströme über interne Schutzdioden fließen. Warum 
den AVR nicht gleich mit 3V betreiben und dann schauen, was für einen 
Takt er noch schafft. Dann wäre eine Versorgung mit einem LiPo Akku 
möglich, die Hintergrundbeleuchtung dann mit einem freien PWM Kanal via 
StepUp wie es Cristian macht. Die Induktivität kann auch kleiner 
ausfallen 220µH reichen. Den Code schau ich mir noch an, sieht aber sehr 
vielversprechend aus. Super Projekt.
Grüße
Lothar
#1158662
Lesenswert?

@Lothar Lehmann:
Keine Panik. der 7805 versorg nur den JTAG. (Was aber auch keine Pflicht 
ist)
Ursprünglich sollte die gesamte Schaltung mit 5V laufen, bis ist mich im 
laufe der Entwicklung, dazu entschieden habe alles auf 3,3V zu 
portieren, um diverse Pegelwandler zu sparen.
Der Atmega32 läuft alse auf verbotenen 3,3V bei 16 MHz !!!
Die 3,3V werden mit dem LM317 erzeugt.

@ Lupin:
Ich nutze Dithering nicht bewusst.
Ich weiß nicht, was mir GIMP erzeugt, wenn ich aus einem 24 bit Bild ein 
16 Bit Bild erzeuge.
Optimiert habe ich es insofern, das ich lediglich Bilder lade mit einer 
Farbtiefe, die das Display unterstütz. (im moment nur 16 bit und 8 bit. 
wenig noch nicht)
außerdem sind die Libs für FAT und LCD etwas mehr verschmolzen. Es sind 
in der LCD lib direkt angepasste Funktionen aus der FAT lib zu finden, 
um etwas mehr Geschwindigkeit zu erreichen.
An was für einem ARM versuchst du es denn?
Das steht bei mir auch noch auf der toDo liste mit einem AT91sam7.

Aufgrund der geringeren Datenmenge bei einem 8 bit tiefen bild, wird das 
Bild schneller dargestellt.
#1158688
Lesenswert?

Ja, 3,3V sieht schon besser aus.
Du zeigst nur fest definierte Bilder an. Ich habe mich mit FAT nur 
rudimentär beschäftigt. Ginge nicht ein Findfirst... Findnext oder so 
ähnlich um alle auf der Karte zu findenden Files anzuzeigen. Wenn ein 
Fehler auftritt, keine neue Datei mehr da, dann wieder von vorn 
anfangen. Ansonsten muss ich bei jeder neuen Bilderserie neu 
compilieren.
#1718210
Lesenswert?

Hi,
ich versuche grad verzweifelt ein BMP von einer MMC karte mit deinem 
code auf einem L2F50xxx auszugeben, die bib von Christian Kranz für das 
L2F50xxx funktioniert auch soweit, inzwischen hab ich es geschafft die 
initalisierungs routine in deinen code zu übertragen, mein problem ist 
wohl dass wenn ich das display deselecte um von der mmc zu lesen es wohl 
nicht mehr auf weitere commandos reagiert.... kann das sein ? Hat jemand 
was ähnliches schon gemacht ?
#1729524
Lesenswert?

@Gutmar H.

Ich bin gerade dabei eine multi Grafik Bibliothek für AVR und ARM µC´s 
zu schreiben und wollte fragen, ob ich deinen Code verwenden darf. Ich 
dachte daran, das ich den gesamten Code später unter die GPL stelle. Ich 
fände das echt super, wenn du mir das erlauben würdest, und es würde 
warscheinlich auch vielen helfen.

Viele Grüße

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren