Legacy Forum: Preserving Nearly 20 Years of Community History - A Time Capsule of Discussions, Memories, and Shared Experiences.

I2C connection?

Bioloid robot kit from Korean company Robotis; CM5 controller block, AX12 servos..
10 postsPage 1 of 1
10 postsPage 1 of 1

I2C connection?

Post by siempre.aprendiendo » Mon Mar 10, 2008 2:46 pm

Post by siempre.aprendiendo
Mon Mar 10, 2008 2:46 pm

Would it be possible (and easy) to create a I2C module to the AX12+ bus (as the greats havimo camera or Jon's board) to connect and use I2C sensors?
Would it be possible (and easy) to create a I2C module to the AX12+ bus (as the greats havimo camera or Jon's board) to connect and use I2C sensors?
siempre.aprendiendo
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 559
Joined: Wed Aug 08, 2007 9:13 pm
Location: Barcelona

Post by JonHylands » Mon Mar 10, 2008 3:48 pm

Post by JonHylands
Mon Mar 10, 2008 3:48 pm

Well, its possible, but it would be hard to do a generic I2C interface, for the same reason its hard to do a generic serial interface.

I2C is a command-based protocol, and Bioloid devices use a data-based system (the control table). For a specific I2C sensor (like say a sonar or LCD panel) it would be easy to do that, because then you can handle the commands in the micro-controller you're using to interface to the bus, and still end up with a control table representation of the data.

- Jon
Well, its possible, but it would be hard to do a generic I2C interface, for the same reason its hard to do a generic serial interface.

I2C is a command-based protocol, and Bioloid devices use a data-based system (the control table). For a specific I2C sensor (like say a sonar or LCD panel) it would be easy to do that, because then you can handle the commands in the micro-controller you're using to interface to the bus, and still end up with a control table representation of the data.

- Jon
JonHylands
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 512
Joined: Thu Nov 09, 2006 1:00 am
Location: Ontario, Canada

Post by hamid_m » Mon Mar 10, 2008 6:41 pm

Post by hamid_m
Mon Mar 10, 2008 6:41 pm

Hi,

Actually we are working on a version of the module which is able to communicate with I2C bus. We will release the version in future.

Hamid.
Hi,

Actually we are working on a version of the module which is able to communicate with I2C bus. We will release the version in future.

Hamid.
hamid_m
Savvy Roboteer
Savvy Roboteer
Posts: 133
Joined: Thu May 03, 2007 4:56 pm

Post by siempre.aprendiendo » Tue Mar 11, 2008 12:41 pm

Post by siempre.aprendiendo
Tue Mar 11, 2008 12:41 pm

JonHylands wrote:Well, its possible, but it would be hard to do a generic I2C interface, for the same reason its hard to do a generic serial interface.

I2C is a command-based protocol, and Bioloid devices use a data-based system (the control table). For a specific I2C sensor (like say a sonar or LCD panel) it would be easy to do that, because then you can handle the commands in the micro-controller you're using to interface to the bus, and still end up with a control table representation of the data.

- Jon



I'm not very used to I2C... what are the "differences" between I2C "implementations" ?

Thanks!
JonHylands wrote:Well, its possible, but it would be hard to do a generic I2C interface, for the same reason its hard to do a generic serial interface.

I2C is a command-based protocol, and Bioloid devices use a data-based system (the control table). For a specific I2C sensor (like say a sonar or LCD panel) it would be easy to do that, because then you can handle the commands in the micro-controller you're using to interface to the bus, and still end up with a control table representation of the data.

- Jon



I'm not very used to I2C... what are the "differences" between I2C "implementations" ?

Thanks!
siempre.aprendiendo
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 559
Joined: Wed Aug 08, 2007 9:13 pm
Location: Barcelona

Post by JonHylands » Tue Mar 11, 2008 1:48 pm

Post by JonHylands
Tue Mar 11, 2008 1:48 pm

There really isn't any. I2C is a serial communications protocol, like RS-232 or SPI or even USB. Its just a specification that allows two or more devices to communicate using a couple wires.

In order to support putting an I2C port (or even a regular serial port) on say my I/O board, we would need to add a few new commands to the bioloid bus specification (current it has commands like WRITE_DATA and READ_DATA). We would need to add something like SEND_COMMAND, which (from a philosophical standpoint) goes against what Robotis tried to do with the control-table implementation. When I build a Bioloid bus device, it is important to me that it works exactly the same as Robotis devices, including having a similar layout to the control table, and a similar way to talk to the device.

- Jon
There really isn't any. I2C is a serial communications protocol, like RS-232 or SPI or even USB. Its just a specification that allows two or more devices to communicate using a couple wires.

In order to support putting an I2C port (or even a regular serial port) on say my I/O board, we would need to add a few new commands to the bioloid bus specification (current it has commands like WRITE_DATA and READ_DATA). We would need to add something like SEND_COMMAND, which (from a philosophical standpoint) goes against what Robotis tried to do with the control-table implementation. When I build a Bioloid bus device, it is important to me that it works exactly the same as Robotis devices, including having a similar layout to the control table, and a similar way to talk to the device.

- Jon
JonHylands
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 512
Joined: Thu Nov 09, 2006 1:00 am
Location: Ontario, Canada

Post by siempre.aprendiendo » Tue Mar 11, 2008 2:01 pm

Post by siempre.aprendiendo
Tue Mar 11, 2008 2:01 pm

Ok, I understand :) Thank you very much, Jon
Ok, I understand :) Thank you very much, Jon
siempre.aprendiendo
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 559
Joined: Wed Aug 08, 2007 9:13 pm
Location: Barcelona

