I'm using the IOIO to emulate a host processor that is bootloading another processor (DSP). The largest "chunk" of data I am sending in a transaction is about 2500 bytes, but breaking it up into smaller transactions is OK for now. Once the DSP is running, the runtime I2C traffic is minuscule in comparison. If I manage to narrow it down, I'll report back.
Regards, Mark. On Wed, Dec 17, 2014 at 11:42 PM, Ytai Ben-Tsvi <[email protected]> wrote: > > Just curious: what is the use-case? Such long transactions are very > uncommon. In any case, we should get this fixed. > > On Wed, Dec 17, 2014 at 5:04 AM, Mark Melvin <[email protected]> > wrote: >> >> I do have a logic analyzer and the lines are both pulled up. I initially >> thought it was my hardware, but I have another I2C master device I can send >> bytes from and the transactions look identical. >> >> Back to the IOIO - I narrowed it down to the case where if I send more >> than 78 (actually, it may be 79 - I need to double-check) bytes to the >> writeRead() method, it just fails. If I send a large number (like 1024), >> it seems to just block, and I am implementing the call to writeRead in a >> runnable I can poll and cancel - so after a few seconds, I can timeout the >> transaction. If I send a number somewhere between 80 and say 128, the IOIO >> will actually forcibly disconnect pretty much immediately. >> >> I can try to debug this further and get back to the group. >> >> Mark. >> >> On Tue, Dec 16, 2014 at 11:48 PM, Ytai Ben-Tsvi <[email protected]> wrote: >>> >>> The protocol limits the write size to 256 and read size to 255. The >>> hardware buffers are 256 for writing (4 byte overhead for each transaction) >>> and 128 for reading (1 byte overhead for each transaction). I don't see a >>> reason why 78 would be a cutoff point. What do you mean by "get a timeout"? >>> Do you have a logic analyzer by any chance, to figure out what's >>> happening on the wire? >>> >>> On Tue, Dec 16, 2014 at 1:36 PM, Mark Melvin <[email protected]> >>> wrote: >>> >>>> Hi Guys, >>>> >>>> I've been experimenting with I2C, and found that if I try to send the >>>> TWI master anything more than about 78 bytes of data, it doesn't work. >>>> I'll either get a timeout, or the IOIO will forcibly disconnect. Lowering >>>> my maximum transaction size to <=78 seems to make it behave reliably. >>>> >>>> Is there some internal buffer that is overflowing here? I can't find >>>> anything obvious in the code. I see there are RX and TX buffers in the PIC >>>> code, but they are 128 and 256 bytes, bigger than the limitation I am >>>> seeing. And I would think this would be invisible to the user anyway, so >>>> perhaps there is something at the protocol level in Java? >>>> >>>> Thanks, >>>> Mark. >>>> >>>> -- >>>> 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 http://groups.google.com/group/ioio-users. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> -- >>> 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 http://groups.google.com/group/ioio-users. >>> For more options, visit https://groups.google.com/d/optout. >>> >> -- >> 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 http://groups.google.com/group/ioio-users. >> For more options, visit https://groups.google.com/d/optout. >> > -- > 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 http://groups.google.com/group/ioio-users. > For more options, visit https://groups.google.com/d/optout. > -- 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 http://groups.google.com/group/ioio-users. For more options, visit https://groups.google.com/d/optout.
