mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik FBAS Digitalisierung mit ARM und S65 Display


Autor: Omega G. (omega) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Omega G. (omega) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Foto: Vertikale Linien

Autor: Omega G. (omega) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Foto: Horizontale Linien

Autor: Omega G. (omega) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Omega G. (omega) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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.
for (xp=0; xp<60; xp++){  //Bild anzeigen
    for (yp=0; yp<60; yp++){
      if (xp<27){
        pset(xp*2,yp,colorSW(bild[xp][yp]));
      }else{
        pset(((xp-29)*2)-1,yp,colorSW(bild[xp][yp]));
      }
    }
  }

Bilder im Anhang.
Einmal vertikale Linien, horizontale Linien und ein grau Verlauf.

Autor: jl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Omega G. (omega) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Frage: Welcher LPC2100 hat mehr als 4 kb RAM, am besten 64 kb, und ist
> gut zu bekommen?

LPC2106. Hat 64 kByte.

Autor: Omega G. (omega) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Cr0oK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi erstmal cooles Projekt
zu denn lpc z.B. Reichelt, Segor, CSD, usw.

mfg Cr0oK

Autor: Omega G. (omega) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

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.