Thanks for the question, but I don't think you will like my answer: the ci2c_wakeup as you have discovered is indeed a hack. I looked into to a cleaner way to do this. My conclusion was that to produce a "proper" wakeup signal I'd have to mux the SDA pin to a GPIO mode to pull it low and then mux it back to I2C to use the I2C controller.
I had also considered connecting a different GPIO pin to the SDA line with the sole purpose of pulling that low for the wakeup. But that seemed more hackish than what I was currently doing. In the end, the two bytes of zeros seems to reliably, albeit hackishly, do the trick for me when I'm using linux. Josh On Mon, Jul 21, 2014 at 12:22 PM, emck <[email protected]> wrote: > I'm trying to interface to the ATECC108 but I'm not running linux. Main > issue I've run into is trying to wake up the chip, which requires holding > SDA low for at least 60 usec. This is tricky because the AM335x I2C > controller won't send any data to the bus without sending an address first, > and if it doesn't get an ACK after sending the address it won't send any > data, just aborts the transaction with a STOP condition. > > In the libcrypti2c code you have a function ci2c_wakeup() that sends two 0 > bytes to the device. How do you get the AM335x to send those bytes, if the > device is asleep and thus won't ACK the address? Or are you doing the same > thing I've found, which is that the low bits in the device address happen > to hold SDA low *just *long enough to wake up the chip? (I keep hoping > there's a better solution, not involving any bitbanging. Maybe there > isn't.) > > -- > For more options, visit http://beagleboard.org/discuss > --- > You received this message because you are subscribed to a topic in the > Google Groups "BeagleBoard" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/beagleboard/NhMSP9ywlzg/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
