ASM für M3 probieren?

OP #3364570
Lesenswert?

Moin,
ich hab hiern nen SAM3X der mit 84 MHz läuft und ein Touch-Display, 
272x480, 24bit Farbe ansteuern soll. Eigentlich ziemliche Haushaltsware, 
wenn da nicht das Problem wäre, das komplette Timing (HSYNC,VSYNC + 
Austastung) selber machen zu müssen da die Schnittstelle mehr oder 
weniger nur eine Art großes dummes Schieberegister darstellt. Der Chip 
könnte zwar mehr, jedoch ist der SPI-Bus nicht herausgeführt.

Im Moment habe ich zwei Probleme:
- Obwohl ich nun seit drei Tagen dran rumfrickel und mich ungefähr exakt 
an das etwas chaotische, ursprünglich chinesische Datenblatt des 
Herstellers halte bekomme ich nicht mal einen reproduzierbaren Balken 
hin.

- Ich habe mal auf dem Oszi die Zeit gestoppt um die Farbinformation für 
den nächsten Pixels zu ermitteln: Für ein paar in C geschriebene Zeilen 
Code sind die Zeiten ernüchternd, es reicht nie und nimmer für eine 60Hz 
Wiederholrate.
Verlockend an diesen Dingern ist der niedrige Preis von ca 16EUR im 
Vergleich zu den fast doppelt so teuren Displays mit sog. 
8080-kompatiblen Controller. Bis jetzt habe ich aber nur Code für uC 
gefunden die ein eingebautes LCD-Modul (STM32F427, LPC 1788) nutzen.
Somit stehe ich jetzt am Scheideweg:
Das ganze mühsam in Asm angehen? Lernen schadet zwar nie, aber der 
Aufwand ist mMn halt sehr hoch.
Oder das Ganze lassen lassen und auf nen anderen Chip ausweichen zumal 
eigentlich noch viel mehr Code in den Chip mit rein soll?
Gast #3364614
Lesenswert?

A. K. schrieb:
> Atmel sagt, der SAM3X habe DMA. Das wär mal eine wahrhaft lohnende
> Anwendung dafür, wenn man Timer plus DMA so verheiratet kriegt, dass die
> Pixel-Übertragung damit automatisch ablaufen kann.

Sowas gibt's z.B. bei Renesas, nennt sich dort Direct Drive, bzw. exDMA.
OP #3364631
Lesenswert?

>Nur kann es sein, dass man dann extern etwas zusätzliche Logik benötigt.
Das wollte ich halt komplett umgehen. Einige Boards die ich sah haben 
noch externes RAM, das tu ich mir hw-mäßig aber nicht an.
Eine Alternative wäre das neue Discovery-Board mit nem STM32F427 mit LCD 
Controller + LCD auf der Platine.

Was ich noch zum Refresh sagen wollte: Wenn ich das Bild einfriere (den 
uC im Reset halte) fällt es immerhin nicht zusammen, d.h. der letzte 
übergebene Frame wird gespeichert. In sofern wäre das Timing viielleicht 
doch kein so großes Problem, vor allem wenn man mit der Farbauswahl 
runtergeht.
Aber was mich halt fuchst ist dass der Code nicht funktionieren will, 
obwohl es eigentlich nur erweiterte Bitschubserei ist; da werd ich wohl 
alleine durch müssen. Das per DMA zu lösen hätte was; aber ob ich das 
hinbekomme...

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