Kameraschaltung Philips DC3840

OP #1520011
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
OP
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
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
OP
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
Angehängte Dateien:
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
OP
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
Angehängte Dateien:
OP
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
Angehängte Dateien:
OP
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
Gast
> 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.
OP
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
OP
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
Angehängte Dateien:
  • 1 (11,5 KB)
OP
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
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.