![]() You can also combine ESP-IDF and Arduino if you still want to use Arduino APIs (except for Wire in your case).The following code should load: /********* GitHub and use code from the I2C example to get up and running. ![]() If the driver is still limiting you might want to try the ESP-IDF implementation of the I2C driver â start at platform-espressif32/examples/espidf-blink at develop Give the I2C driver the biggest possible continuous buffer it can handle and if it writes it efficiently (only big setup functions at the beginning of a multi-byte tranmissions) it should increase performance significantly. BTW your chip supports 1000 kHz fast-mode plus at p.6 â default Wire frequency is 100kHZ.Īlso page 8 of the datasheet shows the "Writing to IS31Få 741 (Automatic address increment) " which should be what you want and the way to go to overcome the driver-overhead. The Wire library seems to have some significant overhead in its drivers, looking at places like here and more importantly the I2C write functions and sub-calls like this, so 62 microseconds overhead between I2C transmissions doesnât seem that absurdâ¦Ä®ven tClock(1000000) ( docs) wonât help much if the inter-write times are so big. Iâve hooked up my scope and captured some screenshots to made it easier to show whatâs happening: I2CWriteByte(addr, i2cAddrbuffer, i2cCMDbuffer) I2cAddrbuffer = IS31Få 741addrmap Īnd then sending the data over to the I2C bus using the wire library: for(int i = 0 i
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |