
Atmel SAM3U (圖片取自 Atmel 官方網站)
Cortex-M3 是 ARM 系列中, 用來主攻 MCU 市場的處理器核心,
現在市場上到處都是, 價格也是一顆比一顆更有競爭力, 有些 high-end 一點的 AVR 都還比它還貴.
32-bit MCU 已經逐漸侵蝕 一些 8-bit MCU 的市場了, 拜先進製程的發展之賜, 高速的運算能力真是垂手可得.
繼續來繼續邊看編寫筆記, 一窺 Arduino Due 所使用的 Atmel SAM3U4E Cortex-M3 處理器到底有些甚麼料. SAM3U4E 是 SAM3U 系列中記憶體最大的 一顆, pin count 也是最多的
可參考下表
Device | Flash (Kbytes) | SRAM (Kbytes) | Pin Count |
SAM3U4E | 256 | 50 | 144 |
SAM3U2E | 128 | 36 | 144 |
SAM3U1E | 64 | 20 | 144 |
SAM3U4C | 256 | 50 | 100 |
SAM3U2C | 128 | 36 | 100 |
SAM3U1C | 64 | 20 | 100 |
但是這一系列的 處理器裡, 不含 EEPROM, 有些可惜! 不知道他的 Flash 是不是很容易可以當 non-volatile data memory 來讀寫. 後面再來看看.
再來看看時脈:
Max. Operating Frequency | CPU | QTouch Channels | Hardware QTouch Acquisition |
96 | Cortex-M3 | 57 | No |
96 | Cortex-M3 | 57 | No |
96 | Cortex-M3 | 57 | No |
96 | Cortex-M3 | 28 | No |
96 | Cortex-M3 | 28 | No |
96 | Cortex-M3 | 28 | No |
很清楚了, 96MHz!
另外可支援共 57 個 QTouch 通道, 但是應該是使用 Atmel 所提供的 software library 來實做,
不是純 hardware 的. QTouch 是甚麼呢? 簡單的說就是時下最流行的觸控輸入囉.
下表告訴我們 SAM3U4E 最多可有 96 支 I/O 腳, 而且每一支腳都可產生中斷,
實際使用時可能因為一些原因 I/O 腳可能會少一些, 不過也很多了.
另外, 有需要用到 quadrature encoder (轉速, 旋鈕, 量測等等) 的人有福了,
這裡看到了硬體 decoder 支援喔! 不須另外寫 software decoder 了.
內建 high speed USB, 號稱是業界第一顆具備 high speed USB 的 Cortex-M3 based MCU 喔!!
只支援 device mode, 沒有 host mode, 也就是說, 不是 OTG. 對應用來說稍微有點可惜.
不像Google ADK 那樣有 host 的功能, 又可做更多的應用. 不過我想這應該是產品定位的原因.
有內建USB 就可以玩更多的花樣, 例如 HID, MSD, Virtual COM 等等, 可以直接用 USB 來做通訊,
不再侷限於 COM port 了.
Max I/O Pins | Ext Interrupts | Quadrature Decoder Channels | USB Transceiver | USB Speed | USB Interface |
96 | 96 | 1 | 1 | Hi-Speed | Device |
96 | 96 | 1 | 1 | Hi-Speed | Device |
96 | 96 | 1 | 1 | Hi-Speed | Device |
57 | 57 | 1 | 1 | Hi-Speed | Device |
57 | 57 | 1 | 1 | Hi-Speed | Device |
57 | 57 | 1 | 1 | Hi-Speed | Device |
看看其他的 peripherals, SPI, I2C, UART, SSC (I2S).
沒有 Ethernet! 不像 NXP 的 LPC1768 (一樣是 Cortex-M3 based, 我也很有興趣看看這棵,
之後找個時間來 study 一下), 若有內建 Ethernet 會方便不少.
同樣的, 這應是市場區隔的考量, 所有東西通通擠在一顆裏, 一定會體重過重, 很癡肥.
SPI | TWI (I2C) | UART | CAN | LIN | SSC | Ethernet |
5 | 2 | 5 | 0 | 0 | 1 | 0 |
5 | 2 | 5 | 0 | 0 | 1 | 0 |
5 | 2 | 5 | 0 | 0 | 1 | 0 |
4 | 1 | 4 | 0 | 0 | 1 | 0 |
4 | 1 | 4 | 0 | 0 | 1 | 0 |
4 | 1 | 4 | 0 | 0 | 1 | 0 |
還有幾項內建周邊介面: SD/eMMC, 12-bit 解析度 的 ADC,
這是 現有 AVR based 的 Arduino 的 4 倍解析度
根據 data sheets, 共有 8-channel 12-bit ADC, 8-channel 10-bit ADC.
Segment LCD | Graphic LCD | ADC Channels | ADC Resolution (bits) | ADC Speed (ksps) |
0 | No | 16 | 12 | 384 |
0 | No | 16 | 12 | 384 |
0 | No | 16 | 12 | 384 |
0 | No | 8 | 12 | 384 |
0 | No | 8 | 12 | 384 |
0 | No | 8 | 12 | 384 |
常見的 timer, PWM 還有 32KHz RTC, 都具備啦!
好了, 今天先到這裡.
Timers | Output Compare channels | Input Capture Channels | PWM Channels | 32kHz RTC |
3 | 3 | 3 | 4 | Yes |
3 | 3 | 3 | 4 | Yes |
3 | 3 | 3 | 4 | Yes |
3 | 3 | 3 | 4 | Yes |
3 | 3 | 3 | 4 | Yes |
3 | 3 | 3 | 4 | Yes |