mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Protokoll MCA30 + Attribute


Autor: CC (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich beschäftige mich gerade mit dem Auslesen einer MCA30.
Sie ist wohl ein Nachfolgemodell der hier schon oft diskutierten MCA25.

Ich will sie später an einem uC betreiben.
Um das Protokoll zu verstehen, steuere ich sie z.Z direkt vom PC über 
ein Delphi Programm an.

Das Protokoll besteht aus folgenden Schritten:
- Init & umschalten auf 460800 baud:
- Mux Init & Initialisierung der Kamera:
- Vorschaumodus aktivieren & Vorschaubilder holen:
- Vollbild herunterladen:

Soweit habe ich alles in meinem Programm untergebracht und bekomme 
nachdem ich das Vollbild "runtergeladen" habe auch ein sauberes 640x480 
Bild auf den Bildschirm.

Was ist aber wenn ich nun ein weiteres Bild auslesen möchte?
Welche Schritte muss ich oben wiederholen?
Ich will es später vermeiden, einen Reset zu machen und alles zu 
wiederholen, da das ja einen unnötigen Overhead bedeuten würde.

-----------------------------------

Noch etwas am Rande ... hat sich mal jemaand mit den Eigenschaften 
dieser CAM beschäftigt?

bei der Konfiguration sendet man ja so Sachen wie
- white-balance
- color-compensation
- color-depth
- funlayer

color compenation und fun layer habe ich mal verändert, ist soweit ganz 
lustig aber nicht wirklich brauchbar ... gibt es noch andere sinnvolle 
Attribute die man einstellen/verändern kann?

Autor: TH (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo CC,

beschäftige mich auch gerade mit der MCA-30.
Habe ein Ethercircuit Board von Softland Ltd. (gibts wohl inzwischen 
nicht mehr). Es ähnelt dem Pollin Net-IO, hat aber einen SD-Kartenslot.
Ich nutze die Software von Ulli Radig (avr webserver 1.06). Versuche die 
MCA-30 hier einzubinden, habe aber noch div. Probleme. Da es keine 
Unterlagen und nur einige Angaben über die MCA-25 gibt, gehe ich vorerst 
davon aus, daß das Protokoll der MCA-25 das gleiche ist, wie das der 
MCA-30. Initialisierung mit AT Kommandos klappt. Aber dann, empfange ich 
maximal "F9 03 F9" oder "F9 03 3F F9" als MUX Frame, was aber eigentlich 
viel zu kurz, also ungültig ist. Habe den MUXER schon bis auf 57600 Baud 
gedrosselt, aber es bleibt das gleiche Ergebnis. Hast Du evtl. eine 
Erklärung dafür ? Oder eine Beschreibung des Protokolls ?

Gruß TH

Autor: CC (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@TH

Das Protkoll ist soweit das gleiche.
Kenne die Software von Ulli Radig nicht, da ich meine eigene gemacht 
habe.
Poste doch einfach mal Dein bisheriges Protokoll, also das was Du 
geschickt hast und das, was Du empfangen hast dann kann ich Dir bestimmt 
weiterhelfen.

MFG

Autor: TH (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@CC

Ok, hänge das mal als ".txt" an.

Gruß TH

Autor: CC (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, ich werde es mir morgen mal anschauen wenn ich dazu komme.
Sobald die Mux Pakete anfangen sehe ich aber nur die Befehle die Du 
schickst ... Du wartest aber schon auf die ACK der Kamera und prüfst obe 
die stimmen oder haust Du dem die kompletten Befehle am Stück um die 
Ohren ??
Die Mux Pakete fangen so an ...

SLAVE  -> ù     ?       ù
          F9 03 3F 01 1C F9
MASTER -> ù     s     ×  ù
          F9 03 73 01 D7 F9
SLAVE  -> ù  #  ?     É  ù
          F9 23 3F 01 C9 F9
MASTER -> ù  #  s        ù
          F9 23 73 01 02 F9

Autor: TH (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh, hatte ich auskommentiert, weil ich offensichtlich durch die vielen 
Debugausgaben Timingprobleme bekomme. Eigenartig dabei ist, wenn ich "zu 
schnell" sende, geht ab 460kBaud erstmal nichts mehr. Erst wenn ich bei 
der Sendung eines einzelnen Zeichens eine kleine Verzögerung durch 
Debugmeldungen einbaue, gehts ?!
Ich warte nicht auf ACK sondern auf das richtige Paket:

wenn von CAM: "F9 03 3F 01 1C F9"
dann sende: "F9 03 73 01 D7 F9", das stimmt so.

Und hier das erste Problem, hab ich gerade entdeckt,
hab als zweites von der CAM:
"F9 23 F9"
dann sende ich: "F9 23 73 01 02 F9" - so geht es,
sollte aber "F9 23 3F 01 C9 F9" empfangen. Ist da schon der erste Fehler 
?
Muß ich "F9 23 F9" irgendwie quittieren, oder ist es ein Fehler ?

Autor: CC (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein. das muss ein Fehler sein.

Du musst genau das empfangen und senden was ich oben gepostet habe.
Die Kamera sendet auf jeden Mux Frame die passende Antwort, hatte es 
bisher noch nicht gehabt dass sie zwischendrin mal ein paar Dummy Frames 
geschickt hat.

Also schicke oben der Reihenfolge nach die Mux Pakete hin und werte die 
Antwort aus, sobald die Antwort nicht so ist wie sie soll läuft 
irgendwas schief.

MFG

Autor: TH (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alles klar, dann muß ich an dieser Stelle weitersuchen. Dann ist die 
Ursache offensichtlich doch meine Sendegeschwindigkeit bei 460kBaud. 
Sehr eigenartig, aber muß so sein, den ersten MUX Frame von der CAM 
empfange ich korrekt, sende auch die richtige Antwort, aber dann kommt 
Müll (F9 23 F9).
Vielen Dank erstmal für Deine Mühe. Melde mich, wenn ich nicht weiter 
komme, bzw. berichte zwischendurch mal.
Hast Du evtl. eine ausführliche Beschreibung des MUX Protokolls oder 
einen guten Link für mich ?

Gruß TH

Autor: TH (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, habs hinbekommen, mein AVR Webserver speichert mir Bilder auf 
SD-Card. Das Problem waren wirklich die debug Ausgaben. Dadurch kam die 
Kommunikation durcheinander. Was ich noch nicht hinbekommen habe, sind 
die Funlayer, kann da ein "0x30" genau wie "0x40" oder "0x80" senden, es 
wird irgendwie ignoriert.

Autor: TH (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Update: Funlayer jetzt auch ok, werde jetzt versuchen, etwas die 
Geschwindigkeiten zu optimieren. Sonst funktioniert alles schon ganz gut 
;o)

Autor: Bjoern (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe mir auch gerade eine MCA30 zur Anbindung an meinen AtMega 
bestellt - vielleicht könnte ja einer von meinen Vorrednern so 
freundlich sein, den Code für die Kommunikation hier zu posten? Das wäre 
echt klasse - no need to reinvent the wheel ;)

Cheers,
Bjoern


PS Es geht wirklich um die MCA30, nicht die MCA25, die ist ja 
ausführlich diskutiert. Oder ist der Kommunikationscode für die MCA25 
1:1 für die MCA30 verwendbar? Danke!

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.