mikrocontroller.net

Forum: Projekte & Code ATMega32 16 MHz PAL mit Farbe ohne externen Chip


Autor: Christian Berger (casandro) Flattr this
Datum:
Angehängte Dateien:

Bewertung
4 lesenswert
nicht lesenswert
Hier eine kleine Idee die ich letzte Woche hatte. Ein simpler 
Testmustergenerator der mit einem ATMega32 mit 16MHz ein echtes PAL Bild 
ausgibt.

Zum ausprobieren einfach einen simplen 5-Bit D/A-Wandler an Port A dran. 
Das ganze ist natürlich noch überhaupt nicht optimiert.

Fotos kommen so bald meine Kamera wieder Saft hat.

Autor: Christian Berger (casandro) Flattr this
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier ist ein Telefunken PALcolor Farbfernsehgerät mit dem Signal, sowie 
ein chinesischer Monitor mit Colorast Einstellung.

Zum Inhalt des Testmusters.
Das Gitter ist für Geometrie, braucht man heute nicht mehr wirklich oft.
Die Farbbalken sind nach EBU Norm mit 75% Helligkeit.
Die Grauflächen sind für die Linearität
Dann kommt die Bildmitte, immer wieder ein beliebter Hingucker.
Dann kommt ein Multiburst mit 1 MHz, 2MHz, 3MHz, 4 MHz, 4,43 MHz und 
4,89 MHz. Die letzten 3 Muster sind praktisch wenn man bestimmen will 
wie symmetrisch der Frequenzgang des Filters für die Farbe ist. 4 MHz 
und 4,89 MHz liegen gleich weit weg vom Träger und sollten somit 
ähnliche Cross Colour Störungen hervorrufen.

Das Signal ist natürlich noch keinesfalls normgerecht, aber gut genug 
dass zumindest meine beiden Geräte was damit anfangen können. Aber es 
ist schon erstaunlich was man mit so wenig machen kann.

Autor: Christian Berger (casandro) Flattr this
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Neue Version, jetzt mit 16 Zeichen Text.
Einfach über die serielle Schnittstelle mit 9600 bps schicken. Alle 
Zeichen <14 schicken den Cursor nach links. Geht man über den Rand 
hinaus, fängt er vorne wieder an.

Das dürfte grob jetzt am oberen Rand dessen liegen was der Controller 
diesbezüglich kann. Man kann vielleicht noch ein paar Kilobyte Speicher 
einsparen, aber für neue Zeilen in Farbe reicht das nicht wirklich.

Autor: Christian Berger (casandro) Flattr this
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier jetzt die Fotos.

Der Text wird übrigens am MOSI ausgegeben.

Autor: -y-0-y- (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Christian,
ein durchaus interessantes Projekt. Vor 20 Jahren hätte ich das sofort 
nachgebaut. Zu der Zeit habe ich FFS repariert. Aber das ist Geschichte.

2 Bitten:

a) Welches Pascal hast Du für den AVR benutzt?

b) Würdest Du bitte wenigstens eine Handskizze des Schaltplans als PDF 
anfügen? Danke.

Viele Grüße Herbert

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
a) keines. Die Pascalprogramme erzeugen Assemblercode. Als 
Pascal-Compiler habe ich den freepascal Compiler verwendet.

b) Mach ich so bald ich daheim bin.

Autor: Christian Berger (casandro) Flattr this
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier ist der Schaltplan. Die Werte sind hier gerechnet. Ich habe den R2R 
Wandler mit 120 und 240 Ohm aufgebaut. Dann stimmen aber die Pegel nicht 
was aber trotzdem funktioniert. R6 müsste ich noch bestimmen. Er müsste 
den Ausgangspegel um 0.7 V hochziehen.

R13 habe ich in der Praxis noch nicht ausprobiert. Ich habe aber noch 
das Problem, dass die Texteinblendung (SPI) nach dem Poweron Reset nicht 
funktioniert, nach einem normalen Reset aber schon.

Zur Software:
signalerzeugung/makesignals (Pascal) erzeugt die Daten für die Zeilen 
welche in samples.inc gespeichert werden.
makeimagecode (Pascal) erzeugt die Datei image.inc aus der Datei 
testimage.txt in der drin steht welche Zeilen man wo haben will. Das 
Programm kümmert sich, zur Zeit, auch darum, dass die richtigen Phasen 
ausgegeben werden.

generator.asm ist das eigentliche Assemblerprogramm.
seriell.inc sind die Routinen für die serielle Schnittstelle. Diese 
werden über ein Delay immer dann aufgerufen, wenn grad mal Zeit ist.

samples.inc enthält die von makesignals erzeugten Zeilen. Diese werden 
durch delays RLE-kodiert und belegen somit weniger Platz.

In meiner lokalen Version ist jetzt auch ein Zeilenpaar mit Abwechselnd 
U+- und V+- drin um Pal-Decoder zu testen. Ich hoffe durch Optimierungen 
jetzt im Urlaub auch noch ein zweites Zeilenpaar zu schaffen, dann sieht 
das noch mehr nach FuBK aus.

Autor: Christian Berger (casandro) Flattr this
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier ist die aktuelle Version. Einiges hat sich geändert. Es gibt jetzt 
eine Tabelle namens "image" welche ein Byte pro Bildzeile enthält. Diese 
Tabelle wird mit Hilfe des Programms "makeimagecode" erstellt. Der 
Inhalt $ff bedeutet dass wieder am Anfang angefangen wird.

Der Zähler linecounter zählt von 0-3 durch. Je nach Zählerstellung wird 
die entsprechende Zeilenroutine aufgerufen. Das ist wichtig für die 
Bursts.

Autor: Christian Berger (casandro) Flattr this
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier noch das Foto. Im Code gab es ein noch ein kleines Problem mit der 
seriellen Schnittstelle. Die wird während Delays abgehandelt.

Das aussehen kann man über die Datei testimage.txt ändern.

Autor: Christian Berger (casandro) Flattr this
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier die aktuelle Version. Das Bild ist besser und man kann jetzt den 
Anfangstext in der generator.asm einstellen.

