Hello, I am trying to create an Arduino Compatible Development board using the ATSAMD21. However, when going through the insanely long datasheet, I noticed that there are no clearly defined pin numbers and functions.
I believe that the boot loader sets the pin functions? If so, how can I do that? I need multiple UARTS for my design.
Is there a default configuration? If so, how can I modify it because I need 3 UARTS.
Finally, how would I boot load the board? Do I need an external programmer or can I use another Arduino? And, which pins would I connect to and how?
nathancrane243:
Finally, how would I boot load the board?
That information is in the insanely long datasheet. Have you tried to do what you want to do, with an off the shelf ATSAMD21 board? Just to get started?
Have you designed any boards before? This is really a difficult project for a beginner.
nathancrane243:
Do you know if there are any preexisting boot loader files that I could modify? Or any further documentation since this chip is very popular?
I don't know whether Arduino does that. The programming may be integrated into the testing process. The board is put on a test stand, flashed with the bootloader, then with a test program. You can see a video of a Zero being tested here:
The Zero has an onboard EDBG programmer, so they could be flashing the bootloader to the ATSAMD21G18 via the USB connection. On the ATSAMD21G18 boards without an EDBG like the MKR boards, the test stand would need to have an integrated programmer that connects to the SWD pads on the bottom of the board.
Do you know if there are any preexisting boot loader files that I could modify?
Sure. Arduino has a bootloader, Sparkfun has a bootloader, Adafruit has a bootloader - all open source, and most based on the Atmel SAM-BA bootloader, which is an app-note.