From: Agustin H. <ah...@gm...> - 2007-06-19 22:44:46
|
I was seeing the codes relates with i2c-io and the AVR data sheet in the section Two wire serial interface, and i have some questions: When i downloaded the i2c-io program i saw the info related ths is exactly the same that http://docwiki.gumstix.org/I2c-io however the i2c-io prgram have a option related with ADC in switch case I2C_IO_GET_ADC, can i used it or why dont appear in the commands supported. Other thing that i was waiting to see is a machine state during the i2c- interrupt in main program what happed when TSWR have values like $A8, $B0, $B8, $C8, $C0 or $60, $68, $70, $78, $80, etc Im a beginner with this protocol, i would like to know how this program works in general. Finally question wich programs i need to modify in order to send more than 16 bits Thanks for all |
From: Dave H. <dhy...@gm...> - 2007-06-20 00:24:03
|
Hi Agustin, > I was seeing the codes relates with i2c-io and the AVR data sheet in the > section Two wire serial interface, and i have some questions: > > When i downloaded the i2c-io program i saw the info related ths is exactly > the same that http://docwiki.gumstix.org/I2c-io however the > i2c-io prgram have a option related with ADC in switch case I2C_IO_GET_ADC, > can i used it or why dont appear in the commands supported. When you do: i2c-io 0x0b get D.3 it will call the function (on the gumstix) I2C_IO_GetGPIO which gets translated into I2C_IO_GET_GPIO on the robostix. On the other hand when you do: i2c-io get ADC.3 it will call the function I2C_IO_GetADC which gets translates into I2C_IO_GET_ADC on the robostix. > Other thing that i was waiting to see is a machine state during the i2c- > interrupt in main program > what happed when TSWR have values like $A8, $B0, $B8, $C8, $C0 or $60, $68, > $70, $78, $80, etc > Im a beginner with this protocol, i would like to know how this program > works in general. The state machine for being a slave can be found in the file robostix/common/i2c-slave.c The function I2C_SlaveHandler uses the constants rather than hard coded numbers, so you'll see stuff like: if (( status == TW_SR_SLA_ACK ) // 0x60 - SLA+W received ACK sent || ( status == TW_SR_ARB_LOST_SLA_ACK ) // 0x68 - SLA+W received while trying to send SLA+R || ( status == TW_SR_GCALL_ACK ) // 0x70 - GCA+W received, ACK sent || ( status == TW_SR_ARB_LOST_GCALL_ACK )) // 0x78 - CGA+W received, ACK sent (while trying to send SLA+R/W) > Finally question wich programs i need to modify in order to send more than > 16 bits Write more than 16 bits where? The i2c program has a --count option which allows an arbitrary number of bytes to be read. When writing, you can do something like: i2c 0x68 wb 10 0x123456789abcdef0 will write 8 bytes starting at register 10. -- Dave Hylands Vancouver, BC, Canada http://www.DaveHylands.com/ |
From: Agustin H. <ah...@gm...> - 2007-06-20 14:44:28
|
But the i2c program doesnt work together with robostix, does it? 2007/6/19, Dave Hylands <dhy...@gm...>: > > Hi Agustin, > > > I was seeing the codes relates with i2c-io and the AVR data sheet in the > > section Two wire serial interface, and i have some questions: > > > > When i downloaded the i2c-io program i saw the info related ths is > exactly > > the same that http://docwiki.gumstix.org/I2c-io however the > > i2c-io prgram have a option related with ADC in switch > case I2C_IO_GET_ADC, > > can i used it or why dont appear in the commands supported. > > When you do: > > i2c-io 0x0b get D.3 > > it will call the function (on the gumstix) I2C_IO_GetGPIO which gets > translated into I2C_IO_GET_GPIO on the robostix. On the other hand > when you do: > > i2c-io get ADC.3 > > it will call the function I2C_IO_GetADC which gets translates into > I2C_IO_GET_ADC on the robostix. > > > Other thing that i was waiting to see is a machine state during the i2c- > > interrupt in main program > > what happed when TSWR have values like $A8, $B0, $B8, $C8, $C0 or $60, > $68, > > $70, $78, $80, etc > > Im a beginner with this protocol, i would like to know how this program > > works in general. > > The state machine for being a slave can be found in the file > robostix/common/i2c-slave.c The function I2C_SlaveHandler uses the > constants rather than hard coded numbers, so you'll see stuff like: > > if (( status == TW_SR_SLA_ACK ) // 0x60 - SLA+W > received ACK sent > || ( status == TW_SR_ARB_LOST_SLA_ACK ) // 0x68 - SLA+W > received while trying to send SLA+R > || ( status == TW_SR_GCALL_ACK ) // 0x70 - GCA+W > received, ACK sent > || ( status == TW_SR_ARB_LOST_GCALL_ACK )) // 0x78 - CGA+W > received, ACK sent (while trying to send SLA+R/W) > > > Finally question wich programs i need to modify in order to send more > than > > 16 bits > > Write more than 16 bits where? > > The i2c program has a --count option which allows an arbitrary number > of bytes to be read. > > When writing, you can do something like: > > i2c 0x68 wb 10 0x123456789abcdef0 > > will write 8 bytes starting at register 10. > > -- > Dave Hylands > Vancouver, BC, Canada > http://www.DaveHylands.com/ > > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > gumstix-users mailing list > gum...@li... > https://lists.sourceforge.net/lists/listinfo/gumstix-users > |
From: Dave H. <dhy...@gm...> - 2007-06-20 15:14:59
|
Hi Agustin, > But the i2c program doesnt work together with robostix, does it? Sort of. What are you trying to do? There aren't any commands which are larger than 16-bits with i2c-io. Are you adding commands? If that's the case, then the gumstix uses robostix/common/i2c-io-api.c/.h and i2c-api.c/.h to do the real work. You'd need to add your commands into robostix/shared/i2c-io.h (or create a new header). And of course the program itself is robostix/gumstix/i2c-io/i2c-io.c on the gumstix side and robostix/i2c-io/i2c-io.c on the robostix side. -- Dave Hylands Vancouver, BC, Canada http://www.DaveHylands.com/ |
From: Agustin H. <ah...@gm...> - 2007-06-22 13:56:00
|
Yes Im trying to add a new command... Im trying to understand how the gumstix side work.. 2007/6/20, Dave Hylands <dhy...@gm...>: > > Hi Agustin, > > > But the i2c program doesnt work together with robostix, does it? > > Sort of. > > What are you trying to do? > > There aren't any commands which are larger than 16-bits with i2c-io. > Are you adding commands? > > If that's the case, then the gumstix uses > robostix/common/i2c-io-api.c/.h and i2c-api.c/.h to do the real work. > > You'd need to add your commands into robostix/shared/i2c-io.h (or > create a new header). And of course the program itself is > robostix/gumstix/i2c-io/i2c-io.c on the gumstix side and > robostix/i2c-io/i2c-io.c on the robostix side. > > -- > Dave Hylands > Vancouver, BC, Canada > http://www.DaveHylands.com/ > > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > gumstix-users mailing list > gum...@li... > https://lists.sourceforge.net/lists/listinfo/gumstix-users > |
From: Agustin H. <ah...@gm...> - 2007-08-13 21:08:48
|
Where is called the function ProcessCommand defined in the program i2c-io (robostix/i2c-io) ? 2007/6/22, Agustin Huacuz <ah...@gm...>: > > Yes Im trying to add a new command... Im trying to understand how the > gumstix side work.. > > 2007/6/20, Dave Hylands <dhy...@gm...>: > > > > Hi Agustin, > > > > > But the i2c program doesnt work together with robostix, does it? > > > > Sort of. > > > > What are you trying to do? > > > > There aren't any commands which are larger than 16-bits with i2c-io. > > Are you adding commands? > > > > If that's the case, then the gumstix uses > > robostix/common/i2c-io-api.c /.h and i2c-api.c/.h to do the real work. > > > > You'd need to add your commands into robostix/shared/i2c-io.h (or > > create a new header). And of course the program itself is > > robostix/gumstix/i2c-io/i2c-io.c on the gumstix side and > > robostix/i2c-io/i2c-io.c on the robostix side. > > > > -- > > Dave Hylands > > Vancouver, BC, Canada > > http://www.DaveHylands.com/ > > > > ------------------------------------------------------------------------- > > > > This SF.net email is sponsored by DB2 Express > > Download DB2 Express C - the FREE version of DB2 express and take > > control of your XML. No limits. Just data. Click to get it now. > > http://sourceforge.net/powerbar/db2/ > > _______________________________________________ > > gumstix-users mailing list > > gum...@li... > > https://lists.sourceforge.net/lists/listinfo/gumstix-users > > > > |
From: Dave H. <dhy...@gm...> - 2007-08-14 04:20:21
|
Hi Agustin, On 8/13/07, Agustin Huacuz <ah...@gm...> wrote: > Where is called the function ProcessCommand defined in the program i2c-io > (robostix/i2c-io) ? It;s called through a function pointer from the i2c-slave.c file (line 212) when a command has been parsed. The function is registered using the I2C_SlaveInit function. -- Dave Hylands Vancouver, BC, Canada http://www.DaveHylands.com/ |
From: Agustin H. <ah...@gm...> - 2007-08-14 14:51:23
|
Many programas are related with finally i2c-io aplication....... great!! more to learn 2007/8/13, Dave Hylands <dhy...@gm...>: > > Hi Agustin, > > On 8/13/07, Agustin Huacuz <ah...@gm...> wrote: > > Where is called the function ProcessCommand defined in the program > i2c-io > > (robostix/i2c-io) ? > > It;s called through a function pointer from the i2c-slave.c file (line > 212) when a command has been parsed. > > The function is registered using the I2C_SlaveInit function. > > -- > Dave Hylands > Vancouver, BC, Canada > http://www.DaveHylands.com/ > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > gumstix-users mailing list > gum...@li... > https://lists.sourceforge.net/lists/listinfo/gumstix-users > |
From: Agustin H. <ah...@gm...> - 2007-08-16 00:10:49
|
Im trying to access to16 bits registers (i2c-io program) but i think that rr or ReadReg instructions are only for 8 bits registers. Dave which commands are used in order to acces 16 bit register like OCR1B, OCR1A, TCNT1.... i2c-io 0x0b ReadReg ICR1 ERROR: I2cTransfer: length is too big: 8 max: 2 ERROR: I2cTransfer: CRC failed: Rcvd: 0x00, expecting: 0x7c ERROR: I2C_IO_ReadReg16: I2cProcessBlockFailed: Success (0) ERROR: Error reading from ICR1 2007/8/14, Agustin Huacuz <ah...@gm...>: > > Many programas are related with finally i2c-io aplication....... great!! > more to learn > > 2007/8/13, Dave Hylands <dhy...@gm...>: > > > > Hi Agustin, > > > > On 8/13/07, Agustin Huacuz <ah...@gm... > wrote: > > > Where is called the function ProcessCommand defined in the program > > i2c-io > > > (robostix/i2c-io) ? > > > > It;s called through a function pointer from the i2c-slave.c file (line > > 212) when a command has been parsed. > > > > The function is registered using the I2C_SlaveInit function. > > > > -- > > Dave Hylands > > Vancouver, BC, Canada > > http://www.DaveHylands.com/ > > > > ------------------------------------------------------------------------- > > > > This SF.net email is sponsored by: Splunk Inc. > > Still grepping through log files to find problems? Stop. > > Now Search log events and configuration files using AJAX and a browser. > > Download your FREE copy of Splunk now >> http://get.splunk.com/ > > _______________________________________________ > > gumstix-users mailing list > > gum...@li... > > https://lists.sourceforge.net/lists/listinfo/gumstix-users > > > > |
From: Agustin H. <ah...@gm...> - 2007-08-16 00:20:17
|
Sorry i saw my mistake to late 2007/8/15, Agustin Huacuz <ah...@gm...>: > > Im trying to access to16 bits registers (i2c-io program) but i think that > rr or ReadReg instructions are only for 8 bits registers. Dave which > commands are used in order to acces 16 bit register like OCR1B, OCR1A, > TCNT1.... > > > i2c-io 0x0b ReadReg ICR1 > ERROR: I2cTransfer: length is too big: 8 max: 2 > ERROR: I2cTransfer: CRC failed: Rcvd: 0x00, expecting: 0x7c > ERROR: I2C_IO_ReadReg16: I2cProcessBlockFailed: Success (0) > ERROR: Error reading from ICR1 > > > > > 2007/8/14, Agustin Huacuz <ah...@gm...>: > > > > Many programas are related with finally i2c-io aplication....... great!! > > more to learn > > > > 2007/8/13, Dave Hylands <dhy...@gm...>: > > > > > > Hi Agustin, > > > > > > On 8/13/07, Agustin Huacuz < ah...@gm... > wrote: > > > > Where is called the function ProcessCommand defined in the program > > > i2c-io > > > > (robostix/i2c-io) ? > > > > > > It;s called through a function pointer from the i2c-slave.c file (line > > > 212) when a command has been parsed. > > > > > > The function is registered using the I2C_SlaveInit function. > > > > > > -- > > > Dave Hylands > > > Vancouver, BC, Canada > > > http://www.DaveHylands.com/ > > > > > > ------------------------------------------------------------------------- > > > > > > This SF.net email is sponsored by: Splunk Inc. > > > Still grepping through log files to find problems? Stop. > > > Now Search log events and configuration files using AJAX and a > > > browser. > > > Download your FREE copy of Splunk now >> http://get.splunk.com/ > > > _______________________________________________ > > > gumstix-users mailing list > > > gum...@li... > > > https://lists.sourceforge.net/lists/listinfo/gumstix-users > > > > > > > > |