Was jetzt neu ist, ist dass das Farbsignal gefiltert ist, und auch ein 
Dithering das Quantisierungsrauschen versteckt. Das muss ich eventuell 
noch mal optimieren.

Autor: Uwe S. (de0508)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Christian,

Danke, werde ich mal testen.

Pascal ist lange bei mir her, wo gibts denn den Compiler ?

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich nehme da den Freepascal Compiler für die Programme, die die Signale 
berechnen. Den gibts unter Freepascal.org
ggf. musst Du die Datei "macheinfach.sh" für Dein Betriebssystem 
abändern.

Der Rest ist ganz einfach AVR Assembler, kompiliert mit dem AVRA.

Ich sollte vielleicht wirklich mal einen Artikel darüber schreiben.

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja, wenn Du das nur mal ausprobieren willst, es gibt da die Datei 
generator.hex. Oder Du assembelst einfach die generator.asm

Autor: Uwe S. (de0508)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen Christian,

ich hatte erst nach meiner Nachricht mir das ZIP File angesehen und dann 
auch die Compiler/ Assembler unter Linux/ Ubuntu ausgemacht.

Das System nutzte ich auch - danke.

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Marek N. (bruderm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sehr schön, gefällt mir sehr!

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke. Ich habe jetzt den Artikel noch erweitert. Auch mit ein wenig 
Ausblick.

Man könnte beispielsweise noch mehr Bilder machen. Beispielsweise ein 
Gittertestbild, oder auch einen Konsolenmodus mit 40x25 Zeichen oder so.

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wäre noch mit einem Kreis?

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kreise sind im Fernsehen immer schwierig zu machen. Dadurch dass ich ja 
die Zeilen abspeichere könnte ich keine Zeilen neu verwenden.

Ich könnte aber hypothetisch die Zeilen in mehrere Teile unterteilen, so 
dass ich links und rechts jeweils einen unbunten Anteil habe in dem sich 
auch der Kreis befindet. Der sollte dann nicht so viel Platz im Flash 
brauchen.

Vielleicht wenn ich das mal neu implementiere. Muss ich mir mal 
überlegen.

Autor: Bastian U. (baschdi1649)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe das Projekt auch nachgebaut, jedoch keine passende Widerstände.
Deshalb bin ich hingegangen und habe z.B. für die 375 Ohm Widerstände 2 
Widerstände in Reihe geschaltet. In meinem Fall wären das 360 Ohm und 15 
Ohm, ergibt zusammen 375 Ohm.
Das habe ich mit allen so gemacht, bis außer R13 mit 10 kOhm.
Den Atmega32 hab ich mit der "gerator.hex" beschrieben und die 
entsprechende Fuse-Bits für das 16Mhz Quarz eingestellt. Das Quarz 
schwingt auch, da ich im Betrieb an XTAL1 ungefähr die Hälfte von den 5v 
Vcc habe.
Aber ich bekomme einfach kein Fernsehbild hin. Man kann lediglich ein 
Flimmern erkennen (im Anhang zu sehen).
Das seltsame ist, dass ich das nur an der TV-Karte sehe. Am Fernseher 
war das Bild Schwarz.
Weiß vllt jemand von euch woran das liegt?

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also an den Widerständen liegt es höchst wahrscheinlich nicht. So weit 
wie ich Dich verstanden habe hast Du kein Oszilloskop zur Verfügung.

Miss vielleicht mal an PA0-PA4, da solle überall so grob die halbe 
Versorgungsspannung herauskommen. Auf PB5 fast die volle 
Versorgungsspannung.

Ich vermute ja, dass Dein Quarz trotzdem nicht richtig schwingt.

Das das Bild unterschiedlich aussieht ist normal, da Du ja 
wahrscheinlich korrektes Videosignal hast.

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In den letzten Satz bitte "kein" einfügen.

Autor: Bastian U. (baschdi1649)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie du schon vermutet hast, besitze ich kein Oszilloskop. Könnte man 
damit nachmessen ob der µC schwingt?
Ich habe jetzt mal die Messungen durchgeführt und die stimmen gar nicht 
mit den von dir vorgegebenen Werten überein:

No  DC/AC  Value  Unit
PB.5  DC  0.8620  V
PA.0  DC  0.0430  V
PA.1  DC  0.0746  V
PA.2  DC  4.872  V
PA.3  DC  4.878  V
PA.4  DC  4.822  V
PA.5  DC  4.990  V
PA.6  DC  0.7600  V
PA.7  DC  4.995  V
AREF  DC  0.7344  V
GND  DC  0.0000  V
AVCC  DC  5.025  V
XTAL2  DC  2.559  V
XTAL1  DC  2.393  V

Ich habe auch hier im Board gelesen, dass der Quarz vllt mit einem 
Widerstand von OC2 nach +5V schwingt. Das hat bei mir jedoch auch keinen 
Erfolg gebracht. Ich habe einen 18 kOhm Widerstand verwendet. Es hieß 
man sollte einen Widerstand von 15 bis 22 kOhm verwenden.

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, die Spannungen schauen alle sehr merkwürdig aus.


Leg mal /Reset mit einem Widerstand auf die positive 
Versorgungsspannung. Vielleicht ist er nur einfach ständig ge-resetet.

Hast Du eigentlich PB.5 getrennt als Du das Teil programmiert hast? Wenn 
das noch angeschlossen ist, kann der IC in der Regel nicht programmiert 
werden.

Autor: Bastian U. (baschdi1649)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
beim Programmieren verwende ich immer das myMultiProg MK1-Board. Ob da 
PB.5 anliegt, muss ich später mal schauen. Auch der Tipp mit Reset 
probiere ich heute Abend mal aus.

Autor: Koi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

@Christian Berger:
"R6 müsste ich noch bestimmen." steht an einer Stelle.
Ich habe aber - sofern ich keine Stelle übersehen habe - weder hier im 
Thread, noch im Artikel gelesen, welchen Wert R6 nun haben soll.
Wie groß soll R6 denn sein?

@Bastian Urschel:
PB5 = MOSI und ist sowohl zum Programmieren, als auch für die Funktion 
der Schaltung.
Wie groß ist bei Dir R6?

@Christian Berger:
Gibt es einen sinnvollen Grund, MOSI/PB5 zu verwenden
(ich habe den Soucecode jetzt nicht komplett durchgesehen)?
Wenn man genügend Pins hat, die eine bestimmte Funktion erfüllen können, 
sollten die Pins MOSI, MISO, SCK nicht gerade verwendet werden.
Manche Programmieradapter haben nicht genügend Leistung, um dann noch in 
der Schaltung zu programmieren.

@Bastian Urschel:
Was sagt denn die Programmer Software beim Verify?

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK R6 hat bei mir glaube ich 185 Ohm oder so, der Wert ist unkritisch.

Der Widerstand hängt an MOSI, damit der SPI die Bits raus schieben kann. 
Das ist nur für die Texteinblendung notwendig. Wenn man keinen Text 
haben will, dann kann man den Widerstand auch raus lassen.

Ohne SPI würden die Zeichen breiter werden, da man dann manuell schieben 
müsste. Da man vor und nach dem Text nur bedingt Zeit hat, wird das 
relativ aufwändig.

Das Problem ließe sich übrigens sauber lösen, in dem man ein Logikgatter 
als Buffer verwendet.

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also um es noch mal deutlich zu sagen, R6 kann man auch raus lassen, das 
ist sinnvoll um die Schaltung programmieren zu können. Der einzige 
Unterschied ist, dass man dann keine Texteinblendung haben kann.

Autor: Bastian U. (baschdi1649)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Christian Berger:
Die Idee mit dem Reset hat nicht funktioniert. Ich habe einen 10 kOhm 
Widerstand verwendet. Beim Programmieren, nehme ich den µC aus der 
Schaltung heraus und setze ihn auf das oben genannte Programmier-Board. 
Ist dieser Vorgang richtig, oder muss ich in der Schaltung den µC 
Programmieren?

@Koi:
Den R6 habe ich nicht eingebaut. Wie Christian Berger meinte, ist dieser 
Widerstand nicht zwingend notwendig.
Als Software habe ich die ganze Zeit "Basecom-AVR" Software von MCS 
Electronics verwendet. Dort kann man auf "Manuell Programmieren" gehen 
und dann die hex datei in den Buffer laden gefolgt vom Beschreiben des 
µC.
Dann habe ich die Software "myAVR Workpad Plus" Demo verwendet. Dort 
wird nach dem Brennen angezeigt, dass alles Ok war.

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, den extern zu programmieren passt schon. Setzt doch mal die Fuses 
auf den internen RC-Oszillator. Dann läuft er zwar nur mit 8 MHz, das 
sollte aber mal zum probieren reichen. Auf dem Fernsehgerät solltest Du 
damit zumindest ein Geflimmer bekommen, vielleicht sogar schon ein 
kaputtes Bild.

Hast Du vielleicht ein Radio welches Du auf 16 MHz SSB einstellen 
kannst? Da solltest Du dann das Pfeifen des Oszillators hören, wenn Du 
ein Stück Draht an den Quarz machst.

Autor: Bastian U. (baschdi1649)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es ist noch hinzuzufügen, dass wenn ich die Spannung an die Schaltung 
anlege, der Bildschirm ganz kurz weiß aufleuchtet und dann direkt danach 
weiterhin schwarz ist.

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also das kurze Aufblitzen muss nichts bedeuten.

Autor: Bastian U. (baschdi1649)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe die Fusebits auf 100100 gesetzt. Also Int.RC Osc. 8MHz; Startup 
time: 6CK + 64ms.
Ich sehe aber nach wie vor kein Fernsehbild.

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK was kommt dann, kommt Geflimmere? Kannst Du vielleicht einen 
Kopfhörer an den Ausgang schließen? Du solltest ein Brummen hören.

Autor: Bastian U. (baschdi1649)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kein Flimmern zu sehen. Ich erkenne ledeglich schräge schmale Balken 
welche sich in unabhängigen Zeitabständen an die Linke 
Bildschirmoberkante bewegen, dann kurz stehenbleiben und sich dann 
schnell nach unten an die rechte Bildschirmunterkante bewegen. Dabei 
bleiben sie manchmal stehen. Manchmal werden sie so schnell, dass sie 
verschwinden und nach einer Zeit wieder auftauchen.
Wenn ich den Kopfhörer an die Anschlussklemmen halte, hört man beim 
anlegen ein lautes Klopfen und ganz leise ein leichtes Brummen.

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, also ich bin am Ende meiner Weisheit angelangt. Ich vermute, dass 
das Programm mit dem Du das brennst irgendwas ungewöhnlich macht. Wie 
lange dauert denn das Flashen? Es sollte so grob eine halbe Minute 
dauern. Also länger als ein paar Sekunden.

Autor: Bastian U. (baschdi1649)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo so lange dauert es bei mir auch.
Da sind ja 2 hex Dateien. Nämlich "generator.eep.hex" und die 
"generator.hex".
Ich verwende die "generator.hex". Das ist doch die richtige oder?
Ansonsten würde ich sagen, ist vllt der µC defekt.
Noch ne Frage:
Die eingezeichnete Widerstände, wo gibts die zu kaufen, da diese ja 
nicht unter die E-12 Reihe fallen? Ich habe mich im I-net schon dumm und 
dämlich gesucht.

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, die ohne eep ist richtig, die andere braucht man nicht.

Die genauen Werte der Widerstände sind egal, das ist halt ein R-2R 
D/A-Wandler. Da könnte man auch einen fertigen IC verwenden. Das Design 
ist eine simple Skizze.

Wenn die Werte ungenau wird, hat man halt mehr oder weniger 
Quantisierungsrauschen.

Es kann auch sein, dass der Mikrocontroller kaputt ist.

Autor: Bastian U. (baschdi1649)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn der kaputt wäre, wäre das ziemlich blöd, da ich das Teil extra für 
dieses Projekt (neu!) gekauft habe.
Wie kann man so ein Teil auf defekte überprüfen?
Ansonsten kaufe ich demnächst mal einen neuen und werde mal schauen, ob 
der funktioniert und werde mich dann noch mal melden.
Vielen Dank für eure superschnelle Mithilfe!

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bastian Urschel schrieb:
> Wenn der kaputt wäre, wäre das ziemlich blöd, da ich das Teil extra für
> dieses Projekt (neu!) gekauft habe.
> Wie kann man so ein Teil auf defekte überprüfen?

Probier mal so ein ganz simples Blink-Programm da drauf.

Autor: Bastian U. (baschdi1649)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich werd verrückt! Der Atmega32 funktioniert beim Blinkprogramm. Warum 
funktioniert der bei dem andern net?!

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Assemble die generator.asm-Datei mal selber.

Ich muss sagen, dass ich mich zugegeben mit Deiner etwas exotischen 
Software nicht auskenne. Ich nehme halt einfach avra als Assembler und 
avrdude als Flasher.

Autor: Bastian U. (baschdi1649)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bin momentan sehr im Stress. Deshalb werde ich den Vorschlag iergendwann 
mal durchführen. Vielen Dank!

Autor: Doc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

versuche mich auch grad mit der Schaltung...
das einzige was mir fehlt sind die richtigen Fuses für den Atmega.
Wär es möglich, die mal hier zu posten bzw. in den Artikel mit 
reinzunehmen?

Vielen Dank
Chris

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So weit wie ich weiß ganz einfach auf externen Quarz 16 MHz, der Rest 
dürfte ziemlich egal sein. Natürlich sollte man den ISP nicht 
abschalten, sonst kann man das Teil nicht mehr neu flashen.

Da ist übrigens noch ein Fehler im Signal. Ich habe aber eh vor das mal 
neu zu machen. Vermutlich dann mit einem ATMega64 mit 20 MHz.

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich finde das Projekt ebenfalls spannend und würde es mal nachbauen 
wollen. Hat jemand den Code mal in C konvertiert??

Gruß Martin

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, die neue Version wird nur noch in der ISR zeitkritisch sein. Das 
Hauptprogramm kann dann in jeder beliebigen Sprache geschrieben sein.

Durch die höhere Abtastrate von 20 MHz kann man dann auch besseres 
Dithering machen.

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Chiristian,

wann wird denn die neue Version soweit sein?

Gruß Martin

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So bald ich mal gleichzeitig Zeit und Lust habe, und mir über die Detail 
im Klaren bin. :)

