mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Kameraschaltung Philips DC3840


Autor: Sdfwef Werers (huberg)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas Burkhart (escamoteur)
Datum:

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

Gruß
Tom

Autor: Sdfwef Werers (huberg)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sdfwef Werers (huberg)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Sdfwef Werers (huberg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bitte euch um Hilfe.
Mfg Gerhard Huber

Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sdfwef Werers (huberg)
Datum:
Angehängte Dateien:

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

Autor: Sdfwef Werers (huberg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bitte um Hilfe.
Es waren 5 V pro Divison eingestellt
Mfg Gerhard

Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sdfwef Werers (huberg)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sdfwef Werers (huberg)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Sdfwef Werers (huberg)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sdfwef Werers (huberg)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sdfwef Werers (huberg)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sdfwef Werers (huberg)
Datum:
Angehängte Dateien:

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

Autor: Sdfwef Werers (huberg)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
sorry 2 bilder vergessen
Mfg gerhard

Autor: Sdfwef Werers (huberg)
Datum:
Angehängte Dateien:
  • 1 (11,5 KB, 81 Downloads)

Bewertung
0 lesenswert
nicht lesenswert
servas
ich hab 2 fragen zum code

1)
unsigned char sync = 1;
  do {
    cam_command_send (0x0D,0x00,0x00,0x00,0x00);
    for(unsigned long a = 0;a<1000000;a++)
    {
      if (cmd_buffercounter >= 16){
        for(unsigned long a = 0;a<1000000;a++){asm("nop");};
        cam_uart_write_char(0xFF);
        cam_uart_write_char(0xFF);
        cam_uart_write_char(0xFF);
        cam_uart_write_char(0x0E);
        cam_uart_write_char(0x0D);
        cam_uart_write_char(0x00);
        cam_uart_write_char(0x00);
        cam_uart_write_char(0x00);
        
        
        sync = 0;
        break;
        };
    };
    }while(sync);

warum soll gerade bei (cmd_buffercounter >= 16) die daten gesendet 
werden

und 2) was macht dieder teil
SIGNAL(SIG_USART_RECV)
{
  if( (cmd_buffercounter >= cam_dat_start) && (cmd_buffercounter <= cam_dat_stop) )
{
      cam_dat_buffer[dat_buffercounter++] = UDR;
}
else if(cmd_buffercounter < CMD_BUFFER_SIZE)
{
      cam_cmd_buffer[cmd_buffercounter] = UDR;
}
   else
{
volatile char tmp;

      tmp = UDR;
}
}

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

Autor: Sdfwef Werers (huberg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann mir bitte jemand antworten?
Mfg Gerhard

Autor: Sdfwef Werers (huberg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wäre für hilfe sehr dankbar

Autor: Sdfwef Werers (huberg)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Sdfwef Werers (huberg)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sdfwef Werers (huberg)
Datum:

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

Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.