Also the sites hosting the library can simply disappear or shift thereby stranding anyone trying to make use of my sketches but being unable to find the appropriate library. I am very aware that libraries can be updated by the Authors, and potentially prevent my sketches from running properly if someone uses a different version of the library from the one I used to develop the project. You can also combine ESP-IDF and Arduino if you still want to use Arduino APIs (except for Wire in your case).Throughout my various Arduino-based projects I have made use of quite a number of excellent libraries that are not part of the standard Arduino IDE. 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 I am filling 2 buffers with data uint8_t i2cAddrbuffer The issue that I am facing is that for some reason there is a big delay between consecutive I2C transfers (write only) that is causing very poor refresh rate. Iâm interfacing an LED matrix using a matrix driver that communicates over I2C. Iâve been building a project using PlatformIO and the ESP32 on a custom board.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |