Hey everyone.
I'm using a dreaded Arduino Nano (dreaded to me, at least) to do a quick prototype of these new 7-seg display chips I got. I've used I2C a LOT, and am really comfortable debugging and coding with it.
However, for some reason the MAX6959s are not acknowledging the address. I hooked up my ChronoVu to see what was going on, and this is what I see (the reason it sends 0x70 twice is because it's jumping to the second routine after the first fails):
As you can see, it's nACKing on both addresses. I've double and triple-checked the datasheet. They release the chip in two variants, with different I2C addresses. I've got the A version, which has a 7-bit address of 0x38, when shifted it becomes 0x70 as seen. The B version is 0x39, which I also tried out of exasperation. I feel like I'm missing something, but everything seems to check out. Solid 5V on the bus, 4k7 pullups, running at 100kHz which is fine for this chip. If the logic analyzer can decode it, there shouldn't be any reason that the chip can't. I've got 3 chips, and I've swapped them out to double check.
Here's a link to the datasheet:
http://datasheets.maximintegrated.com/en/ds/MAX6958-MAX6959.pdfPerhaps I'm missing something obvious. But, in my experience, it should ack the address if it's correct. If my bus pirate were running, I'd do an address scan and see what it says, but it's a little screwed up after I tripped over the USB cord it was connected to and it almost ripped the whole USB connector off... *sigh*
Anyway, any and all help is appreciated. Especially if you've used these chips before!