Lawrence, I was recently asked to build an I2C monitor. My first approach was to use the Philps PCF8584 I2C / parallel interface chip. This IC has a special monitor mode, which is very convenient if you wish to implement a basic 100KHz bus monitor. Wire it up to a 16F877 or something to send the data via RS232, and there you go. It's not the best monitor in the world - personally there are a few things I don't like the 8584 chip. For instance, IIRC the 8584's interrupts cannot be used when in monitor mode, which is plain stupid (I could be wrong on that detail, but I remember it was something like that). I think you end up having to waste lots of processor time polling a bit instead to check on activity... something like that. I think this is all to do with the fact that the monitor mode was really an afterthought on the 8584. The 8584 is rated for bus speeds up to 100KHz but a friend of mine has claimed that his PCF8584-based monitor circuit worked perfectly well on a 400KHz bus. I also implemented a monitor using just a fast AVR, with some external logic (flipflops + inverters) to detect start / stop conditions. I used a USBMOD2 USB interface to pipe the data to the PC. My intention was to produce a better 400KHz monitor without using the PCF8584 - but this was surprisingly difficult to do using a mid-range AVR. Given the chance, I'd probably do it again using a Ubicom (Scenix) processor, or with a CPLD or something. In fact the reason I tried the AVR approach and ditched the 8584 was because I never believed it would work reliably at 400KHz since the datasheet clearly states that it goes 100KHz tops - I was gutted when my friend proved me wrong, but there you go ;o) I reckon the easiest approach might be to take a PCF8584 and maybe wire it's parallel interface directly to your PCs parallel port, and write a nice Windows monitor application? Erm.. maybe that's what I should have done :) Regards Trevor. > -----Original Message----- > From: Lawrence Lile [SMTP:llile@TOASTMASTER.COM] > Sent: 16 May 2002 15:24 > To: PICLIST@MITVMA.MIT.EDU > Subject: [PIC]: I2C sniffer > > On an analog scope, a burst of I2C data looks like a stream of bullets. > After beating my head against the lab bench during the last encounter with > I2C, I've concluded that one needs an I2C sniffer to really troubleshoot > one > of these systems. (Unless of course one has a $10,000 scope ;-) This > would > be a passive beast that would sit on the I2C bus and report when it sees a > start bit, address, ACK or data, and also report which is which. I could > imagine sending the info out over an RS232 line, and also displaying it on > a > 4-line LCD, since a lot of conversations on an I2C bus might be pretty > short. Didn't find any such animal in the PIClist archives. Has anybody > looked into this? > > > -- Lawrence Lile > Sr. Project Engineer > Salton inc. Toastmaster Div. > 573-446-5661 Voice > 573-446-5676 Fax > > -- > http://www.piclist.com hint: To leave the PICList > mailto:piclist-unsubscribe-request@mitvma.mit.edu > -- http://www.piclist.com hint: To leave the PICList mailto:piclist-unsubscribe-request@mitvma.mit.edu