![]() ![]() When I try your fix on my i2c_delay example, and it works. I was testing against c29343e, the tip of release/v4.4 when I last pulled from esp-idf. Thank you you testing against master or against v4.4? The very end of i2c_master_cmd_begin_static() calls i2c_hal_trans_start(): ![]() I also discovered that adding a very small delay at a crucial point in the ESP-IDF I2C code will fix the problem. When the clock frequency is 160 MHz, the gaps disappear: If you change CONFIG_FREERTOS_HZ, the gap size will change accordingly. When the clock frequency is 240 MHz (the choice in sdkconfig in the zip file above), there are gaps of almost 10 ms between I2C transactions. I picked an arbitrary device, an MSA311, but it does not really matter what device it is, as long as it will ACK writes. It writes 4 bytes (could be less) to a register on an I2C device over and over again. This example builds for an Adafruit Metro ESP32-S2 board, which is based on the WROVER module, but with only slight changes it should be usable on an Espressif or other dev board. Here is the simple ESP-IDF example, which is a cut-down version of the I2C example in the esp-idf. The key is that I set the clock speed to 240 MHz instead of 160 MHz. It is not a task issue, as far as I can tell. I am wondering if it is hardware or hardware-setup I have managed to reproduce this with a very simple example. I spent quite a bit of time inside the IDF I2C code, adjusting timeouts ( ticks_to_wait), printing things, and trying various tweaks, and I cannot locate the source of this issue. I have Saleae traces if that is of interest. These forum posts report what sounds like the same issue: Tested in CircuitPython, which currently uses the ESP-IDF version shown above. I was suspicious that 10ms is close to the FreeRTOS tick interval, but the gaps vary sometimes between 9.something and occasionally as low as 7.something, so that may be a red herring. There should not be excessive delays at 100kHz. A colleague tried another device and was able to get it to work at 110_000. In between, only some I2C speeds work others produce glitches that cause the I2C device to fail. Raising to 125_000 causes the delays to go away. Using I2C at 100_000 Hz (standard clock rate) cause ~10ms delays between I2C transactions. Development Kit: none (Adafruit boards).If you have any other method to remove status bar icons from android nougat. If you have any question or confusion regarding how to remove status bar icons in Android Marshmallow. ![]() Just follow the same steps go to Settings -> System UI Tuner -> Status Bar and enable the specific option that you would like to see in the status bar of your Android phone. If you want to add any icon back into the status bar.
0 Comments
Leave a Reply. |