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.
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
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
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 )
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
# 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
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
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?
Hallo Picht > Einspeisung Deines TV-Messgerätes über Terristischen Eingang. > Geht das? Ja, das funktioniert wunderbar. Na dann viel Spaß mit Deinem Projekt. Bernhard
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.
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.
@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
>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.
Hallo Bernhard, alles klar steht ja Oben so.
@???? 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.
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.
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.
@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.
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
Nein, mein Code macht genau dasselbe wie Bernhards, nur über einen anderen Weg. Du kannst also seinen oder meinen Code nehmen
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.
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.
@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
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
>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
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
@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
Die Vollgrafikversion: Beitrag "TV BILD AVR BAS FBAS VOLLGRAFIK 320x256 Kreise Linien Punkte ASCII Assembler Atmega1284P" Bernhard
:
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.