Hallo, angeregt durch das 4" TFT habe ich einen Versuch gewagt, den ich eher für aussichtslos ansah. Ein analoges FBAS Signal mit einem LPC2103 zu digitalisieren und auf einem Display vom S65 Handy anzuzeigen. Die Synchronisationssignale werden über einen externen Interrupt erkannt, damit die Spannungspegel des Videosignals groß genug sind muss das Signal, dass zum Interrupt geht mit einem OpAmp verstärkt werden. Softwareseitig wird dann die Zeit gemessen wie lange dieses Signal low ist. Nach einem Hsync werden über den internen AD-Wandler die Bildinfos ausgelesen und in ein zwei dimensionales Array gespeichert. Ein Vsync veranlasst einen Rücksprung auf die erste Zeile. Jede 100ms wird das Bild dargestellt. Was gibts sonst noch zu sagen: - Momentan nur Schwarz/Weiß - Quelltextchaos - Bild wird Horizontal falsch angezeigt - 58,986400 MHz µC Takt Insgesamt geht es besser als ich dachte! Quelltext im Anhang, Verbesserungsvorschläge erwünscht. Fotos in den nächsten Beiträgen, Schaltplan noch nicht vorhanden.
Eine Frage an die Experten: Ist es irgendwie möglich, die AD-Wandlung zu beschleunigen? Meine Routinen zu optimieren, odre eine andere Möglichkeit? Oder gibt es einen Mikrocontroller von NXP aus der LPC2100 Familie, der einen schnelleren Analog-Digital-Wandler hat und mehr RAM?
Da ich meine Beiträge nicht mehr editieren kann, und keiner mit mir über das Problem redet, werde ich meine Verbesserungen einfach posten. Ich habe jetzt das horizontal doppelte Bild nach links geschoben und mit dem rechten Bild überlagert, jetzt wird statt jedem zweiten Pixel jedes Pixel angesteuert, jeweils abwechselnd mit rechtem Bild und linkem Bild. Zudem zeige ich jetzt nicht mehr auf jeder zweiten Zeile das Bild an, sondern auf jeder. die Veränderung des Codes liegt nur bei der Ausgabefunktion.
1 | for (xp=0; xp<60; xp++){ //Bild anzeigen |
2 | for (yp=0; yp<60; yp++){ |
3 | if (xp<27){ |
4 | pset(xp*2,yp,colorSW(bild[xp][yp])); |
5 | }else{ |
6 | pset(((xp-29)*2)-1,yp,colorSW(bild[xp][yp])); |
7 | }
|
8 | }
|
9 | }
|
Bilder im Anhang. Einmal vertikale Linien, horizontale Linien und ein grau Verlauf.
Das was du beim sampeln machst ist: starte AD Wandlung (x µs) verarbeite Daten starte AD neu hab gerade die AD funktionalität des NXP Arm nicht im Kopf. Aber es sollte die Möglichkeit mehrere Kanäle nacheinander zu sampeln gfeben und wenn der uC fertig ist den gesamten AD-Buffer auszulesen. Das ergibt mehr Auflösung, da auch in der "verarbeite Daten" Zeit gesamplet werden kann. Ich kann jetzt aber nicht sagen ob es ein continious für 1Kanal gibt, oder ob du alle AD Eingänge parallel schalten musst, und diese (4 oder 8)Kanäle nacheinander (automatisch) wandeln lässt. Ebenso kannst du mal versuchen den AD Wandler zu "übertakten". Beim S12 von Motorola hab ich das mal aus versehen gemacht und es gab keine Genauigkeitsprobleme. JL
Der Burst Mode würde tatsächlich eine deutlich höhre Auflösung bringen, aber ich habe leider nicht genug RAM zur Verfügung. Schade. Frage: Welcher LPC2100 hat mehr als 4 kb RAM, am besten 64 kb, und ist gut zu bekommen? Gibt's möglicherweise von NXP ein Exemplar als Sample, von einem Typ den ich nicht kaufen kann?
> Frage: Welcher LPC2100 hat mehr als 4 kb RAM, am besten 64 kb, und ist > gut zu bekommen? LPC2106. Hat 64 kByte.
Stimmt, der würde genau das erfüllen, zudem scheint der sogar Pin kompatibel zum LPC2103 zu sein. Sehr schön, danke Rufus! Ich vermute, ich kann den auch über UART0 programmieren. Woher nehme ich diesen Mikrocontroller, wenn nicht für 17€ bei Conrad? Kennt jemand eine billigere Quelle?
Hi erstmal cooles Projekt zu denn lpc z.B. Reichelt, Segor, CSD, usw. mfg Cr0oK
Reichelt hat den leider nicht, ich hätte den bevorzugt da bestellt. CSD: Momentan nicht Segor: hat den, aber bevor ich da über 22€ ausgebe, fahre ich lieber bis zum nächsten Conrad und kaufe da einen. Farnell hätte den auch für 15,x€, weiß einer von euch wie teuer mich das kommt, wenn ich da als Student bestelle?
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.