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


von Bernhard S. (bernhard)


Angehängte Dateien:

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.

von Vajk (Gast)


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

von Bernhard S. (bernhard)


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

von ajax (Gast)


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 )

von Bernhard S. (bernhard)


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

von ajax (Gast)


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

von Bernhard S. (bernhard)


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

von Picht Wigbert (Gast)


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?

von Bernhard S. (bernhard)


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

von ???? (Gast)


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.

von Picht Wigbert (Gast)


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.

von Bernhard S. (bernhard)


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

von Bernhard S. (bernhard)


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.

von Picht Wigbert (Gast)


Lesenswert?

Hallo Bernhard,
alles klar steht ja Oben so.

von Benedikt (Gast)


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.

von Picht Wigbert (Gast)


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.

von Picht Wigbert (Gast)


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.

von Benedikt (Gast)


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.

von Picht Wigbert (Gast)


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

von Benedikt (Gast)


Lesenswert?

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

von Picht Wigbert (Gast)


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.

von Picht Wigbert (Gast)


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.

von Bernhard S. (bernhard)


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

von Picht Wigbert (Gast)


Lesenswert?

Dank,
weiss ich erstmal bescheid

von Michael U. (Gast)


Angehängte Dateien:

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

von Bernhard S. (bernhard)


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

von Michael U. (Gast)


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

von Bernhard S. (bernhard)


Angehängte Dateien:

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
von Bernhard S. (bernhard)


Lesenswert?


: Bearbeitet durch User
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
Noch kein Account? Hier anmelden.