Forum: Mikrocontroller und Digitale Elektronik Kameraschaltung Philips DC3840


von Sdfwef W. (huberg)


Lesenswert?

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

von Thomas B. (escamoteur)


Lesenswert?

Wo genau ist Dein Problem? Ulrich hat es doch sehr schön beschrieben was 
man braucht?

Gruß
Tom

von Sdfwef W. (huberg)


Lesenswert?

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

von Mike (Gast)


Lesenswert?

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.

von Thomas B. (escamoteur)


Lesenswert?

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

von Sdfwef W. (huberg)


Angehängte Dateien:

Lesenswert?

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

von Sdfwef W. (huberg)


Lesenswert?

Ich bitte euch um Hilfe.
Mfg Gerhard Huber

von Thomas B. (escamoteur)


Lesenswert?

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

von Sdfwef W. (huberg)


Angehängte Dateien:

Lesenswert?

Hallo hier die geforderten bilder
KTX = was Kamera sendet
KRX = was Kamera empfängt
Ich bitte um Hilfe.
Mfg Gerhard

von Sdfwef W. (huberg)


Lesenswert?

Ich bitte um Hilfe.
Es waren 5 V pro Divison eingestellt
Mfg Gerhard

von Thomas B. (escamoteur)


Lesenswert?

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

von Sdfwef W. (huberg)


Angehängte Dateien:

Lesenswert?

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

von Thomas B. (escamoteur)


Lesenswert?

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

von Sdfwef W. (huberg)


Lesenswert?

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

von Thomas B. (escamoteur)


Lesenswert?


von Sdfwef W. (huberg)


Angehängte Dateien:

Lesenswert?

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

von Thomas B. (escamoteur)


Lesenswert?

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

von Sdfwef W. (huberg)


Lesenswert?

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

von Thomas B. (escamoteur)


Lesenswert?

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

von MWS (Gast)


Lesenswert?

> 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.

von Sdfwef W. (huberg)


Lesenswert?

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

von Sdfwef W. (huberg)


Angehängte Dateien:

Lesenswert?

RXCAM was Kamera empfängt
TXCAM 1 und 2 was Kamera zurücksendet
5V/Div
10µs/Div
Mfg Gerhard

von Sdfwef W. (huberg)


Angehängte Dateien:

Lesenswert?

sorry 2 bilder vergessen
Mfg gerhard

von Sdfwef W. (huberg)


Angehängte Dateien:
  • 1 (11,5 KB)

Lesenswert?

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

von Sdfwef W. (huberg)


Lesenswert?

Kann mir bitte jemand antworten?
Mfg Gerhard

von Sdfwef W. (huberg)


Lesenswert?

wäre für hilfe sehr dankbar

von Sdfwef W. (huberg)


Angehängte Dateien:

Lesenswert?

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

von Thomas B. (escamoteur)


Lesenswert?

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?

von Sdfwef W. (huberg)


Lesenswert?

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

von Sdfwef W. (huberg)


Lesenswert?

aber das mit den in eine bilddatei umwandeln hab ich immer noch nicht 
geschafft

von Thomas B. (escamoteur)


Lesenswert?

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
Noch kein Account? Hier anmelden.