Autor: Doc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

danke für die prompte Antwort.
Ich kann berichten, die Schaltung funktionier einwandfrei.
Testbild sind sowhl auf auf dem Fernseher als auch auf dem Oszi sauber 
zu erkennen. An den Pegeln für werde ich noch etwas arbeiten. Die sind 
mir noch ein klein wenig zu niedrig. Sollte aber nicht das Problem sein.

Das einzige was ich noch nicht verstanden habe, wie soll das mit der 
seriellen Texteingabe funktionieren? Irgendwie verstehe ich es noch 
nicht ganz.

Viele Grüße
Chris

Autor: Doc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

nochmal ich...
zugegeben bin im programmieren kein Held!

Hab versucht, die asm-Dateien nochmal zu assemblen.
Da bekomme ich dann folgende Fehlermeldung:

C:\Dokumente und Einstellungen\Home\Eigene Dateien\AVR-Projekte\PAL 
Testbild\m32def.inc(364): error: Attempt to redefine keyword 'or'

Könnte mir da jemand helfen?

Grüße
Chris

Autor: Bastian U. (baschdi1649)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Doc,
darf ich fragen wie du bei der ganzen Sache vorgegangen bist?
Bei mir klappt das Projekt immer noch nicht.
Hab aber noch nicht alles ausprobiert.

