Hello

I found a figure (attached) explaining how the communication should take 
place, I believe this helps to clarify the issue.

Thanks.

On Wednesday, February 10, 2016 at 12:33:25 PM UTC+1, Lumi wrote:
>
> Dear all,
>
> I am trying to talk with an external device via ioio-otg twi ports. I 
> would like to write and read data to/from the registers of my external 
> device.
>
> Here are samples from my code:
>
> byte[] request=new byte[]{0x01}; //data that I want to write
> byte[] response = new byte[13];
>
>
> In setup()( function:
>
>
> i2c=ioio_.openTwiMaster(2, TwiMaster.Rate.RATE_100KHz, false);
>
>
> In loop() function:
>
>
> if(i2c.writeRead(0x63, false, request, request.length, null, 0)) { //Here, I 
> only want to write 
>
> if (i2c.writeRead(0x63, false, null, 0, response, response.length))// Here, I 
> only want to read
> {
>    for (int i = 0; i < 13; i++) {
>       pw.print(String.format("%02X", response[i]));
>       pw.print(" ");
>    }
>
> }
>
>
> Both writeRead() functions return true.
>
> However, the data 0x01 in request array is interpreted as an internal address 
> of a register in the device. I could not get 0x01 interpreted as data and 
> written into external device register.
>
>
> This may not be very clear, but maybe there are some people who can already 
> spot the problem.
>
>
> Thank you in advance,
>
> Regards.
>
>
>
On Wednesday, February 10, 2016 at 12:33:25 PM UTC+1, Lumi wrote:
>
> Dear all,
>
> I am trying to talk with an external device via ioio-otg twi ports. I 
> would like to write and read data to/from the registers of my external 
> device.
>
> Here are samples from my code:
>
> byte[] request=new byte[]{0x01}; //data that I want to write
> byte[] response = new byte[13];
>
>
> In setup()( function:
>
>
> i2c=ioio_.openTwiMaster(2, TwiMaster.Rate.RATE_100KHz, false);
>
>
> In loop() function:
>
>
> if(i2c.writeRead(0x63, false, request, request.length, null, 0)) { //Here, I 
> only want to write 
>
> if (i2c.writeRead(0x63, false, null, 0, response, response.length))// Here, I 
> only want to read
> {
>    for (int i = 0; i < 13; i++) {
>       pw.print(String.format("%02X", response[i]));
>       pw.print(" ");
>    }
>
> }
>
>
> Both writeRead() functions return true.
>
> However, the data 0x01 in request array is interpreted as an internal address 
> of a register in the device. I could not get 0x01 interpreted as data and 
> written into external device register.
>
>
> This may not be very clear, but maybe there are some people who can already 
> spot the problem.
>
>
> Thank you in advance,
>
> Regards.
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"ioio-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/ioio-users.
For more options, visit https://groups.google.com/d/optout.

Reply via email to