It is currently Fri May 24, 2013 8:32 pm
       


All times are UTC + 1 hour




Post new topic Reply to topic  [ 6 posts ] 
Author Message
 Post subject: RP6 Loader interna - flashen über Bluetooth Modul
PostPosted: Sun Dec 20, 2009 12:12 am 
Offline
New User

Joined: Sat Dec 19, 2009 11:48 pm
Posts: 3
Hallo,

ich habe seit einigen Tagen ein BTM 222 SPP Bluetooth Modul an meinen RP6 angeschlossen. Die serielle Datenübetragung während des Betriebs funktioniert reibungslos sowohl mit dem Terminal des RP Loaders als auch mit anderen Programmen.
Jetzt würde ich auch gerne über Bluetooth den RP6 flashen.
Leider ist auf dem Modul von Peter Plischka (http://plischka.at/Funk_Bluetooth.html) die Leitung RTS nicht verdrahtet (das BTM 222 Modul hat sie aber). Ich habe es so verstanden, dass der Bootloader des RP6, der ja mit RPLoader seriell kommunizert irgendwann ein Reset Signal erwartet (eben das über RTS kommen soll). ich dachte mir nun, dass man das ja evtl. auch über manuelles Drücken des reset Knopfs am RP6 hinbekommen könnte. In ca. 20 Versuchen ist es mir auch tatsächlich zweimal gelungen eine Verbindung herzustellen und sogar einmal eine .hex Datei upzuloaden. Gibt es da einen Trick?

Code:
Connection error!!!!
ERROR (2)  ||| Wrong ID received!
Communication problem!
Please refer to the manual error section!
TERMINAL: RP6BOOT]

[READY]

Message (Sat Dec 19 17:50:49 CET 2009) : RP6Main.actionPerformed: CONNECT
Baudrate is set to: 38400
Try to get ID...
Bootloader active "[RP6BOOT]"
Connected to target!
Target ID received:
RP6: Board ID 1, Firmware Version 1.4, Board Rev.: 5
["RP6 Robot Base", 1, MEGA32, 0, 30720, true]
RP6 Mainboard, reading Battery voltage...
Voltage read: 7.71V
TERMINAL:
[READY]

Message (Sat Dec 19 17:51:01 CET 2009) : RP6Main.actionPerformed: UPLOAD
PARSING: IHEX, File:C:\Programme\robot\RP6Examples\RP6BASE_EXAMPLES\qlearn_light_acs_2\qlearn_la2.hex
PARSING DONE! CRC16 is 0xF623
Baudrate is set to: 38400
Uploading new program to target device; Range: 0 - 2b88
Bootloader active "[RP6BOOT]"
Connected to target!
Target ID received:
RP6: Board ID 1, Firmware Version 1.4, Board Rev.: 5
["RP6 Robot Base", 1, MEGA32, 0, 30720, true]
RP6 Mainboard, reading Battery voltage...
Force Low Upload Speed is enabled!
Upload in progress...
Write 256b @0 ; CRC16: 0xE9A
Write 256b @256 ; CRC16: 0xF0BC
Write 256b @512 ; CRC16: 0xA6D3
Write 256b @768 ; CRC16: 0xD50C
Write 256b @1024 ; CRC16: 0x65A7
Write 256b @1280 ; CRC16: 0x89FE
Write 256b @1536 ; CRC16: 0xA847
Write 256b @1792 ; CRC16: 0xF102
Write 256b @2048 ; CRC16: 0xAAD8
Write 256b @2304 ; CRC16: 0xD6FD
Write 256b @2560 ; CRC16: 0xE414
Write 256b @2816 ; CRC16: 0x80E2
Write 256b @3072 ; CRC16: 0x71C0
Write 256b @3328 ; CRC16: 0x6B8A
Write 256b @3584 ; CRC16: 0x1347
Write 256b @3840 ; CRC16: 0x2325
Write 256b @4096 ; CRC16: 0x4DD6
Write 256b @4352 ; CRC16: 0x420B
Write 256b @4608 ; CRC16: 0xDBC
Write 256b @4864 ; CRC16: 0x6379
Write 256b @5120 ; CRC16: 0x410F
Write 256b @5376 ; CRC16: 0x2032
Write 256b @5632 ; CRC16: 0x692A
Write 256b @5888 ; CRC16: 0xE842
Write 256b @6144 ; CRC16: 0x5098
Write 256b @6400 ; CRC16: 0x2681
Write 256b @6656 ; CRC16: 0x38B8
Write 256b @6912 ; CRC16: 0xFCC7
Write 256b @7168 ; CRC16: 0x2C7
Write 256b @7424 ; CRC16: 0xCE81
Write 256b @7680 ; CRC16: 0xA118
Write 256b @7936 ; CRC16: 0xA016
Write 256b @8192 ; CRC16: 0x59E1
Write 256b @8448 ; CRC16: 0x8F7
Write 256b @8704 ; CRC16: 0x506
Write 256b @8960 ; CRC16: 0x1566
Write 256b @9216 ; CRC16: 0x92B0
Write 256b @9472 ; CRC16: 0x9AC
Write 256b @9728 ; CRC16: 0x325C
Write 256b @9984 ; CRC16: 0x5447
Write 256b @10240 ; CRC16: 0x1F5B
Write 256b @10496 ; CRC16: 0xE3D1
Write 256b @10752 ; CRC16: 0xC8D2
Write 256b @11008 ; CRC16: 0x8A95
Baudrate is set to: 38400
Task completed successfully! Time needed: 7438ms
TERMINAL:
[READY]


