hallo ich möchte mit der Philiphs DC 3840 kamera aus dem Ulrich Radig Shop mit einem Microcontroller bilder machen. Meine Schaltung ich habe ein Atmega 644p anden ich die Kamera hänge RX Kamera -> TX Microcontroller Pin 15 TX Kamera -> RX Microcontroller Pin 14 Vcc Kamera -> Vcc 5V GND Kamera -> Gnd Kamera Weiters befindet sich hier http://www.ulrichradig.de/home/index.php/projekte/uC-kamera ein fertiges Protokoll. Was muss ich machen um ein Bild zu bekommen? Ich bitte um Hilfe, bin am verzweifeln. Mfg Gerhard
Wo genau ist Dein Problem? Ulrich hat es doch sehr schön beschrieben was man braucht? Gruß Tom
Wenn ich das file von Ulrich auf dem Atmega 644p programmiere, sendet der Microcontroller Daten zur Kamera und die Kamera sendet keine Daten zurück. Ist weil ich vielleicht eine andere Schaltung oder einen andern Microcontroller habe eine Änderung im Programm nötig? Danke für deine Antwort. Mfg Gerhard
In http://www.ulrichradig.de/home/index.php/avr/eth_m32_ex verwendet er doch genau diese Kombination. Schau Dir doch mal die Software an.
Hallo Gerhard, er verwendet doch den gleichen Prozessor, daran sollte es also nicht liegen. Wenn Du uns Deine Schaltung als PNG posten würdest, könnten wir auch dazu ne Meinung äußern. Verwendest Du den richtigen externen Quartz? Siehe Zitat: Wichtig ist dabei, dass der Quarz mit 14,7456Mhz schwingt! Die Kamera wird dabei direkt an den USART des Prozessors angeschlossen. An Pin D.5 stehen die Daten seriell zur Verfügung (Softuart, 1 Startbit, 8 Datenbits, 1 Stoppbit, 38400Baud). Gruß Tom
Hallo ich verwende einen Atmega 644p statt 644 soweit ich weiß sollte das nicht zu Fehlern führen. Ich verwende auch den richtigen Quarz 14,7456 leider in der schaltung falsch eingezeichnet. Mir stehen aber am Pin d5 nicht die daten zur Verfügung. Ich denke dass die Kamera gar keine Daten zurückschickt. Wie muss ich meine Schaltung umändern oder die Software von Ulrich. Danke für eure Antworten. Mfg Gerhard
Hast Du einfach mal probiert selbst die genannte Initsequenz zu senden und zu schauen, ob da was zurückkommt? Hast Du ein Speicher-Oszi oder Logic-Analyzer, damit Du sehen kannst was sich auf den Leitungen tut? Gruß Tom
Hallo hier die geforderten bilder KTX = was Kamera sendet KRX = was Kamera empfängt Ich bitte um Hilfe. Mfg Gerhard
Ich bitte um Hilfe. Es waren 5 V pro Divison eingestellt Mfg Gerhard
Was sendest Du denn, auf dass Du diese Bilder bekommst? Wäre auch gut zu wissen, welche Zeitauflösung den Bildern zugrunde liegt. Empfehle Dir übrigens Dir den LOGICPORT Logicanalyser zuzulegen, der dekodiert Dir RS232 Signale automatisch und ist nicht allzu teuer. Gruß Tom
Hier ist das Richtige Bild das an die Kamera gesendet wird. Volts/Div 5V Time/Div 20ms Danke für die Empfehlung aber der Logicanalyser steht mir leider nicht zur Verfügung. Wenn man dann genauer schaut das zweite Bild sieht man die Abfolge. 5V pro Divison 10µs pro Divison Danke für deine Antworten bin am verzweifeln. Meine Überlegung da das Signal von der Kamera 2,5 Volt hat muss man dieses Signal verstärken das der Microcontroller erkennen kann. Mfg Gerhard
Kuck Dur mal in Datenblatt des AVRs das Kapitel 27.9 Pin Threshold and Hysteresis an. Wenn Du den AVR bei 5V betreibst, dann reichen die 2,5V tatsächlich nicht, wenn ich das Diagramm richtig interpretiere Gruß Tom
ja danke wenn ich jetzt ein invertierendes NAND Gatter mit Smithtriggereingang(74HC132AN) nehme dann sollte ich ein passendes Signal dem Microcontroller liefern können oder? Danke Mfg Gerhard
Ich habe jetzt ein Signal von der Kamera zum Microcontroller wie im Bild zu sehen ist es ist ungefähr 4 Volt groß und 10µs pro divison Zeiteinheit. Am PIN PD5 kommt nichts warum und wie kann man das Problem lösen? Danke für eure Antworten Mfg Gerhard
Verwendest Du imm noch die Software von Uli Radig? Ich würde fürs Debuggen erst mal versuchen die RS232 von Hand zu programmieren. Eventuell auch schon mal den AVR gewechselt, nicht dass der defekt ist. Gruß Tom
Ich habe schon eine RS232 serielle schnittstelle mit rx0 und tx0 programmiert. Was meinen sie genau was ich jetzt machen soll? Danke für ihre Antwort leider kann ich den AVR nicht so schnell wechslen da ich in näcshter Zeit zu keinem Shop komme. MFg gerhard
Also erst mal: Prüfnoch mal, das du RX/TX rivhtig gekreutzt hast. Um sicherzustellen, dass Deine RS232 Verbingung geht, versuch mal mit Deinem PC zu kommunizieren, hast hoffendlich noch ne MAX232 rumliegen. Solange wir nich wissem, ob Deine RS232 richtig funktionier und Du sie auch richtig programmierst, macht es wenig sinn im Nebel zu stochern. Gruß Tom
> ja danke wenn ich jetzt ein invertierendes NAND Gatter ... > Ich habe jetzt ein Signal von der Kamera zum Microcontroller wie im Bild Bedeutet das, Du hast das Signal mit einem Nand auf den Pegel gebracht ? Wenn ja: der µC mag die Signale der Kamera nicht invertiert bekommen, wenn dann schon 2 Nand hintereinander schalten. Im cam.h File von Ulrich Radig ist übrigens ein Fehler bei der 644 Define: #define EICR EICRB EICRB gibt's laut DB weder beim 644, noch beim 644P. Allerdings wird EICR nicht weiterverwendet, so daß dies keine Auswirkung hat.
Hallo ja also das was der avr zur kamera schickt stimmt, das ist das 0xFF 0xFF 0xFF 0x0D 0x00 0x00 0x00 0x00 was bei ulrich seiner homepage steht, dann antwortet die kamere mit 2 datensätzen bei denen ich mir nicht sicher bin ob die stimmen (sollten 0xFF 0xFF 0xFF 0x0E 0x0D 0x00 0x00 0x00 und 0xFF 0xFF 0xFF 0x0D 0x00 0x00 0x00 0x00 sein). also rx und tx sollte auch richtig ausgekreuzt sein. und am pin d5 kommt nie etwas
RXCAM was Kamera empfängt TXCAM 1 und 2 was Kamera zurücksendet 5V/Div 10µs/Div Mfg Gerhard
servas ich hab 2 fragen zum code 1)
1 | unsigned char sync = 1; |
2 | do { |
3 | cam_command_send (0x0D,0x00,0x00,0x00,0x00); |
4 | for(unsigned long a = 0;a<1000000;a++) |
5 | {
|
6 | if (cmd_buffercounter >= 16){ |
7 | for(unsigned long a = 0;a<1000000;a++){asm("nop");}; |
8 | cam_uart_write_char(0xFF); |
9 | cam_uart_write_char(0xFF); |
10 | cam_uart_write_char(0xFF); |
11 | cam_uart_write_char(0x0E); |
12 | cam_uart_write_char(0x0D); |
13 | cam_uart_write_char(0x00); |
14 | cam_uart_write_char(0x00); |
15 | cam_uart_write_char(0x00); |
16 | |
17 | |
18 | sync = 0; |
19 | break; |
20 | };
|
21 | };
|
22 | }while(sync); |
warum soll gerade bei (cmd_buffercounter >= 16) die daten gesendet werden und 2) was macht dieder teil
1 | SIGNAL(SIG_USART_RECV) |
2 | {
|
3 | if( (cmd_buffercounter >= cam_dat_start) && (cmd_buffercounter <= cam_dat_stop) ) |
4 | {
|
5 | cam_dat_buffer[dat_buffercounter++] = UDR; |
6 | }
|
7 | else if(cmd_buffercounter < CMD_BUFFER_SIZE) |
8 | {
|
9 | cam_cmd_buffer[cmd_buffercounter] = UDR; |
10 | }
|
11 | else
|
12 | {
|
13 | volatile char tmp; |
14 | |
15 | tmp = UDR; |
16 | }
|
17 | }
|
also der µC schickt den ersten sync string zur kamera und wartet dann das die kamera antwortet und diese schickt das was im file ist welches sich im anhang befindet danke
hi ich habe es endlich geschafft das ich daten von der kamera bekomm. nun ich weis ich nur noch nicht was ich mit den folgenden hex daten ( siehe anhang) machen muss damit ich sie als jpeg anzeigen kann kann mir wer helfen? mfg gerhar
Das wird ja wohl kaum ein JPEG sein sondern ne RAW-Bitmap. Such mal mit Google nach .BMP-Format und erzeuge einfach ne Datei in diesem Format. Gruß Tom P.S.: Woran hats denn jetzt gelegen?
woran es genau gelegen ist weis ich selber nicht^^ ich habe die platine neu ätzen lassen und jetzt funktioniert es. vermute mal es war ein riss in irgendeiner leitung
aber das mit den in eine bilddatei umwandeln hab ich immer noch nicht geschafft
Wo ist denn das Problem, einfach bmp-Header rausschreiben und dann die Hexdaten ist doch ne S/W-Kamera oder, also je Pixel ein Byte Gruß Tom
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.