Salut, wir basteln gerade an einer digitalen Ansteuerung einer Bildröhre. Um dort ein Raster zu erzeugen, werden zwei Sägezahngeneratoren benötigt, einer für die horizontale und einer für die vertikale Ablenkung. Unser Wunsch ist nun, das ganze möglichst in einem weiten Frequenzbereich zu ermöglichen, so dass die Bildröhre (eine kleine Oszilloskopröhre) sowohl PAL (15.625 kHz/ 50Hz) als auch VGA und SVGA (38,5 kHz/ 60 Hz) verarbeitet. Das kann man analog mit Kondensatoren machen, aber dann wird die Amplitude von der Frequenz abhängig. Vor allem aber hat man immer ein Problem mit der Linearität. Also kamen wir auf die Idee, das ganze per MC und Widerstandsnetzwerk zu realisieren, siehe hier Beitrag "Einfacher R2R-DAC". Soweit ist das auch alles kein Problem. Für SVGA braucht man aber in horizontaler Richtung 1024 Linien (Pixel), also eine Auflösung von 10 Bit und das mit einer Aktualisierungsfrequenz von 40 MHz (38 kHz Takt und dazwischen 1024 Stufen). Nun kann man das mit höherwertigen MCs bewerkstelligen - allerdings kann man die - nach meiner Kenntnis - nicht mehr so richtig gut einbauen, weil sie in nicht-handlötbaren Gehäusen verkauft werden. Also kam uns die Idee, zwei einfache 8-Bit-AVR über einen 40MHz Taktgenerator und einen Teiler durch 2 im Wechsel zu betreiben. Der eine AVR schaltet dann, wenn der andere gerade Pause hat. Beide verarbeiten das gleiche Programm und stellen an einem Port mit jeweils 5 Bit die benötigten Spannungswechsel zur Verfügung. Mischt man das über das Widerstandsnetzwerk des A/D-Wandlers, sollte ein schneller und sehr linearer 10-Bit-Sägezahn in der nötigen Frequenz möglich sein. Und da das bisher nur Theorie ist: geht sowas überhaupt? Hat das schon mal jemand probiert? Oder ist das Unsinn? Es grüßt herzlich JL7
@ Frank Brennecke (jeanluc7) >wir basteln gerade an einer digitalen Ansteuerung einer Bildröhre. Dazu gibt es diverse Projekt im Netz und auf Youtube. http://www.youtube.com/watch?v=TDiPibnHgW4 >verarbeitet. Das kann man analog mit Kondensatoren machen, aber dann >wird die Amplitude von der Frequenz abhängig. Das hat man vor über 50 Jahren auch schon so gemacht, und es hat funktioniert. >ganze per MC und Widerstandsnetzwerk zu realisieren, siehe hier >Beitrag "Einfacher R2R-DAC". Kann man machen. >Soweit ist das auch alles kein Problem. Für SVGA braucht man aber in >horizontaler Richtung 1024 Linien (Pixel), also eine Auflösung von 10 >Bit und das mit einer Aktualisierungsfrequenz von 40 MHz (38 kHz Takt >und dazwischen 1024 Stufen). Back erstmal kleiner Brötchen und bleib bei QVGA 320x240. >Nun kann man das mit höherwertigen MCs bewerkstelligen - allerdings kann >man die - nach meiner Kenntnis - nicht mehr so richtig gut einbauen, >weil sie in nicht-handlötbaren Gehäusen verkauft werden. Dafür gibt es Steckmodule. >Also kam uns die Idee, zwei einfache 8-Bit-AVR über einen 40MHz >Taktgenerator und einen Teiler durch 2 im Wechsel zu betreiben. Nicht sinnvoll. >Widerstandsnetzwerk des A/D-Wandlers, sollte ein schneller und sehr >linearer 10-Bit-Sägezahn in der nötigen Frequenz möglich sein. Ins Knie schießen ist lustiger ;-) >Und da das bisher nur Theorie ist: geht sowas überhaupt? Hat das schon >mal jemand probiert? Oder ist das Unsinn? Oder.
Salut, danke - ich kenne das Scopeclock-Projekt. Dort wird allerdings kein Raster erzeugt, sondern Vektoren abgearbeitet - die machen folglich etwas anderes. PAL und VGA müssen allerdings schon sein - analog mit MC-Synchronsteuerung haben wir das ganze schon einmal realisiert, aber man müsste dort noch eine Menge Arbeit in den linearen Verlauf der Generatoren stecken. Dann also die Variante mit den Steckmodulen. Gibt's da etwas besonders empfehlenswertes? Müsste dann ja ein MC mit > 40 MHz Takt sein und wohl 32-bittig? Grüße, JL7
Frank Brennecke schrieb: > Nun kann man das mit höherwertigen MCs bewerkstelligen - allerdings kann > man die - nach meiner Kenntnis - nicht mehr so richtig gut einbauen, > weil sie in nicht-handlötbaren Gehäusen verkauft werden. Bei einer Schaltung mit 40 MHz Pixeltakt geht sowieso nichts mehr mit Lochraster und Fädeln. Bei einer richtigen Platine ist es auch kein Problem, einen Controller im SMD-Gehäuse einzulöten; das geht auch von Hand. Ein AVR ist für so eine Anwendung absolut nicht geeignet! Auch mit zwei Stück parallel klappt es vermutlich nicht, weil du dann ja mit jedem Takt-Zyklus einen Pin am Ausgang verändern musst. Für so eine Aktion braucht man aber mehr als einen CPU-Zyklus, du kommst damit niemals auf 40 MHz. Was vielleicht eher gehen könnte wäre ein Zähler, der mit 40 MHz getaktet wird und mit jedem Takt um 1 hochzählt; allerdings ist dann der maximalwert nicht mehr so einfach änderbar. Das ist eigentlich eine typische Anwendung für einen FPGA.
Wenn's Dir nur um einen 10bit-Sägezahn geht: Was spricht gegen einen Zähler, der vom µC angesteuert wird? HC4040?
Salut, danke auch dir - das geht ja echt fix hier! Klasse! OK, insbesondere die Frage, wieviel Takte die Änderung braucht, ist natürlich ein No-Go. An den Zähler hatte ich auch schon gedacht - da hängt es dann auch noch am Sync. Also schaue ich mich erst mal weiter um und kümmere mich nicht mehr weiter um diese Dual-Idee. Danke und Grüße JL7
Frank Brennecke schrieb: > Also kam uns die Idee, zwei einfache 8-Bit-AVR über einen 40MHz > Taktgenerator und einen Teiler durch 2 im Wechsel zu betreiben. Meines Wissens nach arbeiten die schnellsten im DIL/DIP-Gehäuse verfügbaren AVRs mit 20MHz. Einige XMEGAs im TQFP-Gehäuse schaffen 32MHz. Da das Programm aber auch ein paar Taktzyklen in Anspruch nimmt, würde sich selbst mit 40MHz-Modellen die Aktualisierungsrate nicht erreichen lassen.
Oops, sorry, habe die 40Mhz nicht so recht wahrgenommen... Da müsste es, wenn man über den Binärzähler geht, schon ein synchroner (nicht: ripple) sein, mit einem externen Digital-Komparator für's Reset. Und dann kann man gleich ein FPGA oder CPLD nehmen.
Michael Graf schrieb: > Wenn's Dir nur um einen 10bit-Sägezahn geht: Was spricht gegen > einen > Zähler, der vom µC angesteuert wird? HC4040? Geht der mit 40 MHz? Nun ja, man müsste dann dessen Takt anpassen können, damit man bei jeder Eingangsfrequenz eine möglichst optimale Ausnutzung der 10 Bit erreicht. Der Sync kommt ja aus dem Eingangssignal - PAL, VGA... Wobei man den Sync auch mit einem MC verarbeiten könnte; so funktioniert ja die halbanaloge Variante dessen, was wir hier vorhaben. Mit ein wenig Logik liesse es sich aber machen - es sollen ja nur 3 Frequenzen unterstützt werden und nicht alle ;-) Grüße, JL7 Edit - geht mit 40Mhz offenbar nicht, danke für den Hinweis.
:
Bearbeitet durch User
Hallo Frank, erst einmal die Frage, geht es darum, das Muster zu erzeugen, oder darum, dass es mit AVRs und Handlötechnik bewerkstelligt werden muss? Wenn es um das Muster geht, nimm einfach ein FPGA, es gibt genügend kostenfreie Entwicklungsboards dazu und freie Entwicklungsumgebungen. Wenn Du das Projekt konkreter beschreiben könntest, wären die Antworten auch präziser. Du merkst ja, dass hier im Forum einige Profis helfen wollen aber ohne Infos können sie das nicht. LG Christian
Hai! Frank Brennecke schrieb: > Um dort [auf der Bildröhre - RZ] ein Raster zu erzeugen, > werden zwei Sägezahngeneratoren benötigt, einer für die > horizontale und einer für die vertikale Ablenkung. Ja. > Unser Wunsch ist nun, das ganze möglichst in einem weiten > Frequenzbereich zu ermöglichen, so dass die Bildröhre (eine > kleine Oszilloskopröhre) sowohl PAL (15.625 kHz/ 50Hz) als > auch VGA und SVGA (38,5 kHz/ 60 Hz) verarbeitet. Okay. > Das kann man analog mit Kondensatoren machen, Jein. > aber dann wird die Amplitude von der Frequenz abhängig. Nö. Nicht, wenn man es richtig macht. > Vor allem aber hat man immer ein Problem mit der Linearität. Nein, auch nicht. Du weisst, wie ein Dual-Slope-Umsetzer funktioniert? Du weisst, wie ein klassischer Funktionsgenerator arbeitet? Der Trick ist der Integrator - den man am einfachsten mit einem entsprechend beschalteten Operationsverstärker aufbaut. (Es gibt auch noch andere Lösungen.) Der Integrator enthält Deinen Kondensator. Der klassische Dreieck-Rechteck-Generator ist i.d.R. spannungsgesteuert - hohe Spannung gibt hohe Frequenz, niedrige Spannung gibt niedrige Frequenz. Ein Stellbereich von 1:1000 ist kein Problem; einen NF-Generator 10Hz bis 10kHz in einem Bereich habe ich mir vor Jahren mal selbst gebaut - aus Standard-Bauteilen wohlgemerkt, also TL084, 1N4148 und ein paar Widerstände. Mit besseren OPV sollte man auch bis über 50kHz vordringen können. Die Ablenkspannungen rein analog zu erzeugen ist also kein Problem. Soviel nur mal aus der guten alten Zeit, als der passive RC-Tiefpass 1. Ordnung noch nicht der Gipfelpunkt der Analogtechnik war... ;-) Grusz, Rainer
Christian H. schrieb: > Wenn Du das Projekt konkreter beschreiben könntest, wären die Antworten > auch präziser. Du merkst ja, dass hier im Forum einige Profis helfen > wollen aber ohne Infos können sie das nicht. Rainer Ziegenbein schrieb: > Der Trick ist der Integrator - den man am einfachsten mit > einem entsprechend beschalteten Operationsverstärker aufbaut. > (Es gibt auch noch andere Lösungen.) Der Integrator enthält > Deinen Kondensator. Salut, ok, dann will ich das ganze einmal konkreter beschreiben. Grundsätzlich handelt es sich um ein Retro-Projekt aus der Zeit, als Elektronik-Experimentierkästen noch hoch im Kurs standen. Seinerzeit hat Philips eine Oszillographenröhre zusammen mit der notwendigen Grundschaltung in ein Acrylgehäuse gesteckt und das ganze als "Bildröhreneinheit" verkauft. Seinerzeit konnte man damit ein einfaches Oszilloskop und sogar einen Fernseher bauen. Man kann diese Teile heute noch für eine Menge Geld bei ebay ersteigern. In unserem Projekt wollen wir eine solche Einheit mit aktuell verfügbaren Mitteln bauen, wobei wir diesmal bei der Auswahl der Röhren flexibler sein wollen als beim Original. Und nachdem diese Idee inzwischen erste Formen annimmt, sollte das ganze noch als Option bereits einige sinnvolle Eingänge mitbringen, also nicht bloß x-y und die z-Austastung, sondern Composite Video und eben VGA. Es ist klar, dass man die kleinen Röhren nicht dauerhaft als Monitor nutzen wird wollen, aber man kann darauf mit der richtigen Beschaltung durchaus einige Zeilen (größeren) Text ausgeben. Wir haben so etwas für die Bildröhreneinheiten aus den 70ern schon einmal gemacht, siehe hier: http://www.brennecke.org/?page_id=1842 - da wird die Ablenkung analog bewerkstelligt, während zwei Mikrocontroller die Generierung der Sync-Impulse übernehmen und auch eine Bildlagekorrektur ermöglichen. Seinerzeit kamen statt OpAmps Transistoren zum Einsatz, die als Konstantstromquellen die Kondensatoren laden, aus denen letztlich die beiden Sägezähne stammen. Das funktionierte leidlich, aber eben nicht so linear, wie gewünscht (wobei es horizontal bei hohen Frequenzen besser aussieht als bei der vertikalen mit 50/60 Hz). Ich hoffe, das erklärt das Vorhaben besser. Wir sind also nicht wirklich fixiert auf die digitale Generierung der Sägezähne - nur möglichst linear sollte das ganze sein. Und ich sehe aus Euren Antworten, dass der analoge Weg eben doch nicht der schlechteste ist und möglicherweise einfach nur verbessert werden muss. Vielleicht ist auch ein Mix sinnvoll - horizontal bleibt das ganze analog, aber vertikal stellt man um, und das sollte bei 60 Hz und ca 800 Zeilen auch ein kleiner AVR-MC gut schaffen. Grüße, Frank
die VGA Steuersignale schnell genug erzeugen geht mit einem kleinen CPLD wunderbar. http://www.dasrotemopped.de/bilder/ATmegaExtender_VGA.jpg Kann man natürlich auch diskret mit Logikbausteinen erzeugen. Gibts Millionen von Bastelprojekten im Netz, z.B. http://www.pyroelectro.com/projects/masochists_video_card/ ein kleiner uC wie Atmega kann dann die Bildinhalte in reduzierter Auflösung beisteuern. Um die Röhrensteuerung mit DA-Wandlern und OpAmps aufzubauen braucht es auch nicht viel, nur viele IO-Leitungen am CPLD für einen schnellen und simplen R2R Wandler braucht man. Gruß, dasrotemopped.
Hai! Frank Brennecke schrieb: > Wir haben so etwas für die Bildröhreneinheiten aus > den 70ern schon einmal gemacht, siehe hier: > http://www.brennecke.org/?page_id=1842 - da wird > die Ablenkung analog bewerkstelligt, während zwei > Mikrocontroller die Generierung der Sync-Impulse > übernehmen und auch eine Bildlagekorrektur ermöglichen. Ahh. Sehr coole Sache. Ich nehme meinen Seitenhieb über den RC-Tiefpass mit dem Ausdruck tiefster Befriedigung zurück... ;-) > Seinerzeit kamen statt OpAmps Transistoren zum Einsatz, > die als Konstantstromquellen die Kondensatoren laden, > aus denen letztlich die beiden Sägezähne stammen. Ja; habe den Schaltplan gesehen. Auf den ersten Blick sieht die Schaltung auch ganz vernünftig aus. > Das funktionierte leidlich, aber eben nicht so linear, > wie gewünscht (wobei es horizontal bei hohen Frequenzen > besser aussieht als bei der vertikalen mit 50/60 Hz). Hmmm... die Schaltung hat ein paar Fußangeln, bei denen ich noch nicht weiß, ob ich nur den Trick nicht verstanden habe oder die Lösung wirklich nicht optimal ist... Mal sehen. > Und ich sehe aus Euren Antworten, dass der analoge Weg eben > doch nicht der schlechteste ist und möglicherweise einfach > nur verbessert werden muss. Davon gehe ich aus. Der Bipolartransistor wird als Stromquelle normalerweise unterschätzt. Grusz, Rainer
Hallo, es geht durchaus digital: da die Pixel von links nach rechts einfach hochgezählt werden, genügt ein Binärzähler, kein Grund einen Prozessor zu missbrauchen. Lediglich die Taktfrequenz muss variabel sein, aber das Problem stellt sich bei einem Prozessor in verschärfter Form. Bei Verwendung von 2 Prozessoren abwechselnd kommt sowieso nicht 8+8=16bit heraus, sondern die Auflösung erhöht sich lediglich um ein Bit. Gruss Reinhard
Reinhard Kern schrieb: > Hallo, > Bei Verwendung von 2 Prozessoren abwechselnd kommt sowieso nicht > 8+8=16bit heraus, sondern die Auflösung erhöht sich lediglich um ein > Bit. > > Gruss Reinhard Salut Reinhard und Rainer, dem Argument kann ich leider nur zustimmen. Zwei 256er Zähle, um eins versetzt, können keinen 16-Bit-Zähler ersetzen, man gewinnt nur ein Bit. Allein das ist schon ein Totschlagsargument für die Idee - da hätte ich aber auch selbst und früher drauf kommen müssen >:( Ich neige inzwischen dazu, die Horizontalablenkung analog zu lassen und vielleicht nur bei der vertikalen Ablenkung - wo die Nichtlinearität auch stärker in Erscheinung tritt - mit einer Widerstandskaskade zu machen. Rainer Ziegenbein schrieb: > Hmmm... die Schaltung hat ein paar Fußangeln, bei denen > ich noch nicht weiß, ob ich nur den Trick nicht verstanden > habe oder die Lösung wirklich nicht optimal ist... Ich habe das Schaltbild einmal direkt angehängt. Horizontal- und Vertikalkreis der Schaltung sind weitgehend baugleich, aber gespiegelt (NPN- bzw. PNP-Transistoren), weil der horizontale Sägezahn ein fallender und der vertikale ein steigender ist. Im Horizontalkreis kann außerdem der resultierende Gesamtwert des Ladekondensators über einen Transistor variiert werden, damit PAL (15,625 KHz) und VGA/SVGA (31,5 kHz, 35 kHz) in etwa gleiche Bildhöhen haben. Die beiden OpAmps am jeweiligen Ausgang sind als Inverter geschaltet und sollen die Einstellung der Bildbreite und -höhe vereinfachen. Am Ausgang stehen dann zwei Sägezähne mit horizontal steigender und vertikal fallender Flanke. Die Generatoren benötigen ein Rücklauf-Synchronsignal - ohne dieses laufen sie nicht an. Das Sync-Signal stammt aus zwei MCs (ATMega88), die es aus den Original-Syncsignalen gewinnen und außerdem noch ein paar zusätzliche synchrone höherfrequente Signale zur Verfügung stellen. Wenn da noch Potenzial für Verbesserungen drin ist, umso besser. Wie bereits gesagt, mein Problem ist eher der Vertikalgenerator. Grüße, Frank
Hallo, bei Ebay wird zur Zeit ein Projekt versteigert, welches die Bildröhre D5-100 Telefunken mit Videospeichen (Bildspeicher) beinhaltet. Auf meiner Nachfrage hin wurde mir mitgeteilt, dass Bilder abgespeichert und wieder abgerufen werden können. Auch soll dort ein Testbildgenerator integiert sein, dass Testbild sieht vielversprechend aus. Vielleicht kann Dir dieses Projekt weiterhelfen. Der Link lautet: www.ebay.de/itm/261357247666?ssPageName=STRK:MESELX:IT&_trksid=p3984.m15 58.l2649 Diese stellt keine Reklame oder Werbung dar, ich wollte hiermit nur mitteilen, was ich so gefunden habe.
Salut, es gehört ja zum guten Ton, einen Thread abzuschließen, wenn man ein Projekt beendet hat. Hier ist das nun der Fall. Wir haben das eigentliche Problem, den Betrieb zweier Sägezahngeneratoren für die Ablenkunk eines Elektronenstrahls und die Darstellung eines Videobilds, nun folgendermaßen gelöst: Der Mikrocontroller nimmt horizontale und vertikale Sync-Signale aus einem LM1881 entgegen. Beim horizontalen Sync auf INT0 (15.625 kHz) wird ein Sync-impuls an einem Ausgang erzeugt, außerdem wird ein Zeilenzähler hochgezählt und dessen Wert per SPI einem D/A-Wandler vom Typ MCP4921 zugestellt. Dessen Ausgangssignal ist dann bereits sägezahnförmig mit 625 Stufen, die man allerdings nicht sieht, weil sie außerhalb des Bildes liegen. Das vertikale Sync-Signal an INT1 setzt den Zeilenzähler auf null zurück. Der horizontale Sägezahngenerator wird durch Transistoren und einen Kondensator auf konventionelle Weise gebildet. Wenn man ihn hinreichend groß und die Amplitude gering genug wählt, ist das Signal hinreichend linear. Beide Signale durchlaufen noch zwei OpAmp-Stufen (NE5532) mit dualer Stromversorgung, um das Signal ein wenig zu verstärken und belastbar zu machen. Außerdem kann der Nullpunkt verschoben werden, damit das Bild auch mittig auf dem Bildschirm sitzt. Außerdem an Bord: - Ein Ablaufzähler, der einspringt, wenn die externe Quelle nicht angeschlossen ist und der LM1881 kein Signal liefert. Er erzeugt dann ein Raster, dessen Frequenz leicht unterhalb der Standard-PAL-Frequenz liegt. Wenn ein Sync vorhanden ist, wird der Timer des Ablaufzählers rechtzeitig zurückgesetzt. - Ein Austastsignal, das die Bildbereiche des Rasters dunkel tastet, die keine Information enthalten. Das sind die Rückläufe der Sägezähne sowie weitere schmale Zonen am Rande des Bildschirms. Weitere Infos stelle ich bei Interesse gerne zur Verfügung - eine Online-Doku gibts hier: http://www.brennecke.org/?page_id=2795. Viele Grüße, JL7
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.