Servus allerseits!
Habe mir vor kurzem eine CMUcam3 gekauft, und dabei dummerweise nicht
beachtet, dass diese (scheinbar) nur eine Baudrate von 115,2kbs
unterstützt. Die maximale Baud bei meinem µController (Basic Atom 28Pin)
liegt jedoch bei 57,6kbs. Jetzt bin ich auf der Suche nach einem der
folgenden Auswege:
- Gibt es zufällig eine Möglichkeit die CMUcam3 über eine geringere Baud
anzusprechen?
- Gibt es ein Modul das die Baudraten entsprechend anpassen kann?
(Möchte wenn möglich Nichts löten oder so --> fertiges Modul mit Pins)
- Oder kann mir jemand ein möglichst günstiges µControllermodul
empfehlen das beide Baudraten unterstützt? (Habe schon in verschiedenen
Shops gesucht, aber es stehen nie Infos über die unterstützten Baudraten
dabei oder ich bin zu blöd sie zu finden)
Danke schonmal im Voraus!
Falls Du Deinen Controller weiter verwenden möchtest, so könntest Du
sicherlich auf einen MAX3100 zurückgreifen. Der macht SPI<->UART. Ist
ganz einfach und praktisch... Allerdings: ganz ohne Löten kommst Du dann
nicht zum Ziel...
Geht auch mit allen AVR´s mit USART mit nem Baudraten Quarz z.b. 7,3728
Mhz geht sogar bis 460800 Baud mit nem 14,~ Quarz kommst sicher noch
wesentlich höher.
Es gibt keinen µController, der Basic Atom 28Pin heißt.
Ich vermute mal, das ist ne Platine mit nem MC drauf und nem
Basic-Interpreter reinprogrammiert. Und dieser Basic-Interpreter
unterstützt nur nicht die 115,2kbaud. Der MC selber kann es aber.
Oder auf dem Board ist so eine blöde Quarzfrequenz draufgesetzt, daß die
115.2kBaud nicht gehen.
Es ist also keine Frage des MC-Typs, sondern der Software bzw.
Schaltung.
Peter
Elektrikser wrote:
> Wenn ich das richtig sehe, dann ist da ein Renesas H8/3664 verbaut.
Ne, ein PIC:
http://www.basicmicro.com/downloads/docs/atom28.pdf
Für das bischen Platine einen so horrenden Aufpreis zu verlangen, finde
ich unverschämt. Dafür kriegt man ja 20 MCs.
Peter
>Für das bischen Platine einen so horrenden Aufpreis zu verlangen,>finde ich unverschämt. Dafür kriegt man ja 20 MCs.
Die Software will auch bezahlt werden.
Obelix wrote:
> Die Software will auch bezahlt werden.
Naja, für 85,-Ocken krieg ich aber auch ne Vollversion Bascom-AVR (78,-)
und ne Handvoll ATMega8 (1,70).
Wenn man pro Chip die Software immer wieder neu bezahlt, geht das ganz
schön ins Geld.
Peter
P.S.:
Oder WINAVR (0,-) + 50 ATmega8.
Erstmal danke an alle für die schnelle Hilfe!
Der Atom28 kann tatsächlich 115kbs (sogar bis 1250kbs), geht allerdings
nur zum Programmieren. Für die Befehle serin und serout ist die maximale
Baud aber leider 57,6kbs (siehe Syntax Manual S.105 und S.108). Es gibt
zwar noch die Befehle hserin und hserout die auch die hohen Baudraten
unterstützen, jedoch bekomme ich damit nicht mal ne Verbindung zu einem
Terminal am PC hin.
Syntax Manual: http://www.basicmicro.com/downloads/docs/atom3_2.pdf
Gruß Phi
Phi wrote:
> Es gibt> zwar noch die Befehle hserin und hserout die auch die hohen Baudraten> unterstützen, jedoch bekomme ich damit nicht mal ne Verbindung zu einem> Terminal am PC hin.
Vermutlich brauchst Du dann nen MAX232.
Peter
Weiß zwar net genau, was der MAX232 so tut, aber meine irgendwo mal
aufgeschnappt zu haben, dass das ein Pegelwandler ist. Sollte das so
sein, dann bringt mich der glaub au net weiter, ein Pegelwandler ist
bereits im Modul integriert.
(Hab hoffentlich grad keinen Müll geschrieben, bin nicht so sattelfest
bei dem Thema)
Gruß Phi
Die CMUcam3 ist ja echt eine interessante Sache (bis auf den Preis von
ca. 150€): http://www.cmucam.org/wiki
Ich würde versuchen die Open Source Firmware davon auf eine niedrigere
Baudrate abzuändern. Im Prinzip ist es IMHO nur ein Parameter bei der
Initialisierung der geändert werden muss...
Kann natürlich sein, dass die Kamera dann zu schnell Daten produziert
und nicht schnell genug an den PC bzw. dein Atom28 los wird.
Eventuell gibt die CMUcam3 Community oder die Entwickler Hilfe, wie das
Programm für den ARM7 LPC2106 aussehen muss oder jemand übersetzt eine
neue Firmware für dich. Der µC auf dem CMUcam3 hat ja einen seriellen
Bootloader, so dass ein Update rel. einfach ist.
Ähm soweit ich in deinem Atom-Manual sehe, kannst du doch eine höhere
Baudrate benutzen. Du musst allerdings vor den HSERIN/HSEROUT Befehlen
noch die Baudrate etc. mit SETHSERIAL setzen (S. 115)
Aber lösgelöst davon... was machst du mit dem kitzekleinen (384 Bytes of
RAM and 8K of FLASH) Atom, was der fette ARM7TDMI auf dem CMUcam3 nicht
nebenbei mit Links miterledigen könnte? Du ziehst deinen Ferrari mit dem
Mofa zum Bäcker ;-)
Den sethserial Befehl hab ich natürlich vorher genutzt, um die Baudrate
zu setzen, aber am Terminal kommt einfach nix an...weiß au net was ich
falsch mach.
Habe alle 16 digitalen (davon 2 I2C Stänge mit je 6 Geräten) und dazu
noch 3 analoge Pins an meinem Atom mit Sensoren, Motortreiber und
Servocontroller besetzt, dass kann die CMUcam3 leider nicht...außerdem
erledigt die Hauptrechenarbeit der PC der über Funk mit dem ganzen
verbunden ist, der Microcontroller dient eigentlich nur zum Werte
sammeln und Servos/Motoren steuern. Darüber hinaus können sich der Atom
und die CMUcam3 ja die Arbeit teilen. Mag sein, dass das eine etwas
umständliche Lösung ist, aber mir erschien das recht sinnvoll, zumal ein
Anwendungsgebiet (neben dem autonomen Handeln) die Fernsteuerung vom PC
aus sein soll.
Gruß Phi
Mach mal eine Skizze/Foto davon, was du wie verbunden hast. Und wenn du
ein selbstgeschriebenes Programm laufen lässt, zeige bitte den
Sourcecode davon.
Wenn du HSERIN/HSEROUT Befehle zur Kommunikation mit dem PC (oder der
Cam) benutzen willst, brauchst du glaube ich einen
TTL/RS232-Pegelwandler (hat schon Peter geschrieben) zum Invertieren des
TTL-Pegels.
http://forums.basicmicro.net/ShowPost.aspx?PostID=19328
Die HSERIN/HSEROUT Befehle empfangen/senden auch nicht an den Pins
SIN/SOUT so wie das Programmierkabel, sondern an P14 (Empfangen mit
HSERIN) und P15 (Senden mit HSEROUT).
http://forums.basicmicro.net/ShowPost.aspx?PostID=19521
Der vorhandene TTL/RS232-Pegelwandler sitzt für diese Aufgabe an den
"falschen" Pins.
Ahh, sehr gut...wo steht das? Die CMUcam3 hat ja auch eine TTL Pegel
Schnittstelle, kann ich dann von da aus auf P14/P15 gehen, oder brauch
ich auch da einen Inverter?
Das ganze Projekt ist noch im Entwicklungsstadium: Hat noch keinen Kopf,
da die CMUcam erst am Freitag ankam und ich die ja in den Kopf einbauen
will (momentan in Arbeit); Akkus hab ich noch keine und leider auch
keine Netzteile die genug Saft liefern würden um alles auf einmal zu
betreiben --> habe momentan immer nur die Teile angeschlossen an denen
ich gerade rumprogrammiere (bis jetzt funktioniert nur die Sprachausgabe
und die Distanzmessung nach vorne und hinten, quasi wie ne Einparkhilfe
am Auto. Funkverbindung steht auch schon.)
Kann dir aber mal ne Skizze der Verkabelung und ein Foto vom aktuellen
Stand machen. Liefere das dann gleich nach...
Gruß Phi
Mit TTL-TTL müsstest du direkt Cam und Atom28 verbinden können. Die
Strecke dazwischen darf aber nicht zu lang (nicht Meterbereich!) sein,
weil du sonst viele Übertragungsfehler bekommst.
Auf Dauer würde ich die 3,95 € in einen Pegelwandler inkl. Kondensatoren
schon investieren bzw. selberbauen ;-)
http://www.pollin.de/shop/detail.php?pg=NQ==&a=MzY5OTgxOTk=
Die Doku zum Atom und dem Basic-Dialekt ist etwas dünn, aber ich habe
auch immer nur quergelesen, seit ich eben in diesen Thread reingerutscht
bin. Wertvolle Infos scheint es im Forum des Herstellers zu geben (s.
Links in meiner letzten Antwort).
Das Verbindungskabel von CMUcam3 zum ATOM wäre ca. 40cm lang, müsste
dann schon gehen. Danke für die Hilfe.
Eine Skizze der Verkabelung war mir etwas zu umständlich, müsste aber
auch so verständlich sein:
Pin Gerät
A0 GP2Y0A02YK (am Kopf)
A1 GP2D120 (auf Grundplatte nach vorne gerichtet)
A2 GP2D120 (auf Grundplatte nach hinten gerichtet)
A3 --
00 I2C Bus1 SDA
01 I2C Bus1 SCL
02 I2C Bus2 SDA
03 I2C Bus2 SCL
04 TxD serieller Funktransceiver
05 RxD serieller Funktransceiver
06 TXD CMUcam3 (am Kopf)
07 RxD CMUcam3 (amKopf)
08 IRPD1 LED1 (auf Grundplatte nach vorne gerichtet)
09 IRPD1 LED2 (auf Grundplatte nach vorne gerichtet)
10 IRPD1 In (auf Grundplatte nach vorne gerichtet)
11 SSC-32 (Servocontroller)
12 IRPD2 LED1 (auf Grundplatte nach hinten gerichtet)
13 IRPD2 LED2 (auf Grundplatte nach hinten gerichtet)
14 IRPD2 In (auf Grundplatte nach hinten gerichtet)
15 Relais für Scheinwerfer (2 am Kopf, 1 am Schwanz)
I2C Bus1: SP03 (Sprachausgabe), CMPS03 (Kompass), 2*TPA81
(Temperatursensorzeile am Kopf), MD22 (Motorcontroller)
I2C Bus2: 6*SRF08 (US-Distanzsensor; 4 auf Grundplatte, 2 am Kopf)
Außerdem befinden sich am Kopf wie auch am Schwanz noch kleine
Funkkameras, die Bild und Ton direkt zum PC senden.
Wie gesagt, es ist noch nicht alles montiert, also nicht wundern!
Das Ende vom Schwanz ist ein Greifer mit 3 Fingern (schwer zu erkennen).
Den Körper montiere ich auf die kleine drehbare vorne.
Gruß Phi