www.mikrocontroller.net

Forum: Projekte & Code TV VIDEO BILD BAS Frequenzzähler DVM Atmega8 Assembler


Autor: Bernhard S. (bernhard)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Geschätztes Forum,

ein 16 MHz getakteter Atmega8 erzeugt ein s/w Videosignal
(BAS-Signal, kein FBAS) und mit wenigen Bauelementen kann man sich
relativ kostengünstig und zeitsparend ein kleines Messhilfsmittel
schaffen.

Grundidee war, dass mehrere Temperatur-Werte auf dem TV-Bildschirm
darstellen werden sollten,
dass es dann so ausartete hatte ich anfangs nicht gedacht ;)

*Features*:
- 5 MHz Frequenzzähler (ohne Vorteiler, mit Vorteiler bis 40MHz)
- 4 Kanal _ADC_(variaber Offset, Multiplikator, Kommastelle,
Maßeinheit)
- Anzeige RXD-Daten ( Baudrate einstellbar, Zahlen positiv/negativ)
- interne Uhr
- 4 Tasten Menueführung
- 4 x 14 Zeichen-Darstellung
- Einstellungen werden im internen EEPROM abgelegt
- mehrere Hilfe-Menues

MENUE-EINSTELLUNGEN (EEPROM):
- die gemessenen ADC-Werte können mit einem Multiplikator (0,5...10),
  sowie mit einem Offsetwert beaufschlagt und eine Maßeinheit kann
  festgelegt werden, incl. Kommaposition
  (Anpassung an Temperatursensoren bzw. Spannungsteiler)
- die ADC-Referenzquelle ist umschaltbar (intern 5V, 2,56 bzw. extern)
- Die Zeitdauer für Frequenzmessung ist variabel (1...8s)
  ( bei Vorteiler 2:1 empfielt sich eine Zeit von 2s)
- Die Baudrate kann eingestellt werden (1200,2400,4800,9600,19200)
- ein Zurücksetzen auf die "Werkseinstellungen" ist möglich
- Testbilder
- Fehlercodes

Besonderheiten:

Normalerweise besteht ein TV-Bild aus 2 x 312,5 Zeilen = 625 Zeilen.
Versuche haben aber gezeigt, das ein TV auch mit 2 x 312 Zeilen = 624
Zeilen zurechtkommt.

Dafür mussten aber, abweichend von der TV-Norm, einige Vereinfachungen
vorgenommen werden. Die vordere Schwarzschulter und die hintere
Schwarzschulter werden nicht exakt generiert.

Das Programm wurde in Assembler geschrieben, da es teilweise auf jeden
einzelnen Takt ankommt, damit die V/H Synchronimpulse und die
Bild-Daten ohne jittern bereitgestellt werden.

Hoffentlich habe ich den Programmcode ausreichend dokumentiert, damit
man nachvollziehen kann, wann wo und wie etwas passiert.

Ich werde "Step by Step" dieses Projekt weiter entwickeln und Updates
zur Verfügung stellen.

Besonders freuen würde ich mich über
Hinweise und Verbesserungsvorschläge.


Einen schönen Gruß,

direkt aus Erfurt

Bernhard

Angefügt habe ich:
- Schaltplan (mit SPLAN 4.0 gezeichnet)
- ASM-Files
- HEX-Files
- Fuse Bits
- 2 Bilder
- etwas Theorie (einfach beschrieben)



Anmerkung:

Ein kleiner Bug treibt noch sein Unwesen. Manchmal entsteht in einer
Textzeile ein Zeichen, was da nicht hingehört. Ich vermute, dass es was
mit dem Z-Register zu tun hat.

Autor: Vajk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Deine Beschreibung macht neugierig .. gleich mal geladen!

Boah Ahey - super - klasse Spitze - Super !!!!!!!!!!!!

Wieviel ist denn die kleinste Frequenz die gemessen werden kann, was
die höchste? Und könnte man das auch in einen LCD-Mini-TV mit gelber
Eingangsbuchse einspeisen? Schade, hab keinen TV, sonst würd ichs
sofort nachbauen :-)

