summaryrefslogtreecommitdiff
path: root/bsp/avr32/at32uc3b0256/README.md
blob: 9a6d5e2f7414ce18142d8623b3273b05956e2720 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# MCUZone AT32UC3B0256 mini development board

## Introduction

**The AVR32 is a high performance, low power 32-bit Atmel AVR
microcontroller.** This board support package supports the MCUZone
AVR32 mini development board (also known as the AVR32DEV1). The
development board uses the AT32UC3B0256 microcontroller.

![board-snap](figures/board-snap.png)

Note: Unfortunately, the online link for the development board (both
MCUZone OR Aliexpress) doesn't work. I don't have access to the
schematic (OR Gerber information) for this development kit. I used a
multimeter to look for the connected pins. If you - the reader - do
have access to the schematic/pinouts, could you please reach out to
me?

This README is essentially a work-in-progress. I will try to map the
berg rows (J1 and J2) and document them as and when I further the
device driver base for the target.

If you feel like reaching out to me for questions pertaining to the
target development board, you can write to me: ramangopalan AT gmail
dot com.

## Supported compiler

This BSP is built with the AVR32 GCC that comes with the Microchip
Studio. I am using the Microchip Studio version 7.0.2594. Make sure
that avr32-gcc.exe is visible on your command line. Add the binary
directory to you PATH. Yes, on Windows. Sorry :(

![env-windows-avr32-gcc](figures/env-windows-avr32-gcc.png)

I use Git Bash (Windows) for compiling the RT-Thread system. Once you
set your path correctly, invoke Git Bash to query avr32-gcc.exe's
version. The output should look similar to this:

```bash
$ avr32-gcc.exe --version
avr32-gcc.exe (AVR_32_bit_GNU_Toolchain_3.4.2_435) 4.4.7
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
```

If you see this, you're all set to compile RT-Thread for AT32UC3B0256.

## Program firmware

### Step 1: download the RT-Thread codebase and navigate to bsp/avr32uc3b0.

```bash
$ cd bsp/avr32uc3b0/
```

### Step 2: build

```bash
scons -c
scons
```

### Step 3: flash

If everything went well, scons should have generated an elf file:
rtthread-uc3b0256.elf. Let us program the file. The program 'atprogram'
comes with Microchip Studio. I didn't have to do much here. Just make sure
'atprogram.exe' is in your PATH.

```bash
atprogram -t atmelice -i jtag -d at32uc3b0256 program -f rtthread-uc3b0256.elf
```

Note that you should already see the on-board LEDs (PA7, PA8) blink if your
programming was successful. I use the Atmel ICE programmer. To access
msh, you'll need an FTDI breakout board. Connect the target board to
the FTDI breakout with jumper wires:

- GND (FTDI) to GND (development board)
- RX (FTDI) to J2, pin 10.
- TX (FTDI) to J2, pin 7.

## Running Result

The output information on serial port for `ps' the command should look like this:

```bash
0x000003c0 tidle0    31  ready   0x00000054 0x00000100    67%   0x00000009 OK
0x00001650 tshell    20  running 0x000000b4 0x00001000    13%   0x0000000a OK
0x00000ac4 led2       5  suspend 0x0000007c 0x00000400    12%   0x0000000a EINTRPT
0x00001350 led1       5  suspend 0x0000007c 0x00000400    12%   0x00000005 EINTRPT
```

## Peripheral Support

| Drive | Support | Remark  |
| ----- | ------- | ------- |
| UART  | Support | UART0/1 |
| GPIO  | -       | -       |
| I2C   | -       | -       |
| RTC   | -       | -       |
| SPI   | -       | -       |
| TIMER | -       | -       |
| WDT   | -       | -       |