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.
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!