superkato
05.11.2010, 13:23
Hallo ich habe drei SRF02 Ultraschallsensoren.
Ich würde gerne die Adressen der drei Sensoren ändern.
Von der standardmäßigen Adresse 0xE0 auf 0xE2.
Ich schließe meinen Ultraschallsensor dafür an ein I2C Board von ELV:
http://www.elv.de/output/controller.aspx?cid=74&detail=10&detail2=24012&flv=1&bereich=&marke=
und benutze zur Kommunikation HTERM.
Die Verbindung zum ELV-i2c-Board baut HTERM auf.
In der Beschreibung des SRF02:
http://www.robot-electronics.co.uk/htm/srf02techI2C.htm
steht das man folgende Sequenz absenden muss um die Adresse zu ändern:
Changing the I2C Bus Address
To change the I2C address of the SRF02 you must have only one sonar on the bus. Write the 3 sequence commands in the correct order followed by the address. Example; to change the address of a sonar currently at 0xE0 (the default shipped address) to 0xF2, write the following to address 0xE0; (0xA0, 0xAA, 0xA5, 0xF2 ). These commands must be sent in the correct sequence to change the I2C address, additionally, No other command may be issued in the middle of the sequence. The sequence must be sent to the command register at location 0, which means 4 separate write transactions on the I2C bus. When done, you should label the sonar with its address, however if you do forget, just power it up without sending any commands. The SRF02 will flash its address out on the LED. One long flash followed by a number of shorter flashes indicating its address. The flashing is terminated immediately on sending a command the SRF02.
jetzt schreibe ich in das Terminal folgendne Befehl:
S50 A0 S50 AA S50 A5 S50 E2 P
Die Befehlsspezifikation vom ELV Board lautet :
Beispiele:
Schreibe das Daten-Byte 0xFF in das Gerät mit der Geräte-Adresse 1000 000X (binär).
Bildung der Adresse: 1000 000X + Schreib-Bit (0) = 1000 0000 (binär) = 40 (hexadezimal)
[Start] [Write-Adr:0x40] [Daten:0xFF] [Stopp]
S 40 FF P
aber wenn ich dann den Sensor an den I2C USB Adapter anschließe um das SRF02 Tool zu nutzen, sagt er mir das er immer noch die Adresse 0xE0 hat und auch von dort aus die Daten empfängt :(
Hat jemand eine Idee?
Gruß
SK
Ich würde gerne die Adressen der drei Sensoren ändern.
Von der standardmäßigen Adresse 0xE0 auf 0xE2.
Ich schließe meinen Ultraschallsensor dafür an ein I2C Board von ELV:
http://www.elv.de/output/controller.aspx?cid=74&detail=10&detail2=24012&flv=1&bereich=&marke=
und benutze zur Kommunikation HTERM.
Die Verbindung zum ELV-i2c-Board baut HTERM auf.
In der Beschreibung des SRF02:
http://www.robot-electronics.co.uk/htm/srf02techI2C.htm
steht das man folgende Sequenz absenden muss um die Adresse zu ändern:
Changing the I2C Bus Address
To change the I2C address of the SRF02 you must have only one sonar on the bus. Write the 3 sequence commands in the correct order followed by the address. Example; to change the address of a sonar currently at 0xE0 (the default shipped address) to 0xF2, write the following to address 0xE0; (0xA0, 0xAA, 0xA5, 0xF2 ). These commands must be sent in the correct sequence to change the I2C address, additionally, No other command may be issued in the middle of the sequence. The sequence must be sent to the command register at location 0, which means 4 separate write transactions on the I2C bus. When done, you should label the sonar with its address, however if you do forget, just power it up without sending any commands. The SRF02 will flash its address out on the LED. One long flash followed by a number of shorter flashes indicating its address. The flashing is terminated immediately on sending a command the SRF02.
jetzt schreibe ich in das Terminal folgendne Befehl:
S50 A0 S50 AA S50 A5 S50 E2 P
Die Befehlsspezifikation vom ELV Board lautet :
Beispiele:
Schreibe das Daten-Byte 0xFF in das Gerät mit der Geräte-Adresse 1000 000X (binär).
Bildung der Adresse: 1000 000X + Schreib-Bit (0) = 1000 0000 (binär) = 40 (hexadezimal)
[Start] [Write-Adr:0x40] [Daten:0xFF] [Stopp]
S 40 FF P
aber wenn ich dann den Sensor an den I2C USB Adapter anschließe um das SRF02 Tool zu nutzen, sagt er mir das er immer noch die Adresse 0xE0 hat und auch von dort aus die Daten empfängt :(
Hat jemand eine Idee?
Gruß
SK