gruß baschdi

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ahh, hast Du so einen seltsamen Assembler. Ich benutze ganz einfach den 
avra.

Hast Du da VMS? Davon habe ich quasi keine Ahnung. Ich bin eher der 
unixoide Typ.

Autor: Bastian U. (baschdi1649)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich probiere das mal mit avra aus, dauert aber noch ein paar Stunden, 
weil die Linuxinstallation gerade läuft.
Das heißt also du rufst einfach das Shell Skript macheinfach.sh auf und 
dann läuft alles automatisch ab?

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, das kompiliert auch die Pascalprogramme mit dem Freepascal Compiler. 
Nur brennen tut es nicht.

Autor: Bastian U. (baschdi1649)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und die Fusebits müssen dann auch noch gesetzt werden oder?

Autor: Doc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

keine Ahnung ob es einfach Glück ist oder Fehlerbeseitigung der 
ahnungslosen Art...

Ich habe einfach die benannte Zeile:

> m32def.inc(364): error: Attempt to redefine keyword 'or'

als Textkomponente mittels ";" markiert und schon lief der Assembler 
ohne Fehler durch und fertig :)

Wahrscheinlich schlagen die Profi-Programmierer jetzt die Hände überm 
Kopf zusammen...aber egal, es läuft trotzdem noch.

Grüße
Christian

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also die Fusebits wie schon gesagt so einstellen, das er vom externen 
Quarz mit 16MHz läuft.

Das Auskommentieren ist schon OK.

Autor: Bastian U. (baschdi1649)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, ich wollte die macheinfach.sh ausführen aber dann kommt immer
"macheinfach.sh: 2: ppcx64: not found".
Woran kann das liegen? fpc und avra habe ich bereits installiert.

Gruß Baschdi

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ahh Du hast keine x64 Architektur, ersetze da einfach ppcx64 durch 
ppc386

Autor: Bastian U. (baschdi1649)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achso! Da hätte ich auch drauf kommen können ;)
Also es wurden keine Fehler zurrückgegeben.
Das bedeutet also, dass ich jetzt die Datei "generator.hex" auf den 
ATmega32 flashen kann?

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sollte eigentlich funktionieren.

Autor: Bastian U. (baschdi1649)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was muss ich eigentlich bei avrdude alles als Parameter angeben?
Ich verwende mittlerweile ein Pollin Atmel-Evalutions-Board Version 
2.0.1 welches am COM1 angeschlossen ist.

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Boah, keine Ahnung.