Post by Pev » Wed Mar 12, 2008 9:20 am

Post by Pev
Wed Mar 12, 2008 9:20 am

JonHylands wrote:There really isn't any. I2C is a serial communications protocol, like RS-232 or SPI or even USB. Its just a specification that allows two or more devices to communicate using a couple wires.

In order to support putting an I2C port (or even a regular serial port) on say my I/O board, we would need to add a few new commands to the bioloid bus specification (current it has commands like WRITE_DATA and READ_DATA). We would need to add something like SEND_COMMAND, which (from a philosophical standpoint) goes against what Robotis tried to do with the control-table implementation. When I build a Bioloid bus device, it is important to me that it works exactly the same as Robotis devices, including having a similar layout to the control table, and a similar way to talk to the device.

- Jon


I did a very basic I2C using the pepperm i/o board - used a register to act as a trigger to send an I2C command to a sensor then loaded the result back into another register and read it from there. The tough bit is the timing as the sensor took 65ms to respond, so it was trigger it - do a load of other stuff then read the results. I have considered putting an I2C slave processor with the module and having that service all the I2C sensors continually from powerup then just using the I/O module to read the I2C slave when requested with the results for each sensor at different register addresses but have never got around to implementing it.

Pev
JonHylands wrote:There really isn't any. I2C is a serial communications protocol, like RS-232 or SPI or even USB. Its just a specification that allows two or more devices to communicate using a couple wires.

In order to support putting an I2C port (or even a regular serial port) on say my I/O board, we would need to add a few new commands to the bioloid bus specification (current it has commands like WRITE_DATA and READ_DATA). We would need to add something like SEND_COMMAND, which (from a philosophical standpoint) goes against what Robotis tried to do with the control-table implementation. When I build a Bioloid bus device, it is important to me that it works exactly the same as Robotis devices, including having a similar layout to the control table, and a similar way to talk to the device.

- Jon


I did a very basic I2C using the pepperm i/o board - used a register to act as a trigger to send an I2C command to a sensor then loaded the result back into another register and read it from there. The tough bit is the timing as the sensor took 65ms to respond, so it was trigger it - do a load of other stuff then read the results. I have considered putting an I2C slave processor with the module and having that service all the I2C sensors continually from powerup then just using the I/O module to read the I2C slave when requested with the results for each sensor at different register addresses but have never got around to implementing it.

Pev
Carl
-------------------------
www.alt-view.co.uk
Pev
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 547
Joined: Sun Feb 26, 2006 1:00 am
Location: UK

Post by JonHylands » Wed Mar 12, 2008 1:33 pm

Post by JonHylands
Wed Mar 12, 2008 1:33 pm

If you could guarantee that your I2C device would never send more than a certain number of bytes, you could easily set up a read/write buffer as a part of the command table, and do it that way (which is basically what Pev suggests).

- Jon
If you could guarantee that your I2C device would never send more than a certain number of bytes, you could easily set up a read/write buffer as a part of the command table, and do it that way (which is basically what Pev suggests).

- Jon
JonHylands
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 512
Joined: Thu Nov 09, 2006 1:00 am
Location: Ontario, Canada

Robostix

Post by siempre.aprendiendo » Tue Mar 18, 2008 10:16 am

Post by siempre.aprendiendo
Tue Mar 18, 2008 10:16 am

I have found that Robostix is based on ATMega128 and have "some" I2C support.
I have found that Robostix is based on ATMega128 and have "some" I2C support.
siempre.aprendiendo
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 559
Joined: Wed Aug 08, 2007 9:13 pm
Location: Barcelona

Post by JonHylands » Tue Mar 18, 2008 1:14 pm

Post by JonHylands
Tue Mar 18, 2008 1:14 pm

All the ATmega chips support I2C fully, master or slave.

- Jon
All the ATmega chips support I2C fully, master or slave.

- Jon
JonHylands
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 512
Joined: Thu Nov 09, 2006 1:00 am
Location: Ontario, Canada


10 postsPage 1 of 1
10 postsPage 1 of 1