ATSAMB11-MR510CA debugger/ programmer

Go To Last Post
11 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

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

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

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

MADEIT

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

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?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

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.

MADEIT

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

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?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

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.

MADEIT

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

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.

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

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
 

MADEIT

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

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.

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

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?

MADEIT

Last Edited: Fri. May 26, 2017 - 04:10 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I have sorted out gpio pins ..now more complicated is reading adc..