Super Publikation !!!

Viel Erfolg weiterhin,
Vajk

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Vajk,


>Boah Ahey - super - klasse Spitze - Super !!!!!!!!!!!!

danke


>Wieviel ist denn die kleinste Frequenz die gemessen werden kann, was
>die höchste?

Frequenzbereich: ca. 1Hz...  40MHz (mit  Vorteiler)
                 ca. 1Hz....5,5MHz (ohne Vorteiler)

>Und könnte man das auch in einen LCD-Mini-TV mit gelber
>Eingangsbuchse einspeisen?

ja, das funktioniert

Bernhard

Autor: ajax (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Oszi draus machen wäre doch schön. Jaja ich weis schon horizontale
Striche sind schwierig.
Wie wäre es mit einem vertikalen Oszilloskop-Bild ( wen's stört:
Fernseher um 90° drehen )

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ajax,

>Ein Oszi draus machen wäre doch schön.

Stimmt! Aber es gibt ein Problem.

Die Oszi-Daten, also die gemessenen Analogwerte,
müssen TV gerecht aufbereitet werden (Bildspeicher) und

in kürzester Zeit (wenige ns) abgerufen und gesendet werden.

Da bleibt bei 16Mhz Takt keine Zeit mehr zum rechnen :(

Leider haben die ATmega's nur relativ wenig SRAM, so dass die Grafik

nur ca. 80x80 Pixel (ATmega8) sein würde.

Wäre etwas grob, würde aber für eine Temperaturdarstellung vollkommen
genügen.

Bernhard

Autor: ajax (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
# nur ca. 80x80 Pixel (ATmega8) sein würde.

Man könnte die Sache anders angehen. Der Atmega8 hat 1KSRAM.
Davon 200 Byte verwenden um ein gesampeltes Signal abzuspeichern.

Das Signal soll senkrecht auf dem Bildschirm ( also auf deutsch: von
oben nach unten ) dargestellt werden.

Jeder Zeile wird ein Signalwert aus dem Array zugeordnet.
Immer am Zeilenanfang wird ein Timer mit dem Signalwert gestartet. Wenn
der Timer abgelaufen ist wird ein Punkt auf den Bildschirm gezeichnet.

Die Bildauflösung, mit der das Signal dargestellt wird, beträgt also
200Zeilen x 256 Spalten. Ganz schön viel, oder ?

Gruss,
ajax

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Ajax,

>Jeder Zeile wird ein Signalwert aus dem Array zugeordnet.

Ich denke, aus Deiner Idee läßt sich was machen ;)

Werde mal in aller Ruhe darüber nachdenken.

Danke

Bernhard

Autor: Picht Wigbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Bernhard,
ich wollte schon immer ein Sat-Meter mir bauen .Also Digitalreceiver
und TFT-Monitor.Da kommt mir Dein Projekt gerade recht. Einspeisung
Deines TV-Messgerätes über Terristischen Eingang.Geht das?

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Picht

> Einspeisung Deines TV-Messgerätes über Terristischen Eingang.
> Geht das?

Ja, das funktioniert wunderbar.

Na dann viel Spaß mit Deinem Projekt.

Bernhard

Autor: ???? (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

kann sein dass ich jetzt totalen mis schreibe -> ind diesem Fall
einfach ignorieren,
aber wäre es nicht möglich das Videosignal mit nur einem Pin zu
generieren?
Dann würde es ja theoretisch gehen an einen Port ein 8 Bit
Schieberegister anzuschließen und immer 8 Bits gleichzeitig zu laden.
Der Schieberegister wird dann über einen Externen Takt gesteuert. So
würde nur ein Achtel der jetztigen Zeit für den Bildaufbau verbraucht.
Falls der zweite R für die Syc verwendet wird könnte er ja an jedem
Zeilenende durch den uC aktiviert werden.

Autor: Picht Wigbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Bernhard,
Dank für die Info,aber was passiert dann Intern, wenn ich Dein TV-Meter
am Receiver-Terr.Eingang anschliesse.Bei Sat entsteht ein
brauchbares Videosignal.Hab ich schon hundertmal zum Testen
einer "Schüssel" gemacht.Müsste ich bei Terr.nicht ein Kanal
einstellen?Oder wird das Videosignal auch durchgereicht.Und wenn
ich ein Sat-Kanal empfange,werden dann die Messergebnisse auch ein-
geblendet?Ich hoffe ich Nerve nicht zu stark.

Aber was Du nicht verstehst wird selten gelingen.

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Picht

Ich habe gerade was verwechselt.

Sorry!!!

> Einspeisung Deines TV-Messgerätes über Terristischen Eingang

Das geht nicht, denn diese Schaltung gibt Dir ein BAS-Signal raus, also
ein Signal, welches Du am Scart -Eingang einspeisen kannst.

Bernhard

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>aber wäre es nicht möglich das Videosignal mit nur einem Pin zu
>generieren?

Ja/Nein

Ein Fernseh - BAS - Signal besteht mindestens aus 3 Pegeln.
(0V für Synchron 0,3V für Schwarz und 0,3...1V für Weiss)


>Dann würde es ja theoretisch gehen an einen Port ein 8 Bit
>Schieberegister anzuschließen und immer 8 Bits gleichzeitig zu laden.
>Der Schieberegister wird dann über einen Externen Takt gesteuert

Ja, das würde funktionieren.

Der µC (ATmega8) besitzt intern ein solches Schieberegister,
genannt SPI, wäre also ohne Hardware-Aufwand sofort realisierbar.

Autor: Picht Wigbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Bernhard,
alles klar steht ja Oben so.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@????
Ja, wir ignorieren dich...
Nein, kleiner Scherz.
Das ganze geht sogar einfacher, denn der AVR bietet dieses
Schieberegister intern:
http://www.mikrocontroller.net/forum/read-4-429298.html#new

@Picht
Mit einem Modulator aus einem alten Sat Reciever, Videorekorder usw.
funktioniert das wunderbar, das mache ich auch auch so um Infos in
unser hausinternes TV Netz einzuspeisen: Ein AVR bekommt den Text, der
erzeugt das Videosignal und ein Modulator speist dieses ein.

Autor: Picht Wigbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Benedikt+Bernhard,
Tolle Sache.Es gibt doch immer eine Lösung.
Also,ich nehme das Bas Signal gehe auf den AVR mit Schieberegister
und speise mit einen Modulator das Signal Terristisch ein.
Ich könnte zB.die LNB Spannung auf den Bilschirm einblenden?
Noch ne Frage:
Im Elektor war ein DiSEqC-Monitor mit Pic 16F628 mit LCD Ausgabe.
In ASM. Da ich nur Bascom kann frage ich einfach mal wie ich die
Ausgabe in mein Projekt rein kriege.Oder hat jemand in Zukunft
mit AVR etwas ähnliches vor.Das TV-Projekt bietet sich dafür an.
Kann bei Interesse die orginal Zip-Datei reinladen.

Autor: Picht Wigbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Benedikt,
hab mir mal Deine Schaltung und Code angesehen.
Wenn ich das richtig sehe müsste nur Dein Code im TV-Projekt-
Controller implementiert werden? Und ich hätte dann ein Videosignal.
Videobuchse ist am LCD-Monitor ja da.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Picht
Was meinst du mit "TV-Projekt-Controller" ?

Also die Anzeige der Spannung auf dem TV ist absolut kein Problem, das
hat Bernhard ja schon gemacht.
Einen Diseq Monitor wollte ich auch mal bauen, nur ob ich das in
nächster Zeit mache, weiß ich nicht.

Autor: Picht Wigbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Benedikt,
Bernhard erzeugt ein Bas Signal,könnte man nicht Dein Code mit
in Bernhards Mega8 implementieren und ich hätte ein Videosignal
oder sehe ich was falsch

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, mein Code macht genau dasselbe wie Bernhards, nur über einen
anderen Weg. Du kannst also seinen oder meinen Code nehmen

Autor: Picht Wigbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alles klar Benedikt, also doch mit mit einen Modulator um
aus das Bas-Signal einzuspeisen.Muss mich mal damit beschäftigen
Analogreciever sonder ich öfter mal aus.Der Modulator wäre also
da.

Autor: Picht Wigbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Bernhard,
ich hab mal ein bisschen die Grundlagen erlesen und bin für
mein Projekt zu folgenden Schluss gekommen.
Man nehme ein Digitalreceiver ein Scartadpter(hat 3Buchsen ,ua.
ich sag mal Gelb,Bas-Signal)und ein LCD-Monitor(hat gelben
Chinch-Stecker).Den Stecker schalte ich auf Dein Controllerausgang
um,und habe die Werte auf den Bildschirm oder ein Sat-Bild.
Sind meine Gedankengänge bis hier her OK?
Spannungseingang brauche ich für LNB-Spannung ,is wohl OK.
Jetzt wollte ich mit den Frequenzzähler das DiseqC-Signal
messen.Die 22 Khz die sind aber gepulst.Es müsste also die
Torzeit in mind.in msec Bereich eingeengt werden.Geht das und was
passiert.
Und wenn ich auf die RS232 Schittstelle "dudeldei"sende(alle
sec),wird
dann der Bildschirm voll geschrieben,rollt der Text oder wird immer
auf die selbe Stelle geschieben.

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Wigbert


>Den Stecker schalte ich auf Dein Controllerausgang
>um,und habe die Werte auf den Bildschirm oder ein Sat-Bild.

Nein, Du siegst dann das Bild des µC (UHR, ADC, Frequenz und RXD)

>Sind meine Gedankengänge bis hier her OK?

Müsste funktionieren

>Die 22 Khz die sind aber gepulst

Der Frequenzzähler misst in dieser Beschaltung aber nur die Impulse,
die in einer Sekunde Empfangen werden.

Sollten nur 10 Impulse von den 22kHz in einer Sekunde emfangen werden,
dann Zeigt er Dir die Zahl 10 an.

>Und wenn ich auf die RS232 Schittstelle "dudeldei"sende(alle
>sec),wird dann der Bildschirm voll geschrieben

Durch RS232 kann Dir nur ein Zahlenwert in der 2.Textzeile dargestellt
werden,

Bsp: "1.426"  für die Füllstansmenge eines Oeltanks

Gruß

Bernhard

Autor: Picht Wigbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dank,
weiss ich erstmal bescheid

Autor: Michael U. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

eigentlich war ich ja nur beim Aufräumen...
Dabei fiel mir aber dieses Türkamera-Videomodul in die Hände und ich 
mußte es unbedingt mal schnell ansteuern.

Naja, nun weiß ich zumindest, daß
 a) der Videomonitor geht und
 b) das dieses Projekt hier sich auf Anhieb richtig meldet.

Nur eine wirkliche Verwendung fällt mir nicht so recht ein im Moment... 
;)))

Gruß aus Berlin
Michael

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Nur eine wirkliche Verwendung fällt mir nicht so recht ein im Moment...

Frequenteingang nutzen für Besucherzählung ;)

Einen schönen Gruß aus Erfurt

Bernhard

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

garnicht so schlecht, die Idee.
Muß ich nur aufpassen, sonst steht das Ding plötzlich auf -1 und es muß 
erst einer reinkommen, damit die Wohnung leer wird...

Gruß aus Berlin
Michael

Autor: Bernhard S. (bernhard)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@alle

hab dieses "alte" und etwas "verstaubte" Projekt mal wieder 
"ausgegraben", werde es bei Gelegenheit auf einen ATmega1284P (16k SRAM 
als Bildspeicher) umschreiben.


Bernhard

: Bearbeitet durch User
Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

: Bearbeitet durch User

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.