Da ich wenig Lust habe an den SMD Beinchen herumzulöten würde mich interessieren, ob es eine einfache Möglichkeit gibt während des Connect und HEX uploads mit Drücken der reset Taste die Kommunikation hinzubekommen.

Die zweite Frage bezieht sich auf das parallele Betreiben des USB Interface mit dem BTM 222. Sobald das BTM 222 angeschlossen ist kann man über USB (FTDI) nicht mehr connecten. Es kommt immer Error 2, wrong ID. Kann das was damit zu tun haben, dass das BTM irgenwelche Sachen sendet?


Top
 Profile E-mail  
 
 Post subject: Re: RP6 Loader interna - flashen über Bluetooth Modul
PostPosted: Sun Dec 20, 2009 1:41 pm 
Offline
Administrator
User avatar

Joined: Fri Mar 25, 2005 6:19 pm
Posts: 1378
Location: NRW
Hallo,

zunächst einmal:

> BTM222 und USB Interface gleichzeitig

ist ganz schlecht. Wenn da Ausgang an Ausgang angeschlossen ist und der eine schaltet nach High (also +), der andere nach Low (-)... was passiert dann?
Genau, "Kurzschluss" (natürlich begrenzt durch die Treiberstärke der Ausgänge) und einer der Ausgänge könnte dadurch auf Dauer beschädigt werden.

Da müsstest Du mindestens Jumper (=Stiftleiste+Brücke) einfügen und die immer umstecken je nachdem was gebraucht wird.

Ist in diesem Fall zum Glück nicht ganz so schlimm da die Schnittstellen alle auf high geschaltet sein sollten wenn keine Daten gesendet werden... dennoch keine gute Idee.



Zum Reset auslösen:
Versuch mal auf Verbinden zu klicken und dann sofort innerhalb von 1 bis 3 Sekunden den Reset auszulösen. Dann sollte es klappen.
Den Timeout kann man im RP6Loader übrigens in den Einstellungen verlängern...


> Da ich wenig Lust habe an den SMD Beinchen herumzulöten

Na dass ist ja noch grobes SMD - das bekommt man ja noch mit ner fetten 1mm Lötspitze verlötet. Einfach kleines dünnes isoliertes Kabel dran :) ;)
Besorg dir vielleicht irgendwelche defekten Platinen mit SMD Bauteilen an denen Du üben kannst. Ist wirklich nicht schwer.


MfG,
SlyD


Top
 Profile E-mail  
 
 Post subject: Re: RP6 Loader interna - flashen über Bluetooth Modul