Ich glaube, wenn meine Notizen richtig sind:

avrdude -p m32 -sponyser -P /dev/ttyS0 -U lfuse:w:0x7f:m -U 
hfuse:w:0x99:m

Autor: Bastian U. (baschdi1649)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe den ATmega32 jetzt mal geflasht und es funktioniert trotzdem 
nicht.
Ich glaube es liegt jetzt definitiv am ATmega.
Ich werde demnächst dann mal einen neuen kaufen.
Vielen Dank nochmal für eure Mithilfe!

Autor: Doc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe ja nun erfolgreich diese Schaltung nachgebaut und sie läuft bis 
einwandfrei bis auf eine Kleinigkeit! Deshalb muss ich doch nochmal um 
Rat fragen.

Immer beim Einschalten des Schaltung tritt das Problem auf, daß der Text 
nicht angezeigt wird. Bei einem erneuten aus und wieder einschalten wird 
der Text dann dargestellt. In einigen Fällen wird der Text aber nicht 
korrekt dargestellt, sondern durch Maschinencodezeichen ersetzt.
Bei einem Atmega (hab die Schaltung mehrfach konstruiert) wird der Text 
garnicht mehr dargestellt. Alle aufgebauten Schaltungen und Programme 
sind absolut identisch.

Hat jemand eine Idee, woran das liegen könnte?

Vielen Dank
Chris

Autor: Frank M. (ukw) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Doc schrieb:
> Immer beim Einschalten des Schaltung tritt das Problem auf, daß der Text
> nicht angezeigt wird. Bei einem erneuten aus und wieder einschalten wird
> der Text dann dargestellt. In einigen Fällen wird der Text aber nicht
> korrekt dargestellt, sondern durch Maschinencodezeichen ersetzt.

Im Schaltbild fehlen die Abblockkondensatoren und die RESET-Beschaltung. 
Das solltest Du nachrüsten.

Autor: Doc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Frank,

danke für die Antwort, aber an diese grundlegenden Dinge der Schaltung 
habe ich gedacht. 100nF Kondensatoren, da wo sie hingehören und die 10k 
für den Reset sind auch vorhanden.
Das Testbild wird ja nach dem Einschalten auch ohne Probleme 
dargestellt, nur halt ohne Text. Ich denke eher, daß das Problem beim 
auslesen des Registers für den Text liegt, kann mir aber nicht erklären 
wo.

Chris

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ahh das liegt dann noch am SPI. Ich glaube Du musst da noch einen Pin 
auf Masse legen damit der SPI funktioniert. Das steht im Datenblatt des 
Controllers.

Autor: Doc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Christian,

also wenn ich das im Manual jetzt richtig verstanden habe, muss der PB4 
(Pin5/SS) nach Masse?

Grüße
Chris

Autor: Doc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok,

dann setz ich gleich einen nach.
Ich habe nur den Standarttext im Programm und auch nur der soll 
angezeigt werden. Wenn der Pin5 jetzt nach Masse gelegt wird ist der 
Standarttext weg und der Atmega wartet dann wohl auf eine Eingabe.

Frage, wie kann man dem SPI beibringen sich ruhig zu verhalten?

Chris

Autor: Doc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab da noch was probiert...

Im Manual steht, wenn der SS auf High gesetzt wird, dann sind alle Pin's 
ausser MISO Inputs. Auch ein einmaliges auf HIGH setzen des Pin5 führt 
einen Reset der SPI Logik aus.

Schlußfolgernd habe ich den Pin5 (SS) über 10k an +5V gelegt und siehe 
da, der gespeicherte Text wird nun bei jedem Einschalte sofort 
angezeigt.

Hat jemand noch eine bessere Idee?

Grüße
Chris

Autor: RGB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
und habe eben die letzten Posts mal gelesen ...
Was steht im 7. Posting im Schaltplan dazu? PIN5 über 10K an +5Volt.
Wird wohl seinen Grund haben, auch wenn ich mich nicht mit der Software 
auseinandergesetzt habe.
Viele Grüße und ein schönes Wochenende

Autor: Doc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke RGB für den Hinweis steht aber nicht im Text sondern sieht man nur 
in der Grafik. Die hab ich mir offen gestanden nicht so genau angesehen 
hatte.

Damit wären ja alle Fragen beantwortet.

