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?
:
Verschoben durch Moderator
Und wo war jetzt die Frage, die jemand beantworten kann, der das geforderte Timing nicht kennt?
Hmm, also 272*480 bei 60 Hz ergibt ohne Austastlücken ca. 23 Mhz Pixeltakt, entsprechendt etwa 3,5 Taktzyklen pro Pixel. Daß das nicht reicht, ist nicht verwunderlich.
Ich sollte nicht so kurz nach dem Aufstehen rechnen... Es ergibt natürlich 7,8 Mhz (23 MB/s bei 24 Bit) entsprechend ca. 10,7 Taktzyklen pro Pixel, was immer noch ziemlich sportlich ist.
Soweit schon - aber muss man unbedingt komplette 24 Bits pro Pixel erzeugen? Wenn man sich auf weniger Farben beschränkt, dann reduziert sich die Datenrate des µCs dementsprechend. Nur kann es sein, dass man dann extern etwas zusätzliche Logik benötigt.
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
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.
>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...
Joachim ... schrieb: > Für ein paar in C geschriebene Zeilen > Code sind die Zeiten ernüchternd Ohne diese Zeilen zu sehen, kann man nichts dazu sagen. Man kann in C sehr leicht was hinschreiben, wo der Compiler sich echt einen abbrechen muß, um daraus Code zu machen. Oder vielleicht hast Du auch nur die Optimierung ausgeschaltet.
Ohne DMA geht garnichts. Mit DMA gibt es einige Beispiele. ExDMA der Renesas µCs ist ja schon erwähnt worden. http://www.mino-elektronik.de/TFT-direct-drive/TFT-direct-drive.htm Vergiss die 24-Bit Farbtiefe; die TFTs sind so blickwinkelabhängig, dass es eh nur bunt wird. Verwechsel den STM32F427 nicht mit dem ..429. Nur der ..429 hat den TFT-Controller auf dem Chip.
Guest schrieb: > Sowas gibt's z.B. bei Renesas, nennt sich dort Direct Drive, bzw. exDMA. Möglicherweise geht das auch mit normalem DMA. Der Timer erzeugt dann den Pixeltakt am Pin und löst ausserdem einen DMA-Transfer zum Port aus. Worst case ist, wenn das DMA zufällig mal zu lange braucht und es dann ein falsches Pixel gibt.
:
Bearbeitet durch User
Ich werde mich das Wochenende über mal einlesen und die DMA-Examples
ausprobieren.
Autor: A. K. (prx) schrieb:
>Und wo war jetzt die Frage,
So wie's aussieht also doch kein ASM ;-) Danke an Alle für einen
"Stolperstein in eine neue Richtung".
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.