Hallo Professionelle Broadcastvideokameras (abder auch DAT- und andere Bandgeräte) bieten einen TimeCode Ausgang, an dem ein LTC oder VTC TimeCode anliegt. Dieser ist Analog und im hörbarenbereich. Somit einfach übertragbar. Ich möchte nun einen Leser bauen, der mir diesen TimeCode anzeigen kann. Stunden:Minuten:Sekunden:Frames. Im Internet konnte ich diverse Infos finden. So zum Beispiel das Protokoll: http://www.ebu.ch/CMSimages/en/tec_doc_t3097_tcm6-10504.pdf http://www.poynton.com/notes/video/Timecode/ Sogar einen C-Code für die decodierung per Computersoundkarte habe ich gefunden: http://www.lurkertech.com/lg/ltc.c Dadurch kam ich auf die Idee, dass die decodierung auch per AVR möglich sein müsste. Was ich nun realisierne moechte, ist eine AVR Schaltung, der ich an einem AD Eingang den LTC TimeCode einspeisen kann und die mir dann den TimeCode als rs232 oder direkt auf eine Ledanzeige ausspuckt. Nur leider kann ich mit dem oben angefuehrten C-Code nicht viel anfangen. Hoffe, hier jemanden zu finden.
Hi Simon, bin gerade damit beschäftigt, mir nochmal einen Timecodereader zu programmieren (hatte ich vor einigen Monaten bereits realisiert - aber leider hat sich wenige Wochen später meine Festplatte verabschiedet). Den AD-Wandler brauchst du nicht. Der TC steht ja im Prinzip als digitales Signal zur Verfügung (wenn auch i.d.R. nicht mit TTL-Pegeln). Mein Programm hat im Prinzip nur einen der Hardwaretimer und den dazu gehörigen Input Capture benutzt... Werde dieses Prinzip wohl auch bei der "Wiederauferstehung" meines TC-Readers verwenden. Falls du noch Interesse hast, können wir ja weiter in Kontakt bleiben ;) Gruß Magnetus
Hallo Magnetus Ja, klar bin immer noch dran interessiert. Welchen AVR hast du da verwendet? Lass uns ind Kontakt bleiben! Gruess Simon
Hallo Simon, hier bin ich wieder ;) Ich verwende bisher einen ATmega128 (Crumb128 von www.chip45.com). Das Ganze lässt sich aber auch mit kleineren AVRs mit InputCapture realisieren. Welchen AVR verwendest Du? Habe in den letzten Tagen noch einmal einen LTC-Leser programmiert. Die ersten Tests in AVRStudio hat das Programm bereits bestanden. Der Praxistest steht noch aus. Im Anhang sind die ersten Früchte zu finden (hier für nen ATmega128 @16MHz) Das Signal wird auf PD4 (IC1) zugeführt. Das Einlesen geschieht Interruptgesteuert. tc[0] enthält die Frames als Ganzzahl (0 bis 24) tc[1] enthält die Sekunden als Ganzzahl (0 bis 59) tc[2] enthält die Minuten als Ganzzahl (0 bis 59) tc[3] enthält die Stunden als Ganzzahl (0 bis 23) tc[4] enthält die Frames Einer (0 bis 9) als ASCII tc[5] enthält die Frames Zehner (0 bis 2) als ASCII tc[6] enthält die Sekunden Einer (0 bis 9) als ASCII tc[7] enthält die Sekunden Zehner (0 bis 5) als ASCII tc[8] enthält die Minuten Einer (0 bis 9) als ASCII tc[9] enthält die Minuten Zehner (0 bis 5) als ASCII tc[10] enthält die Stunden Einer (0 bis 9) als ASCII tc[11] enthält die Stunden Zehner (0 bis 2) als ASCII ub[0..7] enthalten die Userbits Der Programmierstil ist vielleicht nicht der Beste (und es fehlen noch einige Kommentare), aber es scheint zu funktionieren ;) Gruß Magnetus
Hallo Magnetus Ich habe bisher nur den 2313 und den 8515 programmiert. Und dies direkt in Assembler mit dem STK500. Dein Programm sieht aber ganz ordentlich aus. Leider bin ich an meinem Projekt immer noch nicht weiter. Bitte halte mich auf dem Laufenden. Simschmid
Hmm... ich glaube, es ist bestimmt nicht verkehrt, den (ATtiny oder AT90S)2313 in Assembler zu programmieren (hat ja nicht gerade viel Flash). Ich habe erst vor ca. 1 Jahr mit den AVRs und mit C angefangen. Ich warte gerade auf die Lieferung meines STK500... muss ich zwar erst reparieren (weil angeblich defekt), aber das wird hoffentlich nicht lange dauern (so kompliziert kann ein STK500 ja nicht sein ;) ) Muss gleich mal gucken, welche Features der 8515 hat... Bis denne, Magnetus
grübel ... 2313 und 8515.... Welche AVRs meinst Du eigentlich? --> AT90S2313 (alt) oder ATtiny2313 (neu) ? --> AT90S8515 (alt) oder ATmega8515 (neu) ? Sowohl Mit dem tiny2313 als auch mit dem mega8515 sollte es machbar sein (beide haben genug Flash und nen Input Capture).
Ja, genau die AT90S. Was verwendest du um vom C zu simulieren und programmieren? Ich habe eben nur die STK500 AVR Studio Software.
Zum Simulieren / Debuggen verwende ich auch AVRStudio. Zum Programmieren (Schreiben/compilieren) verwende ich WinAVR. Zum Flashen benutze ich bis jetzt noch PonyProg. Habe gerade noch mal nachgesehen... Auch der AT90S2313 und der ATmega8515 haben ausreichend Flash sowie einen Input Capture. Mit diesen sollte das Ganze also auch (leicht) machbar sein. Gruß, Magnetus
Hallo zusammen, ich möchte auch ein LTC reader bauen. wurde das projekt fertiggestellt? falls ja, würde mich freuen wenn jemand den schaltplan und den code online stellen könnte :-) mfg MM
Hallo zusammen, habe hier einen LTC Timecode Decoder/Reader gebaut, mit dem ATMega8 damals noch. Der ATMega8 decodiert das Timecode Signal (Manchester II/differential Manchester ist das glaube ich) in ein TC Sync und TC Data Signal mit dem ich dann die 10 Schieberegister 4015 (80 bit) auf der Leiterplatte füttere und auf 8x 4511 7-Segment Treiber gebe und anzeige. Denn FrameSync, der den LE Latch enable auf den 4511 steuert habe ich damals noch Hard-wired mit diskreter UND/ODER Logik auf der Leiterplatte zusammenklamüsert. Programm ist in Assembler, bei interesse bitte melden. Schöne Grüße Andy
Hey Andy Danke für deinen Beitrag, darauf habe ich 15 Jahre gewartet. Nu. Ist es soweit! Unterdessen wurde ja auch Arduino erfunden, leider habe ich das Projekt leider nie mehr weiter verfolgt. Ich finde es toll, wie das Thema jetzt wieder zum Leben erweckt wurde und du damals wirklich eine eigene Lösung gebaut hast. Hast du den TC Reader noch im aktiven Einsatz?
Andy schrieb: > mit dem ich dann die 10 Schieberegister 4015 (80 bit) auf > der Leiterplatte füttere und auf 8x 4511 7-Segment Treiber gebe und > anzeige. Huh? Aber das kann der Mega doch so nebenbei gleich mit machen.
Hat sich tatsächlich noch nicht erledigt? Dann vielleicht das hier?: https://www.beis.de/Elektronik/LTC-Disp/LTC-Disp-de.html
Ich bin grad am Planen eines Lesers & Schreibers. Mein Problem ist die Synchronisierung zweier Geraete die zu weit voneinander weg sind. Das waer dann mit einem Mega644.
Hallo Simon, ja ich habe den Reader noch im Einsatz für meine Kameras. Habe mir auch dazu die passenden Time Code Generatoren gebaut. @ Matthias S.: Ja stimmt, das würde ich jetzt auch anders machen. Ich hatte nur damals noch nicht so genaue Kenntnisse von den gegenwärtigen Mikrocontrollern. Ich habe vor ca. 30 Jahren mal mit Assembler coding angefangen auf diesem schönen Einplatinen Lerncomputer von Signetics und habe erst wieder die letzten 2 Jahre angefangen das Wissen auf einen neueren Stand zu bringen. Schöne Grüße Andy
Hallo Pandur S., ich verwende den ATTiny2313. Ich synchronisiere meine zwei TimeCode Generatoren folgendermaßen: Zuerst starte ich den ersten TC Generator. Dann lese ich den TC am zweiten TC Generator über den INT0 ein.
1 | |
2 | ldi temp1, ( 0<<ISC01 | 1<<ISC00 ) ; set INT0 to rising and falling Edge |
3 | out MCUCR, temp1 |
Interrupt sense control auf steigende und fallende Flanke setzen. Jetzt prüfe ich Bit für Bit auf das SyncWord '0x3FFD'. Es reicht eigentlich schon die Bit-Kombination '0xFD', da dieses Bit-Muster im Code sonst normal nicht vorkommt.
1 | TestSyncWd: ; find sync word and store TC to buffer |
2 | cpi FndSyncWd, 1; check for second Byte 'BF' of Sync Word 'BFFC' |
3 | breq UpdBuffer |
4 | lsr currentByte |
5 | or currentByte, DataBit |
6 | cpi currentByte, 0xbf ;0xBF |
7 | breq FndSyncWord |
8 | rjmp cont |
Bei mir ist die Kombination '0xBF', weil ich mein Register andersherum beschreibe. Wenn ich das SyncWord habe, lese ich den TC in den Speicher. Danach schalte ich sofort den Timer ein und lasse den zweiten, jetzt synchronisierten TC Generator starten. Ob mein Generator TC einliest oder ausgibt lege ich mit dem INT1 fest. Den habe ich an eine 3,5mm Klinkenbuchse mit eingebautem Schalter gelegt. Somit erkennt der 2313 ob sich ein Stecker in der Buchse befindet, oder nicht. Schöne Grüße Andy
Beitrag #6981963 wurde von einem Moderator gelöscht.
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.