Description
Hardware:
Board: Adafruit Feather ESP32
Core Installation version: 1.0.6, 2.0.0, 2.0.0 w/ PR #5683
IDE name: Arduino IDE
Flash Frequency: 80Mhz
PSRAM enabled: n/a
Upload Speed: 921600
Computer OS: Ubuntu
Description:
Board does not generated expected I2C traffic when attempting to suppress the I2C stop on a read. This is a weird use case, but is needed for implementing chuckified reads when total length exceeds board's read buffer.
Sketch:
#include <Wire.h>
#define WIRE Wire
#define I2C_ADDRESS (0x69)
#define READ_SIZE (32)
void setup() {
Serial.begin(9600);
while(!Serial);
uint8_t buffer[READ_SIZE];
WIRE.begin();
WIRE.requestFrom(I2C_ADDRESS, 32, false);
uint32_t count = 0;
while (WIRE.available() and count < READ_SIZE) {
buffer[count++] = WIRE.read();
}
}
void loop() {
}
Debug Messages:
None. Code compiles and runs without errors. Issue is seen in actual I2C traffic. See traces below.
BSP 1.0.6 and 2.0.0
stop = true (expected results)
stop = false (not expected results)
[NO TRAFFIC]
BSP 2.0.0 with PR #5683
stop = true (expected results)
stop = false (not expected results - should be no stop at end)
See here for expected outputs on a SAMD21 based board (Adafruit Qt Py):
adafruit/Adafruit_BusIO#64 (comment)
Metadata
Metadata
Assignees
Type
Projects
Status