PostPosted: Sun Dec 20, 2009 10:44 pm 
Offline
New User

Joined: Sat Dec 19, 2009 11:48 pm
Posts: 3
Hallo SlyD,

Zuerst einmal vielen Dank für die schnelle Antwort. ich muss sowieso mal ein grosses Lob anbringen: Der RP6 ist sehr gut gelungen. Der Aufbau ist gut durchdacht und die Basis Routinen zur Steuerung quasi im Hintergrund ist - wenn man sich einmal eingedacht hat - sehr elegant. Ich hatte den RP6 bei ebay ersteigert und musste lediglich mal die Zahnräder neu justieren (ist übrigens ein 1.5 mm Innensechskantschlüssel) und er funktioniert jetzt wieder sehr gut. Auch der Support über diverse Boards (hier und Roboternetz) ist sehr hilfreich und hat bei mir auch zur Kaufentscheidung beigetragen. Die Genauigkeit von Rotationen und die Fahrtstrecke bei "move" ist nach Kalibration sehr genau (auf der gleichen Oberfläche).
Ich will den RP6 vor allem lernen lassen (Reinforcement Learning) und da werde ich wohl einige Sachen mit MatLab auf dem PC probieren, deswegen das Bluetooth Modul.


SlyD wrote:
Hallo,

zunächst einmal:

> BTM222 und USB Interface gleichzeitig

ist ganz schlecht. Wenn da Ausgang an Ausgang angeschlossen ist und der eine schaltet nach High (also +), der andere nach Low (-)... was passiert dann?
Genau, "Kurzschluss" (natürlich begrenzt durch die Treiberstärke der Ausgänge) und einer der Ausgänge könnte dadurch auf Dauer beschädigt werden.

Da müsstest Du mindestens Jumper (=Stiftleiste+Brücke) einfügen und die immer umstecken je nachdem was gebraucht wird.

Ist in diesem Fall zum Glück nicht ganz so schlimm da die Schnittstellen alle auf high geschaltet sein sollten wenn keine Daten gesendet werden... dennoch keine gute Idee.



Oooops :oops2: . Vielen Dank für die Nachricht, hätte ich natürlich mit Nachdenken drauf kommen müssen. Glück gehabt.

SlyD wrote:
Zum Reset auslösen:
Versuch mal auf Verbinden zu klicken und dann sofort innerhalb von 1 bis 3 Sekunden den Reset auszulösen. Dann sollte es klappen.
Den Timeout kann man im RP6Loader übrigens in den Einstellungen verlängern...


So einfach geht es irgendwie nicht. Könnte es sein, dass der Taster prellt und zu viele Resets kommen?
Im Logfile stehen auch immer Passagen wie (wenn es nicht klappt):

Code:
Try to get ID...
Bootloader active "RP6 q-lea"
Connection error!!!!
ERROR (2)  ||| Wrong ID received!


oder (wenn es mal geklappt hat):

Code:
Try to get ID...
Bootloader active "[RP6BOOT]"
TERMINAL: RP6 q-learn - Test
__________________


Connected to target!
Target ID received:
RP6: Board ID 1, Firmware Version 1.4, Board Rev.: 5
["RP6 Robot Base", 1, MEGA32, 0, 30720, true]
RP6 Mainboard, reading Battery voltage...
Voltage read: 7.69V
TERMINAL: 


was bedeutet vor allem die Zeile
Code:
Bootloader active "[RP6BOOT]"




SlyD wrote:
> Da ich wenig Lust habe an den SMD Beinchen herumzulöten

Na dass ist ja noch grobes SMD - das bekommt man ja noch mit ner fetten 1mm Lötspitze verlötet. Einfach kleines dünnes isoliertes Kabel dran :) ;)
Besorg dir vielleicht irgendwelche defekten Platinen mit SMD Bauteilen an denen Du üben kannst. Ist wirklich nicht schwer.


Ach so, Du meinst wohl einen Draht an das BTM 222 Modul anlöten? Ja das traue ich mir zu, aber das sind nur 3.3V Pegel. Reicht das denn? Ich dachte daran die zwei freien Schmitt Trigger auf dem 74HCT14 zu benutzen um den Pegel auf TTL zu heben. Dazu müsste ich einzelne Beinchen ablöten und in der Luft frei verdrahten... :? :shock:


Danke & Gruss

-qlearn


Top
 Profile E-mail  
 
 Post subject: Re: RP6 Loader interna - flashen über Bluetooth Modul
PostPosted: Mon Dec 21, 2009 5:55 pm 
Offline
Administrator
User avatar

Joined: Fri Mar 25, 2005 6:19 pm
Posts: 1378
Location: NRW
Quote:
So einfach geht es irgendwie nicht. Könnte es sein, dass der Taster prellt und zu viele Resets kommen?
Im Logfile stehen auch immer Passagen wie (wenn es nicht klappt):

Code:
Try to get ID...
Bootloader active "RP6 q-lea"
Connection error!!!!
ERROR (2)  ||| Wrong ID received!



Ähm - ja achso das liegt daran das Du bei einem Druck auf START/Stop natürlich das Programm im Mikrocontroller startest... das gibt dann irgendwas auf der seriellen aus, nämlich "RP6 q-lea".... was natürlich nicht das ist was erwartet wird.
1. Möglichkeit: Zusätzlichen Taster einbauen.

Code:
GND -- [Taster] -- [Widerstand] -- MRESET


Widerstand sollte 150 Ohm bis max. 2K Ohm (egal welcher Wert genau) haben. Ja ist notwendig.

Mit einem nur nach GND geschalteten Taster kann das Programm nicht gestartet werden, es wird nur ein Reset ausgelöst.


2. Möglichkeit:
Eben doch den RTS Ausgang des Bluetooth Moduls verwenden ;)


> 3.3V Pegel

Da hast Du natürlich recht - naja einfach einen NPN Transistor nach Masse schalten (mit Basisvorwiderstand (1K-5K Ohm) und ansonsten genauso wie oben beschrieben. ).

Code:
GND -- [Transistor NPN] -- [R] -- MRESET
              |
RTS---[R]-----+


Oder auf deiner Bluetooth Platine Leiterbahnen durchtrennen und die freien Inverter verwenden.

MfG,
SlyD


Top
 Profile E-mail  
 
 Post subject: Re: RP6 Loader interna - flashen über Bluetooth Modul
PostPosted: Wed Dec 23, 2009 12:49 am 
Offline
New User

Joined: Sat Dec 19, 2009 11:48 pm
Posts: 3
Habe jetzt die Variante mit Taster über 1K Widerstand gegen Masse aufgebaut und bin begeistert. Funktioniert tadellos. Ich kann jetzt sowohl Daten mit dem RP6 austauschen als auch flashen. Dauert zwar etwas länger, aber ist OK. Vielen dank nochmal für die Hilfe.

PS. Ich hab mir den Schaltplan mal angeschaut. Dort zieht der Start Taster sowohl MRESET als auch START/MOSI über 100K auf Masse. Wieso benötigt man einen Widerstand zwischen Masse und MRESET?

Gruß

qlearn


Top
 Profile E-mail  
 
 Post subject: Re: RP6 Loader interna - flashen über Bluetooth Modul
PostPosted: Wed Dec 23, 2009 1:59 pm 
Offline
Administrator
User avatar

Joined: Fri Mar 25, 2005 6:19 pm
Posts: 1378
Location: NRW
Das mit dem Start Taster ist ein bisschen komplizierter ;)

Der Pin wird hier erst als Eingang verwendet - dann wird gewartet bis der Taster gedrückt (Pullup an MRESET also +5V!) und wieder losgelassen wird --> Startsignal. Dann wir er auf Ausgang geschaltet und Low gesetzt.
Wird jetzt der Taster nochmal gedrückt wird der Reset ausgelöst.
Der Widerstand ist nur ein Pulldown damit bei nicht gedrücktem Taster keine Störungen das Startsignal auslösen.

MfG,
SlyD


Top
 Profile E-mail  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 6 posts ] 

All times are UTC + 1 hour


Who is online

Users browsing this forum: Google [Bot] and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group