Autor: JHO (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
wäre es möglich ein fertiges flash image zur Verfügung zu stellen?
Dies würde ungemein helfen.

Grüsse

Autor: -GND- (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
mal in die Dateien reingeschaut (am Anfang)? 
testbild2_2011_08_14.tar.gz

Autor: JHO (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So die Schaltung wurde erfolgreich nachgebaut.
Jetzt muss noch ein MAX232 aufgebaut werden um die Texteingabe zu 
realisieren.
Was für einen Logic Baustein kann man als DA verwenden, der die Video 
Pegel stabil hält?
Korrekt wären 0,7 Vpp
Aktuell kommen bei mir nur 0,45 Volt raus und das Bild rauscht etwas.

Grüsse

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da solltest Du quasi jeden D/A-Wandler nehmen können, der einen 
parallelen Eingang hat.

http://www.mikrocontroller.net/articles/Standardba...

Wenn Du es ganz gut haben willst, kannst Du auch noch einen Tiefpass 5 
MHz dahinter setzen.

Da ist eh noch ein Fehler drin, auf manchen Fernsehgeräten gibts kein 
Farbbild.

Autor: H.Hackmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kleiner Tip:
Der Grund für die manchmal fehlende Farbe ist vermutlich folgender:
Bei PAL muss die Farbträgerfrequenz sehr genau sein. Erlaubt sind +/-300 
Hz.
In der Praxis schaffen Fernseher etwa +/- 1kHz. Mit einem 
Grundwellenquarz
muss man schon die Beschaltung optimieren, sonst wird das nichts.

Autor: JHO (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Seit heute Abend zeigt der gleiche Monitor nur noch ein S/W Bild an, 
komisch.
Jemand eine Idee?
Hab eigentlich nur den MAX232 dazu gebaut.
Das Serielle eingeben der Textzeile geht leider nicht. Mein PuTTY wird 
voll geschrieben und am Monitor kommen in der Zeile alles mögliche an 
Buchstaben...

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bekanntes Problem (mit der Farbe). ich glaub die Zeilen sind zu lang 
oder zu kurz. Dass das vorher geklappt hat war mehr oder weniger Zufall.

Hast Du Deinen Terminmalemulator auf 9600 bps 8 bit eingestellt?

Autor: Bastian U. (baschdi1649)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich bin endlich nochmal dazu gekommen die Schaltung nachzubauen.
Das Resultat: sie funktioniert. Im Grunde habe ich nichts geändert. 
Später ist mir jedoch aufgefallen, dass ich statt der ersten Schaltung 
einen von der Bauform höheren Quarz und 2 Keramikkondensatoren von einer 
anderen Bestellung verwendet habe.

Es muss also an dem Quarz oder an den 22pf Kondensatoren gelegen haben.
Danke für die nette Hilfe und das tolle Projekt.

Ich liebe es wenn ein Plan funktioniert ;)

Gruß
Bastian Urschel

Autor: Krach-Bumm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super Projekt, wie hast Du die Sync erzeugt? mit dem ASM- Code komme ich 
nicht ganz klar. Wie würde der Sync-Teil allein aussehen?

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Synchronsignale werden genau so erzeugt wie das Bild. Sprich mit OUT 
PORTA,r0

Autor: Krach-Bumm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Christian, ich hätte ja nicht gedacht das die Antwort so schnell 
kommt. Kann sein das ich mich falsch ausgedrückt habe, ich möchte alte 
analoge Videocameras mit einem Fernseher syncronisieren und hierfür mit 
dem Mega8 die H-Sycn, V-sync und C-sync erzeugen.
Da bin ich auf der Suche nach einem einfachen Programm(teil) dass das 
macht und von dem ich mir Tips zur Lösung bei meinem Problem verspreche 
bei dem ich nicht recht weiter komme.
Ich habe es mit den Timern versucht, aber das Signal ist nicht wie es 
sein sollte. Das Timing mit den Trabanten haut wohl nicht hin und der 
V-Sync zittert.
ASM verstehe ich nicht und somit mit klapt es nicht so ganz mit dem 
Verständnis des Programms.
Ich möchte es mit Bascom versuchen, da ich damit schon etwas für die 
Modelbahn programmiert habe und der MC auch noch für Tastenabfragen 
benutzt werden soll.
Leider kann ich nicht so gut englisch um das DB ganz zu verstehen und 
programmiere die Timer wohl falsch.
Ich brauche keine Zeichenausgabe oder Farbe, nur die einfachen Syncs 
damit die PLL in den Geräten gleich läuft.

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Brauchst Du dafür ein komplettest "Blackburst" Signal, oder reicht es 
auch ohne Farbe?

Autor: Krach-Bumm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich brauche eigentlich nur die H-Sync und V-Sync, bzw beide als C-Sync 
damit alle Pll auf den gleichen Takt sind.
Kann sogar sein, das es reicht wenn der H-Sync für/beim V-Sync auf low 
getastet wird.
Einen Bildinhalt benötige ich nicht, wenn es aber geht das Bild nach der 
halben Zeile von Schwarz auf Weis umzuschalten wäre es auch nicht 
schlecht, dann kann ich den Monitor mit testen.
Der Bildinhalt sollte aber abschaltbar sein (aus einen eigenen Pin 
kommen) Diese Funktion ist aber nicht wichtig, die Syncfunktion die ich 
dann in mein Bascom Restprogramm einbauen kann ist das was ich brauche 
und an dem ich hängen bleibe.
Ich habe noch die Analoge Fernsehtechnik gelernt, digital kam erst als 
ich nicht mehr in dem Beruf gearbeitet habe und die MC in den Kisten 
noch später.
Da die meiste Literatur hierzu auf "Neu Deutsch" ist, habe ich da so 
meine Probleme.
Basicprogramme habe ich schon öffter mal geschrieben, als die PC noch 
unter Dos liefen.
Da ich mich mal geärgert habe weil ich eine Videokassette nicht 
überspielen konnte wegen Nagra, habe ich mich mal mit dieser Technik 
beschäftig und mir ein kleines Gerät gebaut dass das Störsignal aus dem 
Videosignal entfernt (das war als es noch erlaubt war...)
Das war mit TTL und C-Mosschaltern, wenn es dem Mega8 schon gegeben 
hätte wäre es sicher einfacher gewesen.
Heute machen die Brüder den Schutz ja im digitalen Datenstrom, ist 
komplizierter und ja auch nicht mehr erlaubt (ausser für Testzwecke?)
Wenn Du mir bei dem Syncproblem auf die Sprünge helfen könntest, wäre 
das Super.

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Schau mal hier:
Beitrag "AVR ASCII Video Terminal  - 40 x 25  - BAS Signal"

Da kommt das Synchronsignal getrennt über einen anderen Pin als das 
Bildsignal.

Autor: Krach-Bumm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe ich mir eben angeschaut..schön lang sicher wegen dem Terminalteil. 
Problem...ASM, welcher Teil ist für die Syns ? in der Beschreibung schon 
gefunden, aber da wird ja auch das Terminalprg. bedient und wie "trenne" 
ich den Syncteil so vom Rest das ich ihn in Bascom reinbekomme.
Es werden ja viel Varialen gesetzt und im Programm hin und her 
gesprungen, da blicke ich nicht durch was ich rauswerfen kann um nur die 
für die Syncs nötigen Befehle drinn zu lassen. Ich brauch doch nur die 
Syncs, kannst Du nicht den Teil deines Prg. der die Syncs erzeugt mal 
hier reinstellen?

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Programm da drüben ist nicht von mir, und bei meinem kann man das 
nicht wirklich brauchbar trennen.

Autor: Krach-Bumm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na dann, list hier vielleicht einer mit der mir weiterhelfen kann?.

Autor: Krach-Bumm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na hier liest wohl keiner mehr...

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem ist, dass Du Dein Problem nicht verständlich formuliert 
hast. Du scheinst, wie so viele hier, Dein Problem nicht verstanden zu 
haben.

Wenn Du analoge Fernsehtechnik kennst, dann brauchst Du doch nur einen 
Synchrongenerator schreiben. Das geht mit den Timern im PWM-Modus ganz 
gut. Oder Du nimmst einen Zähler und ein paar Gatter.

Autor: Krach-Bumm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian Berger schrieb:
> Wenn Du analoge Fernsehtechnik kennst, dann brauchst Du doch nur einen
> Synchrongenerator schreiben. Das geht mit den Timern im PWM-Modus ganz
> gut. Oder Du nimmst einen Zähler und ein paar Gatter.

Genau da liegt das Problem, ich brauche nur einen Synchrongenerator, in 
Bascom geschrieben weil der Rest des Programms auch in Bascom ist, aber 
den bekomme ich nicht sauber programmiert.
Ich habe das Problem das ich den V-Sync. nicht stabil zum H-Sync. 
hinbekomme. Da ist immer ein Jitter und da durch kommt der Rest nicht 
zum Synchronisieren...
Die neue Schaltung soll nur mit dem MC arbeiten, ohne zus. Gatter. In 
der alten Schaltung bei der der Sync-Teil nicht mehr will ist das alles 
noch in TTL/CMOS gemacht, eben schon recht alt... Da es nur der 
Sync-Teil zu sein scheint der nicht mehr will, die anderen Signale 
werden sauber verarbeitet, möchte ich die alte Hardware wieder zum Leben 
erwecken. Der MC soll dann noch den Part einer Schalter und 
Spannungsüberwachung erledigen was jetz noch mit TTL und Komperator 
erfolgt.
Das Ganze soll halt auch kleiner werden, der Analogteil ist auf einer 
eigenen Platine die von dem Digitalteil gesteuert wird.

Diesen Teil des Prg habe ich schon einzeln getestet und das geht, nur 
der verflixte Sync will nicht gehen.
Für einen der sich mit dem MC gut auskennt ist es sicher einfach so was 
zu programmieren, für mich als "alter" Anfänger eben nicht, das zum 
"einfach nur".

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast das vermutlich mit Schleifen in Bascom gemacht. So funktioniert 
das nicht. Du müsstest das mit Timern machen. Wie schon gesagt der 
PWM-Modus eignet sich dafür. Zum Beispiel kannst Du zum Anfang jeder 
Zeile eine ISR aufrufen lassen, die dann den PWM für diese Zeile setzt, 
meistens muss der da nichts machen, nur bei der vertikalen 
Synchronisation muss sich die ISR um die Trabanten kümmern.

Aber ich glaube Du bist da besser aufgehoben in dem Du 2 Mikrocontroller 
nimmst.

Wenn Du aber ohne eigene Arbeit eine fertige Lösung haben willst, die 
genau Deinen Anforderungen entspricht, gibts hier bestimmt viele die so 
was machen. Das kostet halt dann Geld.

Autor: Krach-Bumm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich mach das schon mit den PWM, ISR und Timer. Die Zeiten hauen auch 
hin, nur die vertikalen Syncs bekomme ich nicht ohne Versatzt zu den 
H-Sync hin. Da ist immer ein, sagen wir mal "Springen" in der vertikalen 
Austastlücke. Die Trabanten sind nicht so wichtig, das habe ich schon 
mit einem alten Sinclair getestet der auch nur einfache Syncs erzeugt.
Ich habe hier auch schon Lösungen gefunden die laufen und über die RS232 
Zeichen auf dem Schirm darstellen.
Wenn ich da mal durchblicke werde ich schon den Syncteil verstehen und 
in Bascom hinbekommen.
Danke für Deine Tips.

Autor: Tim    (cpldcpu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal eine ganz dumme Frage: Warum funktioniert das eigentlich mit einem 
16 Mhz Quarz? Die Frequenz des Farbträgersignals ist doch 4.43 MHz? Das 
passt irgendwie nicht zusammen.

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Zeile wird schon vorher berechnet, da ist es relativ wurscht wie das 
genaue Verhältnis von Abtastrate zu Frequenz ist.

Autor: Tim    (cpldcpu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian Berger schrieb:
> Die Zeile wird schon vorher berechnet, da ist es relativ wurscht wie das
> genaue Verhältnis von Abtastrate zu Frequenz ist.

Bei 16Mhz schaffst Du doch selbst im besten Fall kein zweifaches 
Oversampling. Das Aliasing muss schrecklich sein. Ich finde es 
erstaunlich, dass es funktioniert.

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klar, das Alisasing ist schlimm, aber durch die krummen Frequenzen 
verteilt sich das schon. Das Quantisierungsrauschen durch die 5 Bit ist 
deutlich höher.

Autor: Tim    (cpldcpu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Quantisierungsrauschen sollte im Bezug auf das Bild aber stationär 
sein, während das Aliasing wahrscheinlich für Flackern sorgt? Ich muss 
es wohl selbst einmal ausprobieren.

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, ich dithere ja, somit flackert das ein wenig, das ist aber nicht 
wirklich schlimm. Die Frequenzanteile über 5MHz sieht man eh nicht, 
evtl. kann man da auch einen Tiefpass dran bauen.

Autor: Tim    (cpldcpu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wofür ist denn dieses gewurschtel mit unterschiedlichen Burst-Frequenzen 
notwendig?
  mbburst(550,590,2e6);
  mbburst(600,640,3e6);
  mbburst(650,690,4e6);
  mbburst(700,740,4.443e6);
  mbburst(750,790,4.886e6);

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für die Multiburst Sequenz. 2 MHz, 3 MHz, 4 MHz, 4,443 MHz und 4,883 
MHz. Die 3 letzteren sind einmal 440 kHz unter der 
Farbunterträgerfrequenz, dann die Farbunterträgerfrequenz und dann 
darüber. Damit kann man gut feststellen ob der Kanal den Farbunterträger 
einseitig beschneidet.

Autor: Fragensteller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Wiki wird in Aussicht gestellt, dass ein "Downgrade" auf AT Mega 8 
erfolgen kann - was ist dazu erforderlich bzw. gibt es in die Richtung 
schon was?

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Leider nicht, bin in letzter Zeit noch nicht dazu gekommen.

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

Bewertung
0 lesenswert
nicht lesenswert
Christian, ein tolles Projekt, Respekt !

Hab mal die Schaltung aufgebaut, sie lief sofort.

Daraufhin untersuchte ich das PAL / FBAS Signal per Oszi und verglich es 
mit dem Ausgangssignal einer kleinen CMOS-CAM.

Der BURST sieht bei Dir etwas verwurschtelt aus, dennoch kommt mein
billig-Monitor gut damit zurecht.

Ich dachte immer, der BURST muss sehr sauber generiert werden, damit die 
TV-Geräte den Farbdecoder vernünftig synchronisieren können.

Kann es sein, dass die Qualtät des Burstes nicht von großer Bedeutung 
ist?

Bernhard


Anmerkung:


Das R2R Netzwerk bestückte ich mit 1k/2k Widerständen, desshalb stimmt 
der Pegel nicht ganz.

: Bearbeitet durch User
Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur der Anteil des Bursts bei der Farbunterträgerfrequenz ist relevant. 
Der kann durchaus ein wenig verzerrt sein, bzw auf anderen Frequenzen 
Rauschen haben. Es geht ja nur um die Phase.

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

Bewertung
0 lesenswert
nicht lesenswert
Dieses kleine Assemblerprogramm testet das R2R Netzwerk für dieses 
Projekt.

Es entstehen treppenförmige Sägezahnimpulse (s.Bild 
"R2R_SAeGEZAHN.jpg").

Gemessen wurde am Netzwerk mit 100/200 Ohm Widerständen (R12=39 Ohm und 
angeschlossenem Monitor).

  .
Bernhard

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

Bewertung
0 lesenswert
nicht lesenswert
Christian, ich bin untröstlich !

Dein BURST sieht doch relativ vernünftig aus (für einen 5-BIT 
DA-Wandler), Wie konnte mir dieser Fauxpas nur passieren?

Ganz einfach, ich hatte das FBAS Signal nicht am richtigen Punkt des R2R 
Netzwerkes abgegriffen.

Der R2R-Tester (s.oben) brachte die Wahrheit ans Licht, bzw. auf den 
Monitor.

Muss mich an dieser Stelle ganz offiziell und in aller Form bei Dir 
entschuldigen.


Bernhard

PS: Die beiden Bilder zeigen deutliche Farbunterschiede, es gibt eben 
billige und auch preiswerte Monitore.

Den weißabgleich habe ich versucht so optimal wie möglich an der CAM 
einzustellen.

: Bearbeitet durch User
Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, da ist sogar noch ein Bug in der Software, die Zeilen haben die 
falsche Länge, somit gibt es PAL-Dekoder die das Signal nicht als 
Farbsignal erkennen.

Autor: Dings (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Da fehlt noch die die Waschmaschine...

Autor: Kevin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Ich bin ein Noob in Pascal und habe es gerade geschafft den Code zu 
compilen und habe mich dann gefragt, ob man das Bild auch einfach 
abspeichern kann. Ist es möglich und wenn ja, was muss ich tun?
Danke im voraus

PS: Mein System läuft auf Ubuntu Linux!

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In die 32 Kilobytes passt kein Bild. Deshalb funktioniert das Programm 
auch mit einzelnen gespeicherten Zeilen.

Autor: Ronny Schneider (ronnysch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe meine ersten Gehversuche in Atmel programmieren mit Christians 
Anleitung hinbekommen. Es funktioniert. Ich wollte nun den Text mal 
ändern im Testbild, nur das bekomme ich nicht hin. Ich habe das Hexfile 
in Bascom geöffnet und es in den AVR programmiert.
Um den Text zu ändern wollte ich die .asm laden..Text ändern und das 
erzeugte hex File wieder zurückspielen. Leider bringt Bascom 33 
Fehlermeldungen im Error Fenster unten.
Geht das überhaupt auf diesem Weg? Wie gesagt ich habe heute die ersten 
11 Stunden in der Materie verbracht und freue mich das überhaupt das 
Testbild schon da ist.

Evt kann  mir jemand paar Tips geben.

Danke Ronny

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also mit Bascom kenne ich mich nicht aus. Idealerweise einfach den Text 
über die serielle Schnittstelle eingeben. Einfach 9600 bits pro Sekunde.

Autor: Ronny Schneider (ronnysch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Christian,

danke für deine schnelle Antwort. Also das mit Text ändern über die 
serielle Schnittstelle funktioniert. Aber ich möchte das Testbild nach 
Ausfall eines Videosignals (z.B. einer Überwachungskamera) automatisch 
(durch sync Dedector) einblenden lassen. Da der Atmega erst dann 
Spannung bekommt ist natürlich der alte Text wieder da.

Du benutzt feepascal, das Programm habe ich mal geladen, und werde heute 
Abend mal versuchen ob ich dort die .asm ändern kann.

MfG

Ronny

Autor: Bastian U. (baschdi1649)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Hallo Ronny,

du kannst in der Hexfile mit einem Hex-Editor die Stelle suchen, an der 
die Zeichenkette "FuBK-Testbild" oder so ähnlich auftaucht.
Ich meine, dass das relativ am Anfang des Files war.
An dieser Stelle kannst du einen beliebigen Text eingeben (Zeichenanzahl 
beachten).

Ich hatte das damals auch so auf die Schnelle gemacht.

Viele Grüße
Basti

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bastian U. schrieb:
> ...An dieser Stelle kannst du einen beliebigen Text eingeben (Zeichenanzahl
> beachten).

Ja ganz genau so gehts.

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi
Wenn ich noch was dazu fragen dürfte, ist das hier eine Schaltung für 
die S-Video Buchse? Also die gelbe Chinch?

Hab da so ein Problem von ner Punktmatrix auf S-Video wandeln zu wollen, 
kam durch Goolge hierher.

mfg ck

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.