Liebes Forum, ich bin in der Lehre und arbeite mit dem Basys3 FPGA. Im Lauf der Veranstaltung lernen wir ein VGA Signal zu erzeugen, was immer sehr gut ankommt. Im nächsten Semester würde ich gern die Bilder einer CCD Kamera auslesen und diese darstellen. Zur Frage: Dafür suche ich eine CCD Kamera. Im Vordergrund steht dabei, dass die Pixel mit einem einfachen Protokoll möglichst seriell auslesbar sein sollten. Schön wäre auch, wenn man die Kamera mit den 3,3V oder 5V des Boards versorgen könnte. Und da ich das ganze als Klassensatz brauche und naturgemäß auch mal was über den Jordan geht, muss die Kamera nicht teuer sein. Könntet Ihr mir eine Kamera empfehlen? Ich stelle mir das verbaut auf einer Platine vor. Wir haben schon ein ähnliches Assignment mit einem DCF77 Empfänger auf einer Platine komplett mit Antenne etc. Die muss man nur noch mit der IO des Basys3 verbinden. Etwas ähnliches stelle ich mir bei der Kamera vor. Bin gespannt und schon mal Danke, Thomas
Hi, dann such doch mal nach OV7670. Das ist ein günstiges Modul, was andere auch schon an den Arduino angeschraubt haben. Da gibt es dann auch SW dazu, da verstehst du am einfachsten, was zu tun ist, damit da Bilder oder Video raus kommen. Und das Teil passt genau zu deiner VGA Auflösung. Grüße, Jens
CCD ist meines Wissens seit der Produktionseinstellung durch SONY vor ca. 10 Jahren quasi ausgestorben, heute alles CMOS, gern mit MIPI-Interface. https://www.docma.info/blog/ccd-sensoren-last-orders-please Das Basys-3 hat IMHO keinen CMOS geeigneten AD-Wandler oder die TreiberStufen für die Daisy-Chain. MIPI-Connector hat es auch nicht, also ausser dem vorgeschlagenen OV7670 an den PMODs gibt es nicht viel an "Elektronik-Augen" für das genannte board. https://www.fpga4student.com/2018/08/basys-3-fpga-ov7670-camera.html
:
Bearbeitet durch User
Das wäre ja genau mein Kandidat, danke für den Hinweis. CCD war für mich nur Synonym für kleine Kameras. Wichtig wäre, dass wir sie seriell auslesen können mit einer vertikalen und horizontalen Synchronisation, denn das haben wir bei der Erzeugung des VGA Signals schon verstanden. Im Datenblatt steht, dass man die Eingänge mit 2.8-3.0V ansteuern muss. Meines Wissens ist High beim Basys3 aber 3.3V. Ist das ein Problem?
Nee, das ist kein Problem. Die absolut maximum Ratings sind bei 4,5V. Da darfst du nicht drüber. Mit den 3,3V bist du gut dabei. Das funktioniert. Gruß, Jens
> Im Datenblatt steht, dass man die Eingänge mit 2.8-3.0V ansteuern muss. > Meines Wissens ist High beim Basys3 aber 3.3V. Ist das ein Problem? Steht 2.8V oder was geringeres (1.7V/2.45V)? https://www.openhacks.com/uploadsproductos/ov7670_cmos_camera_module_revc_ds.pdf Das betrifft auf die Schnelle nur zwei IN-Pins und auch nur zur Konfiguration. notfalls kann man ja Serienwiderstände zur Strombegrenzung dazwischen schalten (scheinen schon 200 Ω drin). https://digilent.com/reference/_media/reference/programmable-logic/basys-3/basys-3_sch.pdf Und die Treiberstärke an den FPGA-ausgängen (DRIVE STRENGTH) kann man auch beschränken.
Thomas S. schrieb: > Wichtig wäre, dass wir sie seriell > auslesen können mit einer vertikalen und horizontalen Synchronisation, > denn das haben wir bei der Erzeugung des VGA Signals schon verstanden. Die OV7670 hat ein paralleles Interface. Ich habe nicht nachgeschaut, aber ich glaube nicht, dass man das auf seriell umschalten kann. Es gibt von Arducam Kameras mit SPI, aber eigentlich ist das eher unüblich. 8Bit Daten+ HSync/Vsync (oder eben MIPI CSI-2) ist schon ein übliches Interface.
Danke für die Hinweise. Habe nun erste Erfahrung mit der OV7670 Kamera. Dabei ist ein Problem aufgetreten, bei dem ich nochmal elektrotechnische Hilfe bräuchte. Bei einer direkten Verbindung der Pins mit dem FPGA bekomme ich ziemlich starke Störungen bei der vertikalen Synchronisation. Ein paar Zeilen des Bildes kann ich auslesen bevor die nächste Framesynchronisation kommt. Wie viele ist unterschiedlich und chaotisch, nur selten reicht es für ein komplettes Bild. Leitet man die in die Kamera eingehende Masterclock über ein Breadboard um und schaltet 1, 10, 100 Ohm Widerstände dazwischengeschaltet, dann wird die chaotische Synchronisation nicht besser. Hängt statt des Widerstands wie auf dem Bild zu sehen eine gewöhnliche Leitung mit Krokodilklemme dazwischen, dann ist das Bild weitgehend stabil. Der Fix funktioniert übrigens nicht nur bei der in die Kamera eingehende Masterclock, sondern auch bei der ausgehenden Pixelclock??!? Nun kann ich schlecht alle Kameras mit Breadboard und Krokoklemme ausgeben. Auch würde ich gern besser verstehen, mit welchem Problem ich es hier zu tun habe. Habt Ihr Ideen?
Thomas S. schrieb: > Habt Ihr Ideen? Ich würde mir die SYNC-Signale mit dem Oszilloskop anschauen. Die Massen hast Du miteinander verbunden? Fragjanur.
Ich fürchte fast, das war nach dem Motto: Wer viel misst, misst Mist. Als Masse für das Oszi (Voltcraft OSO-3062C, 60MHz, 500MSamples/s) habe ich zuerst die Masse für die Kamera genommen. Masterclock aus dem Basys3 (Messsonde auf x1 gestellt): Peak to peak: 6.5V / RMS: 2.56V Frequenz 24MHz (wie gewollt) / Sieht aus wie Sinus, mit Krokoklemme ebenso wie ohne Pixelclock: Peak to peak: 2.64V / RMS: 1.92V Frequenz 24MHz / Sieht eher aus wie Sägezahn solange ich messe, bekomme ich allerdings kein Bild mehr vom FPGA (Spannung zu niedrig?) VSYNC: Mit Masse von der Kamera chaotische Messergebnisse, ohne schönes Rechtecksignal. Besseres Bild solange das Oszi dran hängt, schlechtes Bild ohne. Habe schon vermutet, dass mir irgendwo ein Pull-Down Widerstand fehlt und verschiedene (gegen Masse) ausprobiert, bisher ohne Effekt.
Thomas S. schrieb: > Als Masse für das Oszi (Voltcraft OSO-3062C, 60MHz, 500MSamples/s) habe > ich zuerst die Masse für die Kamera genommen. Man nimmt die Masse mit kürzestmöglicher Leitung (Stichwort Massefeder) dort ab, wo das Signal in einen Eingang hineingeht. Denn dort muss das Signal gut sein. > Masterclock aus dem Basys3 (Messsonde auf x1 gestellt): Ich habe einen Fehler gefunden. Taste das Signal auf jedem Fall mit 10:1 ab. Und gleiche vor der Messung auch noch den Tastkopf ab (dafür sind die Anschlüsse rechts unten am Oszi dran). > Peak to peak: 6.5V / RMS: 2.56V Beuteile interessieren sich nur am Rande um eine den Peak-Peak-Wert, denn iher Ein- und Ausgägne sind auf Masse bezogen. Und dort hast du (vermutlich wegen schlechter Teminierung) böse Über- und Unterschwinger. > Frequenz 24MHz (wie gewollt) / Sieht aus > wie Sinus, mit Krokoklemme ebenso wie ohne Krokoklemmen sind nun nicht das Mittel der Wahl um Hochfrequenz zu verbinden/messen. > Pixelclock: Peak to peak: 2.64V / RMS: 1.92V Frequenz 24MHz / Sieht > eher aus wie Sägezahn Ein Oszi mit 60MHz analoger Bandbreite kann kein Rechteck mit 24MHz darstellen. Denn schon die erste Oberwelle des Rechtecks hat über 70MHz. Thomas S. schrieb: > Leitet man die in die Kamera eingehende Masterclock über ein Breadboard > um und schaltet 1, 10, 100 Ohm Widerstände dazwischengeschaltet Serienterminierung macht man nicht "irgendwo dazwischen", sondern direkt (es geht um mm) am Signalausgang. > Hängt statt des Widerstands wie auf dem Bild zu sehen eine gewöhnliche > Leitung mit Krokodilklemme dazwischen, dann ist das Bild weitgehend > stabil. Eigentlich nur eine lange Umschreibung für "Glück gehabt!" Der gesamte gezeigte Aufbau ist im Grunde nur für Niederfrequenz <<1MHz geeignet. Der reagiert garantiert schon auf "Handauflegen".
:
Bearbeitet durch Moderator
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.