??? 03/23/11 15:17 Read: times |
#181632 - IIC "snooper" If anyone have a definite answer |
I am making an IIC "snooper" as part of a test board and am in doubt on one thing
I have a guess, but no definite knowledge of the "OR" you see over the highlighted line below. If anyone have a definite answer, preferable with a document reference, please let me know. If anyone has nothing better to to, you ar welcome to check it, and let me know. Erik ////////////////////////////////////////////// // // IIC snooper actions // // err = error // ign = ignore // imp = impossible (equal to entry state) // HI = high at entry // LO = low at entry // ^ = low at entry, going high // v = high at entry, going low // // // from idle state // // SCL HI LO HI LO ^ ^ v v // SDA ^ ^ v v HI LO HI LO // err ign sb ign OK err err err // // from sb (start begin) // // SCL HI LO HI LO ^ ^ v v // SDA ^ ^ v v HI LO HI LO // err imp imp imp imp imp imp sta // // from sta (start) "collect byte" which is address // then go to DATACB // // DATACB run ("collect byte") // on nak display byte with 'N' goto DATACB ??? OR goto idle anyone have definite knowledge on the above "OR" ? // on rtn display byte with 'G' goto DATACB // on hbx goto hbx // // "hbx" collect byte, halt (stop) bit exit // // SCL HI LO HI LO ^ ^ v v // SDA ^ ^ v v HI LO HI LO // hlt imp imp imp imp imp imp err // //////////////////////////////////////////////////////////////////////// // // "collect byte" sub description // assumed (can see no way it is not) SCL is low at entry // // // collect byte, first bit entry // no action should be needed (impossible or go_on) // // SCL HI LO HI LO ^ ^ v v // SDA ^ ^ v v HI LO HI LO // imp ign hbx ign 1bd 1bd imp imp // // // "1bd" collect byte, first bit duration // // SCL HI LO HI LO ^ ^ v v // SDA ^ ^ v v HI LO HI LO // hbg imp err imp imp imp fdb fdb // // "hbg" go to halt (stop) begin // "fdb" save data bit and go to collect middle bit entry // // "mbe" collect byte, middle bit entry // no action should be needed (impossible or go_on) // // SCL HI LO HI LO ^ ^ v v // SDA ^ ^ v v HI LO HI LO // ign imp ign imp mbd mbd imp imp // // "mbd" collect byte, middle bit // // SCL HI LO HI LO ^ ^ v v // SDA ^ ^ v v HI LO HI LO // err imp err imp imp imp mdb mdb // // "mdb" IF 8 bits collected save the data bit and go to "9be" // else save the data bit and go to "mbe" // // "9be" collect byte, 9th bit entry // no action should be needed (impossible or go_on) // // SCL HI LO HI LO ^ ^ v v // SDA ^ ^ v v HI LO HI LO // ign imp ign imp 9bd 9be imp imp // // collect byte 9th bit // // SCL HI LO HI LO ^ ^ v v // SDA ^ ^ v v HI LO HI LO // imp hbx nak imp imp imp rtn rtn |
Topic | Author | Date |
IIC "snooper" If anyone have a definite answer | 01/01/70 00:00 | |
one more ??? | 01/01/70 00:00 | |
illegal states | 01/01/70 00:00 | |
thanks, Jan | 01/01/70 00:00 |