TWIM doesn't work using nRF5340DK with I/O voltage above 2.5V

Hi,

TWIM does not work well with nRF5340DK as shown in the subject. The conditions are shown below.
- I/O voltage is not 1.8V. The waveform is distorted around 2.5V, though I wrote in the title that it does not work at 2.5V or higher.
- When using multiple TWIMs, only TWIM1 does not work well. If only one is used, it does not matter which one is used.
- The evaluation board from Fanstel (EVM-WM02-V6) has an I/O voltage of 3.3V, and I confirmed that TWIM does not work with this board.

The following are the results of my experiments.
- I confirmed that TWIM works with nRF7002DK. The I/O voltage of nRF7002DK is fixed at 1.8V.
- I tried to run the same firmware on nRF5340DK, but it returned TWIM error. When I looked at the waveforms on the oscilloscope, SCL did not output anything and SDA was fixed at about 1.5V.
- I added firmware to change the I/O voltage of nRF5340DK to 1.8V. This time it worked fine.

    if ((NRF_UICR_S->VREGHVOUT & UICR_VREGHVOUT_VREGHVOUT_Msk) != (UICR_VREGHVOUT_VREGHVOUT_1V8 << UICR_VREGHVOUT_VREGHVOUT_Pos)) {
		NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Wen << NVMC_CONFIG_WEN_Pos;
		while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}

		NRF_UICR_S->VREGHVOUT = (UICR_VREGHVOUT_VREGHVOUT_1V8 << UICR_VREGHVOUT_VREGHVOUT_Pos);

		NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Ren << NVMC_CONFIG_WEN_Pos;
		while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}

		/* a reset is required for changes to take effect */
		NVIC_SystemReset();
	}

From these verification results, I conclude that the nRF5340's TWIM does not work when the I/O voltage is set to anything other than 1.8V.
If something is wrong with my experiment, please point it out.
And... perhaps this is an errata?

Parents Reply Children
No Data
Related