Hi teams,
I have build custom board connected to ethernet via ENC28J60 ethernet controller.
It uses SPI communication with ENC28J60, but some strange behaviour during bulk TX/RX.
Please see the following codes.
#if 0
nrf_drv_spi_xfer_desc_t datadesc = NRF_DRV_SPI_XFER_RX(buf, len);
APP_ERROR_CHECK(nrf_drv_spi_xfer(&spi, &datadesc, 0));
#else
for (int i = 0; i < len; i++) {
nrf_drv_spi_xfer_desc_t datadesc = NRF_DRV_SPI_XFER_RX(buf + i, sizeof(uint8_t));
APP_ERROR_CHECK(nrf_drv_spi_xfer(&spi, &datadesc, 0));
}
#endif
...
...
#if 0
nrf_drv_spi_xfer_desc_t datadesc = NRF_DRV_SPI_XFER_TX(buf, len);
APP_ERROR_CHECK(nrf_drv_spi_xfer(&spi, &datadesc, 0));
#else
for (int i = 0; i < len; i++) {
nrf_drv_spi_xfer_desc_t datadesc = NRF_DRV_SPI_XFER_TX(buf + i, sizeof(uint8_t));
APP_ERROR_CHECK(nrf_drv_spi_xfer(&spi, &datadesc, 0));
}
#endif
These codes are extracted my data tx/rx functions.
The #if 0 blocks should not be different from active ones, but in real, it does not work.
Why this happens?