Bare metal I2C communication with XVF3800

New to XMOS and XCore? Get started here.
valkm
Newbie
Posts: 1
Joined: Mon May 12, 2025 5:00 pm

Bare metal I2C communication with XVF3800

Post by valkm »

Hello everybody,

I am trying to communicate via I2C with an MCU (master) to the XMOS XVF3800 (slave) on the dev board XK-VOICE-SQ66; to obtain information such as the firmware version, direction of arrival, etc. The XMOS XVF3800 is programmed with the firmware application_xvf3800_intdev-lr16-lin-i2c.xe provided by XMOS.

I succeed in detecting the XVF3800 with its I2C address (0x2C), but get garbage values when trying to read the version (I should get "321"). I've tried sending a write/read I2C frame with the address, followed by the "application servicer id" (0x30), and the command identifier (which I tried to guess), to no avail...

Would anyone know the answers to the following questions?

1. Is it possible to communicate with XVF3800 via I2C from a bare metal I2C master?
2. Is the protocol explained somewhere?
3. The command ids seem to be automatically generated at compile-time. How can I know the values used in the binaries distributed by XMOS, such as the VERSION command?

Best Regards,
Valentin