#BL602 I2C Interrupts ... How we handle them on #PineCone and #Pinenut @PINE64
https://lupyuen.github.io/articles/i2c#handle-i2c-interrupts
#BL602 I2C is aware of Register Addresses! 👏 But it makes #PineCone and #Pinenut @PINE64 a little too special...
https://lupyuen.github.io/articles/i2c#set-i2c-device-address-and-register-address
#PineCone #BL602 I2C finally works OK ... Reads BME280 Chip ID correctly yay!
https://github.com/lupyuen/bl_iot_sdk/blob/i2c/customer_app/sdk_app_i2c/sdk_app_i2c/demo.c#L215-L490
#BL602 I2C "Slave Address" vs "Device Address" vs "Slave Device Address" vs "Slave Device Register Address" ... A little confusing 🤔
https://github.com/bouffalolab/bl_docs/tree/main/BL602_RM/en
Mind getting muddled over #BL602 #I2C Transactions ... Here's the Note to Self
https://github.com/lupyuen/bl_iot_sdk/blob/i2c/customer_app/sdk_app_i2c/sdk_app_i2c/demo.c#L442
After counting the #BL602 I2C Interrupts ... We now see 2 I2C problems: No Acknowledge and FIFO Error 🤔
https://github.com/lupyuen/bl_iot_sdk/blob/i2c/customer_app/sdk_app_i2c/sdk_app_i2c/demo.c#L216
Here's our simple #BL602 I2C Interrupt Handler ... When we hit an I2C Interrupt, bump up the Interrupt Counters ... Remember: No funny business allowed in Interrupt Handlers (like Console Output)
https://github.com/lupyuen/bl_iot_sdk/blob/i2c/customer_app/sdk_app_i2c/sdk_app_i2c/demo.c#L226-L251
#BL602 #I2C still no go after writing to MEN ... Let's hook on to the I2C Interrupts and observe what happens
https://github.com/bouffalolab/bl_docs/tree/main/BL602_RM/en
Oops I need to Write To MEN (heh heh) after setting the #BL602 I2C Registers ... Lemme Write To MEN now
https://github.com/bouffalolab/bl_docs/tree/main/BL602_RM/en
Shall I use Bus Pirate to sniff the I2C Bus on #BL602? 🤔
http://dangerousprototypes.com/docs/I2C#I2C_Bus_Sniffer_macro
Testing BME280 I2C Sensor with Bus Pirate ... While figuring out why it doesn't respond to #BL602 🤔
IoT Techie and Educator / Apache NuttX PMC