IAR的第一个工程
先说说Cortex-M0处理器吧...赶脚多的有点烂大街的感觉了,,NXP,Cypress,Silicon Labs,ST,等等...(
貌似没TI...)
各有各的特点,,,,但都脱离不了这个核的面向主旨..
ATMEL公司的这个
SAM D ARM Cortex Microcontrollers,名字里面关键词是,,SMART(杀马特呵呵,,好吧,,机智.)...
看下他所谓的特点:
官网上说:
基于 Atmel® | SMART™ SAM D ARM® Cortex®-M0+ 的微控制器 (MCU) 系列凝聚了 Atmel 在嵌入式闪存微控制器技术方面数十年的创新思想与丰富经验。它不仅设定了灵活性和易用性方面的新基准,而且还将基于 ARM Cortex-M0+ 的 MCU 的高性能和高效能与优化的架构和外设集很好地融合在一起。Atmel | SMART SAM D 为您带来了真正极具特色的通用微控制器,是许多低功耗、成本敏感型企业和消费应用的理想之选。
呵呵:烂大街的废话,就是极草5X冬虫夏草的词儿.
然后:
关键特性 - 低功耗 — 市场领先的省电技术包括事件系统,可使外设直接相互通信,而无需 CPU 干预。此外,Atmel SleepWalking™ 外设只有在发生预先限定的事件时才唤醒 CPU,从而降低了整体功耗。 //挺流弊的样子,,没给出大概的数据,,回头自己测测..
- 外设灵活性 — 创新性的串行通信模块 (SERCOM) 完全可以在软件中进行配置,以便处理 I2C、USART/UART 和 SPI 通信。借助器件上的多个 SERCOM 模块,可以在您的应用中精确地定制外设组合。SAM D 21 上的 I2C 的工作频率高达 3.4 MHz(也支持 I2S、PMBus 和 SMBus)。SAM D11 和 SAM D10 还支持 IrDA。
- DMA — SAM D21 配有支持存储器和外设数据传输的 8 通道 DMA 控制器,而 SAM D11 和 SAM D10 配有 6 通道 DMA 控制器。 //有DMA不错
- 高管脚利用率 — SAM D11 只需要 1 个电源对,最大程度提高了可供您的应用使用的管脚数。
- 全速 USB — SAM D21 既支持 USB 嵌入式主机又支持 USB 设备模式,而 SAM D11 支持全速 USB 设备模式。使用内部 RC 振荡器时,在设备模式下支持全速 USB,从而降低了 BOM 成本和设计复杂性。 //M0的USB全速的少见..
- Atmel QTouch® 外设触摸控制器 — 可为按钮、滑条、滑轮和近距离感应提供内置的硬件支持,并支持互电容式和自电容式触摸,而无需外部元件。它具有卓越的灵敏度、耐噪性以及自校准功能,任何用户都可以调整余量。 //和Cypress 一直竞争...
- 可扩展性 — 闪存密度范围从 8KB 到 256KB,封装范围从 14 管脚到 64 管脚选项。 //没用的话
不说没用的了,,先上个开箱图:
关于这个板子,我得吐槽两句...为何要把板子做的那么大.分散,..这么少的器件,又没有多严格的器件,为啥不做的再紧密点..浪费啊..
但板子看起来还是挺帅的,,
插上电的默认例程是LED_BLINK,,小灯闪啊闪,
现在来说说用IAR建立工程.(果断抛弃ATMEL STUDIO)
我的IAR版本是:
7.2最新版
首先要从官网下载AtmelUSBdriver(如果不想用ATMEL STUDIO的话),否则板载仿真器没驱动.
地址是:
https://gallery.atmel.com/Produc ... -ba83-286869a3d97a?
下载完后,将板子插上电,就可以看到设备都正常了.
第二步:
下载官网的固件库.
Atmel Software Framewor 地址:[url]http://www.atmel.com/zh/cn/tools/AVRSOFTWAREFRAMEWORK.aspx[/url]
里面有各种驱动,第三方,例程等,,就是没有说明文档,这一点很气愤.
解压后是这样::(我把AVR,等其他的都给删了,,)
我们打开sam0\applications\getting-started\samd21j18a_samd21_xplained_pro\iar
打开工程.
看注释,这个例程实现的是LED_BLINK和LED_TOGGLE及UART串口.
插电,编译,下载.
其中下载这部分有个问题要说下,很多人在下载时会出现这种错误
这需要你在options-debugger-cmsis-dap-download里面正确设置flash loader.
如图:
还有一个问题:
如果出现这样的错误,例程里面又一个蛋疼的错误设置:
我看国外某个论坛说需要将CMSIS DAP的方式设置为SWD,而不是JTAG,,因此,解决方法就是选择SWD,而不是JTAG.
如图:
现在应该没问题了,,下载到板子里面,打开串口调试
会出现:
这时候按板子上的SW0按钮,LED0会被SW0 TOGGLE.
呦西,,这就是第一个例程了,,,好不容易抽出时间写的,,倒腾这蛋疼的仿真器的驱动倒腾了好长时间,因为出现这种错误:
花了我500多流量下了ATMEL STUDIO就很不爽了,,,结果安装又出现这种费解的错误,,着实很烦...在网上搜了下,直接下载上面给出的单独的驱动,用IAR,果断抛弃ATMEL STUDIO.