Hi There.
Just started my jurney with Bluetooth Low Energy and don't know what tools I should buy to program this module ATSAMB11-MR510CA. there is a starter kit SAMB11 Xplained Pro with this module included but is it removal able or permanently soldered? another kit is BTLC1000 Xplained Pro Evaluation Kit and the same question(removable?). So which one is more suitable for program a 500 modules ATSAMB11-MR510CA.
regards
ATSAMB11-MR510CA debugger/ programmer
The ATSAMB11-MR510CA uses an SWD interface so I was looking into SEGGER J-Link EDU - JTAG/SWD Debugger for $60 in mouser.com or you could use the SAM ICE
Just bought SAMB11 XPRO evaluated board with MR510CA on the board.. So next question is..is it possible to program another off board MR510CA modul connected to rx/tx header pins of this board? Somehow remove the rx/tx track which are going to the on board MR510CA. Or any different way to do that?
If it has flash memory than you can program it, but what your mentioning sounds kind of complicated why not just use the SAMB11 XPO board and develop with it. Once your done developing just get the ATSAMB11G18A microcontroller and go from there if you want to use a different type of antenna. What I mean is that you could create your own circuit just with the ATSAMB11G18A microcontroller instead of having to remove any rx/tx track.
The reason why I want to go with completed assembly module is avoid to make a whole interface for ATSAMB11G18A. Is easier to buy ready assembled one and place it on my new PCB.
By removing the RX/TX tracks after developed everything I wanted to save a £150 for Atmel ICE Programmer as I have already SAMB11 XPRO Board for £50 and it can make the same thing with module off that board. Is that correct?
I see so you want to use the already prebuilt SMART SAMB11-MR210CA Ultra-Low Power BLE 4.1 Module because you think it will be more work if you just bought the ATSAMB11G18A microcontroller by itself, which I guess I could agree on.
I am still not clear on why you would want to remove any RX/TX tracks, but what you want to do, which is what I am doing is on the new ATSAMB11-MR210CA or ATSAMB11-MR210CA module there will be three pins you want to use to flash it. You will want to use SWCLK, SWDIO, and Chip_EN. With these three pins you could then make some header pins on your PCB and connect the Atmel ICE Programmer and flash it. Make sure you find out where the other header pins will be connected to on the module, which will go to VDD and others.
Hi There
What about the reset pin? usually 10pins cortex debugger connector has that reset pin but I looked at datasheet of ATSAMB11-MR210CA/MR510CA and there is no reset pin.
Chip_EN using for reset
Chip Enable. A high level turns on the On Chip PMU and enables operation of the device. Low disables the device and turns off the PMU.
Control this pin with a host GPIO. If not used, tie to VDDIO
Thanks a lot
Have another problem which I completely do not understand why doesn't work on this module Can you help?
I am trying to set a pin high or low and get a message on the terminal.
Short code inside main.c
Pin and USART is generated in atmel start and I have a LED connected to GPIO_5.
#include <atmel_start.h>
struct io_descriptor *iotest;
void USART_0_test(void)
{
usart_sync_get_io_descriptor(&USART_0, &iotest);
usart_sync_enable(&USART_0);
}
int main(void)
{
/* Initializes MCU, drivers and middleware */
atmel_start_init();
USART_0_test();
gpio_set_pin_direction(GPIO_5, GPIO_DIRECTION_OUT);
gpio_set_pin_level(GPIO_5,true); // true or false
gpio_set_pin_function(GPIO_5, GPIO_PIN_FUNCTION_OFF);
bool pin_level;
pin_level = gpio_get_pin_level(GPIO_5);
if(pin_level == true)
{
io_write(iotest, (uint8_t *)"High", 4);
}
else
io_write(iotest, (uint8_t *)"LOW", 3);
}
No mater what the pin level is, the terminal always shows LOW.
I haven't been able to get the pin_level to go high, low either maybe its because this gpio_get_pin_level() function was meant for pins being used as an input rather than using it as an output which you know what state it will be by calling the gpio_set_pin_level() function. I have noticed by setting the direction of the pin as an input and then calling the gpio_get_pin_level() the serial terminal will show a high output, which is why I believe the gpio_set_pin_level() was meant to for pins that are being driven, but I may be wrong haven't had much time to play around with this.
Have you at least got the LED to light on and off?
I have sorted out gpio pins ..now more complicated is reading adc..