Hello,
We require a bluetooth low energy IC with MCU. Right now we are testing with nrf51422 development board. Could you please suggest any updated ICs with (BLE+MCU) ?
Hello,
We require a bluetooth low energy IC with MCU. Right now we are testing with nrf51422 development board. Could you please suggest any updated ICs with (BLE+MCU) ?
Hi Sujai!
For an updated MCU with BLE, I would suggest the nRF52832. It has support for Bluetooth 5, more flash and more RAM. However all our SoC's are what you describe as BLE + MCU.
If you could describe a little more in detail what you are looking for, I could perhaps assist you in selecting the best one for your application.
Best regards,
Heidi
Thanks for the suggestion. We are using nRF51822 for now. In datasheet I found that any GPIO can be configured as SPI,UART and I2C, kindly let me know how to configure the GPIOs to SPI, UART and I2C.
Sure! I am using the newest version of the nRF5 SDK, v. 15.3.
So for SPI you can take a look at the SPI example under examples\peripheral\spi in the SDK. Here the specific pins (SCLK, MOSI, MISO, SS) are defined in the sdk_config.h file , and then they are configured by defining the spi_config instance is defined in the main function like this and calling nrf_drv_spi_init.
nrf_drv_spi_config_t spi_config = NRF_DRV_SPI_DEFAULT_CONFIG; spi_config.ss_pin = SPI_SS_PIN; spi_config.miso_pin = SPI_MISO_PIN; spi_config.mosi_pin = SPI_MOSI_PIN; spi_config.sck_pin = SPI_SCK_PIN; APP_ERROR_CHECK(nrf_drv_spi_init(&spi, &spi_config, spi_event_handler, NULL));
For UART you can check out the UART example under examples\peripheral\uart in the SDK. Here the pins are configured in the main function by defining comm_params and calling APP_UART_FIFO_INIT.
const app_uart_comm_params_t comm_params = { RX_PIN_NUMBER, TX_PIN_NUMBER, RTS_PIN_NUMBER, CTS_PIN_NUMBER, UART_HWFC, false, #if defined (UART_PRESENT) NRF_UART_BAUDRATE_115200 #else NRF_UARTE_BAUDRATE_115200 #endif }; APP_UART_FIFO_INIT(&comm_params, UART_RX_BUF_SIZE, UART_TX_BUF_SIZE, uart_error_handle, APP_IRQ_PRIORITY_LOWEST, err_code);
where the pin numbers are in this case defined in pca10040.h.
For I2C, the TWI driver is used and there are numerous examples for this, for example examples\peripheral\twi_scanner. The pins are configured like this, by defining a twi_config instance and calling nrf_drv_twi_init.
const nrf_drv_twi_config_t twi_config = { .scl = SCL_PIN_NUMBER, .sda = SDA_PIN_NUMBER, .frequency = NRF_DRV_TWI_FREQ_100K, .interrupt_priority = APP_IRQ_PRIORITY_HIGH, .clear_bus_init = false }; err_code = nrf_drv_twi_init(&m_twi, &twi_config, NULL, NULL);
where the pin numbers are also set in pca10040.h
Hope this helps!
Thanks for the reply.
Let me give you some more details on our application. I wanted to develop a bluetooth dongle where it will communicate with multiple devices (3 to 4 bluetooth enabled devices) simultaneously (both read and write operation) at 5ms without any data loss. As I told you right now I have nrf51422 dk board and IC. Is it possible to do the same with this IC?
Hi,
7.5 ms is the lowest possible connection interval, so 5 ms is not possible.
Have you considered using the nRF52840 Dongle for your application instead of using the nRF51422 and an external USB chip?