Questions about HARDWARE mode with I2C protocol

Hacking multi-tool. Get one for $30, including worldwide shipping.

Questions about HARDWARE mode with I2C protocol

Postby USBEprom » Sat Jul 15, 2017 4:58 pm

Hi guys.
Is there somebody here who know the whole differences between SOFTWARE and HARDWARE mode in I2C protocol?
I thought the only difference was about how synchronization is generated for the bus, but I am not sure it is just that.
In fact in the recent past thanks to agatti it was possible to free the HARDWARE mode for the I2C protocol also with Bus Pirate v3 (https://github.com/BusPirate/Bus_Pirate/issues/39) but although in my device I have a silicon revision B8 (DEVID:0x0447 REVID:0x3046 = 24FJ64GA002 B8) I noticed a weird behavior.
The weird thing is that while play I2C on a serial EEPROM using HARDWARE mode I can hit the chip only the first time, performing new access the answers are always wrong (0xFF).
So, for example, while performing read of data from a given block of memory I get them right only the first time because by repeating the command I get wrong data as 0xFF.
In order to fix I have to reset the Bus Pirate with command "#" and setting again all the I2C parameters.
(Macro (1) always works also by repeating it).
Instead using SOFTWARE mode I have not any problem performing all the commands I want without getting wrong answers.
I know that due the different PIC used the Bus Pirate v4 has always had the HARDWARE mode unlocked as opposed to v3, which also depends on the silicon revision (http://ww1.microchip.com/downloads/en/D ... 00470j.pdf).
Is there someone who owns the v4 and can confirm that it is the intended behavior?
Otherwise it is very likely to be a bug.
Thanks!

Be seeing you.

U.Sb
USBEprom
Full Member
Full Member
 
Posts: 121
Joined: Wed Mar 14, 2012 4:09 pm

Return to Bus Pirate Support