We are working on external RTC MCP7940(i2c) interfaced with nrf52840. Please check if drivers of the same for nrf52/51 are available or any implementation of CLOCK using MCP7940 with NRF?
Regards
Vishal Aditya
Embedded Software Engineer
We are working on external RTC MCP7940(i2c) interfaced with nrf52840. Please check if drivers of the same for nrf52/51 are available or any implementation of CLOCK using MCP7940 with NRF?
Regards
Vishal Aditya
Embedded Software Engineer
Please check attached Logic Analyzer traces:
2 MHz, 10 M Samples [7].logicdata
Please check & reply to a possible solution?
AS far as I can tell the nRF52840 is transmitting the correct data. If the address of the i2C slave is 0x6F (0b01101111), then the 7 byte address + a READ bit will be 0xDF( 0b11011111). The logic analyzer clearly states that there is a NAK after the address is transmitted. Hence, this is slave issue, not an issue with the nRF52840. I would check the connections between the nRF52840 and the MCP7940.
Best regards
Bjørn
The connections are correct!
#define SCL NRF_GPIO_PIN_MAP(0,14)
#define SDA NRF_GPIO_PIN_MAP(0,13)
Connected to the same as per code via jumper wires. Please suggest any other possible way of debugging this issue. As MCP7940 works with Arduino(i2c scanner)
Please check the traces of the custom board nrf52840 & MCP7940(i2c) with the same code.
Pull-ups: 4.7kohm in custom board
but in MCP7940 break-out board, it's 10kohm
#define SCL NRF_GPIO_PIN_MAP(0,14) #define SDA NRF_GPIO_PIN_MAP(0,13) // for (address = 1; address <= TWI_ADDRESSES; address++) // { while(1) { err_code = nrf_drv_twi_rx(&m_twi, 0x6F, &sample_data, sizeof(sample_data)); if (err_code == NRF_SUCCESS) { detected_device = true; NRF_LOG_INFO("TWI device detected at address 0x%x.\r\n", address); } NRF_LOG_FLUSH(); }
Mr. bjorn,
Kindly respond to the codes posted and suggest solutions.