查看: 112286|回复: 63

Arduino Due 中文介绍

  [复制链接]
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

    发表于 2012-10-23 02:58 | 显示全部楼层 |阅读模式
    以下内容均翻译自arduino.cc,水平有限,如有错误请大家指正 。
    due.jpg
    概述
    Arduino Due 是一块基于 Atmel SAM3X8E CPU的微控制器板.它是第一块基于 32位ARM核心的arduino. 它有54个数字IO口 (其中12个可用于PWM输出),12个模拟输入口,4路UART硬件串口, 84 MHz的时钟频率, 一个USB OTG接口, 两路DAC(模数转换),两路TWI,一个电源插座,一个SPI接口,一个JTAG接口,一个复位按键和一个擦写按键。

    警告: 不同于其他arduino,arduino due的工作电压为3.3V。IO口可承载电压也为3.3V。如果你使用更大的电压,比如5V到一个IO口,可能会烧了芯片。

    电路板上已经包含控制运行所需的各种部件,你仅需要通过USB连接到电脑 或者 通过AC-DC适配器、电池连接到电源插座就可以让控制器开始运行。arduino due兼容工作在3.3V且引脚排列符合1.0 arduino标准的arduino扩展板。

    ARM核心的优势
    使用32位ARM核心的Due相较于以往的使用8位AVR核心的其他arduino更强大。明显的差别有:
    32位核心在一个时钟能处理32位的数据;
    84Mhz的CPU时钟频率;
    96 KBytes的SRAM;
    512 KBytes的Flash;
    一个DMA控制器, 他能减轻 CPU做大量运算时的压力。

    原理图及参考设计
    arduino-Due-reference-design.zip
    Schematic: arduino-Due-schematic.pdf


    摘要

    微控制器  AT91SAM3X8E
    工作电压  Voltage 3.3V
    输入电压(推荐)  7-12V
    输入电压(限制)  6-20V
    数字I/O引脚  54 (其中12路PWM输出)
    模拟输入通道  Pins 12
    模拟输出通道 Pins 2 (DAC)
    IO口总输出电流 130 mA
    3.3V端口输出能力   800 mA
    5V端口输出能力   800 mA
    Flash    512 KB (所有空间都可以储存用户程序)
    SRAM   96 KB (两个部分: 64KB and 32KB)
    时钟速率  84 MHz

    电源
    Arduino Due可以通过Micro USB接口或外接电源供电,电源可以自动被选择。
    外部(非USB)电源可以用AC-DC适配器(wall-wart)或电池。 适配器可以插在一个2.1毫米规格中心是正极的电源插座上,以此连接到控制器电源。控制器能支持6到20V电压输入。如果输入电压低于7V, 5V引脚可能得到的电压会低于5V,控制器运行可能会不稳定。如果使用输入电压超过12V, 可能会造成控制器过热,甚至损坏损坏。推荐输入电压范围为7到12V。电源相关引脚如下:
    VIN. Arduino 使用外部电源时的输入电压引脚(你可以通过这个引脚供电,或者当DC座供电时,通过这个引脚使用DC电源)
    5V. 通过板载稳压芯片输出的5V的电压引脚。你可以从DC电源口、USB、VIN三处给控制器供电。也可以绕过稳压IC,直接从5V、3V3引脚供电,但不建议这样使用。
    3.3V.  通过板载稳压芯片输出的3.3V的电压引脚。 最大电流800 mA。该电压也是 SAM3X 的工作电压.
    GND. 接地引脚.
    IOREF. 该引脚提供arduino微控制器的工作参考电压. 一个适合的arduino扩展板能够读取 IOREF 引脚电压选择合适的电源, 或者提供3.3V或5V的电平转换。

    存储空间
    SAM3X有512 KB (两块256 KB)用于存储用户程序的Flash空间。ATMEL已经在生产芯片时,将bootloader预烧写进了ROM里. SRAM有96 KB,由两个连续空间64 KB和32 KB组成. 所有可用存储空间 (Flash, RAM 和 ROM) 都可以直接寻址。你可以通过板子上的擦写按钮,擦除SAM3X 的 Flash 中的数据. 这个操作将删除当前加载的项目. 在通电状态下,按住擦写按钮几秒钟,即可擦写。
    输入和输出
    Digital I/O: 0至53号引脚
    使用pinMode(), digitalWrite(), anddigitalRead() 函数,每一个IO都可以作为输入输出端口。他们工作在3.3V。每一个IO都可以输出 3 mA 或者 15 mA电流,或者输入6 mA 或者 9 mA电流。他们也都有100K 欧 的内部上拉电阻 (默认状态下不上拉)。另外,一些引脚有特殊功能:
    Serial: 0 (RX) and 1 (TX)
    Serial 1: 19 (RX) and 18 (TX)
    Serial 2: 17 (RX) and 16 (TX)
    Serial 3: 15 (RX) and 14 (TX)

    串口发送接受端口(工作在3.3V电平). 其中0,1连接到了 ATmega16U2 的对应串口上,用于USB转UART通信.
    PWM: 引脚 2 to 13
    使用analogWrite()函数提供8位的 PWM 输出. 可以通过analogWriteResolution() 函数改变PWM输出精度。
    SPI: SPI接口 (在其他arduino上称作ICSP接口)
    可以通过SPI库是SPI接口用于通信。SPI 引脚已经引出到了6针接口位置, 可以和 Uno、Leonardo、Mega2560兼容. 这个SPI针仅用于和其他SPI设备通信,不能用于 SAM3X 的程序烧写。Due的SPI可以通过Due专用的扩展库来使用其高级特性。
    CAN: CANRX 和 CANTX
    硬件支持CAN,但arduino目前并不提供该API
    "L" LED: 13
    有一个内置的LED在数字脚13上,当引脚是高电平事,LED亮,引脚为低电平时,LED不亮。因为13脚带有PWM输出功能,因此可以进行亮度调节。
    TWI 1: 20 (SDA) 和 21 (SCL)
    TWI 2: SDA1 和 SCL1.
    支持使用Wire库来进行TWI通信
    模拟输入: A0 到 A11
    Arduino Due有12路模拟输入端, 每一路都有12位精度(0-4095)。默认情况下, 模拟输入精度为10位, 和其他型号的 Arduino 控制器一样。通过analogReadResolution()你可以改变ADC的采样精度. Due的 analog inputs引脚测量范围为 0 至 3.3V。如果测量高于3.3V电压,可能会烧坏 SAM3X。analogReference() 函数在Due上是无效的.
    AREF 引脚通过一个电阻桥接到 SAM3X 模拟参考脚. 如果要使用 AREF 脚, 你需要先从PCB上拆下BR1这个电阻。
    DAC1 and DAC2
    通过analogWrite() 函数提供12位精度的模拟输出 (4096个等级) . 可以通过Audio库创建音频输出。

    其他引脚:
    AREF
    模拟输入参考电压。通过analogReference()使用。
    Reset
    接低复位控制器。典型应用是通过该脚来连接扩展板上的复位按键。

    通信
    Arduino Due 可以通过多种方式与电脑、其他arduino 或者其他控制器通信, 也可以和其他不同的设备通信,像手机、平板、相机等等。SAM3X提供一组硬件UART和3组TTL (3.3V) 电平的UARTs 来进行串行通信。
    程序下载接口连接着 ATmega16U2, 他虚拟了一个COM口在(Windows需要一个 .inf文件来识别该设备, 而OSX 和 Linux 可以自动识别). SAM3X 的硬件UART也连接着ATmega16U2。 串口 RX0和TX0通过ATmega16U2 提供了用于下载程序的串口转USB通信。ArduinoIDE包含了一个串口监视器, 可以通过串口监视发送或接收简单的数据。当数据通过16U2传输时 或者 USB连接电脑时(并不是0,1上的串口通信),板子上的RX和TX两个LED会闪烁。
    原生的USB口虚拟串行CDC通信,这样可以提供一个串口,与串口监视器 或者 你电脑上其他应用相连。这个USB口也可以用来模拟一个 USB鼠标或者键盘。要使用这个功能,请查看鼠标键盘库支持页面 。这个原生USB口也可以作为USB 主机去连接其他外设,如鼠标, 键盘、智能手机. 要使用这个功能, 请查看USBHost支持页面。
    SAM3X 也支持TWI和SPI通信.。ArduinoIDE中可以通过Wire库轻而易举的使用TWI总线;使用SPI库可以进行SPI通信,细节方面请查看SPI支持页面。
    编程
    Arduino Due通过ArduinoIDE中的“download”下载程序.。在SAM3X的arduino上 上传程序和AVR控制器有所不同,这是因为flash在上传程序前,需要被擦写。 SAM3X 的ROM中的程序会进行上传任务,但运行该程序的前提是SAM3X的flash空间是空的。
    DueUSBPorts.jpg

    两个USB接口都可以给Due下载程序, 由于芯片擦除方式的影响,更推荐使用编程端口:

    编程端口: 使用这个端口下载, 你需要在arduinoIDE中选择"Arduino Due (Programming Port)"作为你的板子。连接编程端口 (靠近DC座的那一个) 到你的电脑。编程端口使用16U2来作为USB转serial连接到SAM3X 的第一UART(RX0 and TX0)。16U2上有两个针连接到连接到SAM3X的复位和擦除脚。在1200波特率下,打开和关闭串口会触发SAM3X的硬擦写程序,在通信之前通过串口触发 SAM3X 的擦写和复位引脚。推荐使用这个端口,上传程序到arduino。相对于使用原生USB端口软擦写芯片,使用编程端口硬擦写更稳定可靠。即使主芯片坏了,该端口仍旧会工作。

    原生端口: 使用这个端口下载, 你需要在arduinoIDE中选择  "Arduino Due (Native USB Port)" 作为你的板子。连接原生USB端口 (靠近复位按键的那一个) 到你的电脑。在1200波特兰下,打开和关闭串口会触发SAM3X的软擦写程序:flash空间被擦写、程序倒转到bootloader区。如果主芯片损坏,软擦写程序 会不工作,这是因为该程序完全在SAM3X 上。开关原生USB端口baudrate 不会复位SAM3X。
    不同于其他的Arduino控制器使用avrdude上传程序, Due上传程序依赖于 bossac。
    ATmega16U2固件源码能在arduino库中找到。你可以使用外部编程器,通过ISP接口烧写固件 (覆盖DFU bootloader)。更多信息请参考相关文档。
    USB过流保护
    Arduino Due上有一个自恢复保险丝,短路或者过流时,可以自动断开,从而保护你的电脑USB.。大部分电脑都带有内部过流保护,这个保险丝可以提供一层额外保护。 当电流大于500MA时,这个保险丝会自动断开,直到没有过载或者短路现象。

    外形和扩展板兼容性
    这段我真不想翻译了,和2560的外形一样。扩展板兼容考虑下电平就好。

    翻译自arduino.cc http://arduino.cc/en/Main/ArduinoBoardDue  


    如果以上内容对你有帮助,你可以通过打赏支持作者
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

     楼主| 发表于 2014-5-15 01:51 | 显示全部楼层
    de6ian 发表于 2014-5-14 23:42
    看到这,买2560不如买due,处理器更好

    如果对速度没有太高的要求,还是2560更好,库更多,外围模块更多
    如果以上内容对你有帮助,你可以通过打赏支持作者

    该用户从未签到

    发表于 2012-10-24 16:30 | 显示全部楼层
    ……说句实话要是真买了这玩意回来大半都会考虑刷个安卓之类的……毕竟通信和刷机都比较简单……
    头像被屏蔽

    该用户从未签到

    发表于 2012-10-25 08:26 | 显示全部楼层
    Cortex-M3,不错。在做板子了么?
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

     楼主| 发表于 2012-10-25 09:27 | 显示全部楼层
    q75236123 发表于 2012-10-24 16:30
    ……说句实话要是真买了这玩意回来大半都会考虑刷个安卓之类的……毕竟通信和刷机都比较简单…… ...

    这个还达不到手机IC的那个程度
    如果以上内容对你有帮助,你可以通过打赏支持作者
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

     楼主| 发表于 2012-10-25 09:27 | 显示全部楼层
    kaolacatty 发表于 2012-10-25 08:26
    Cortex-M3,不错。在做板子了么?

    暂时没有
    如果以上内容对你有帮助,你可以通过打赏支持作者

    该用户从未签到

    发表于 2012-10-25 16:30 | 显示全部楼层
    奈何col 发表于 2012-10-25 09:27
    这个还达不到手机IC的那个程度

    ……理论上应该能刷吧?我的一块M3的板子就被同学拿去刷了安卓……虽然着实很卡……
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

     楼主| 发表于 2012-10-25 17:05 | 显示全部楼层
    q75236123 发表于 2012-10-25 16:30
    ……理论上应该能刷吧?我的一块M3的板子就被同学拿去刷了安卓……虽然着实很卡…… ...

    那肯定不是一般的慢了
    如果以上内容对你有帮助,你可以通过打赏支持作者

    该用户从未签到

    发表于 2012-10-27 01:10 | 显示全部楼层
    同志辛苦了,方便万千同好了
  • TA的每日心情
    开心
    2016-5-2 12:17
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2012-10-27 02:33 | 显示全部楼层
    与netduino有啥区别?
  • TA的每日心情
    擦汗
    2018-9-19 20:22
  • 签到天数: 47 天

    [LV.5]常住居民I

    发表于 2012-10-27 17:50 | 显示全部楼层
    ardypro 发表于 2012-10-27 02:33
    与netduino有啥区别?

    这个还是c++,netduino是.net
    如果你觉得以上内容帮到了你,你可以打赏支持作者
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    有对屏幕了解的大神吗?
    有对屏幕了解的大神吗?
    这种屏幕可以用arduino板或者树莓派做出来吗?小白对这方面一无所知,求指点
    编写了个贪食蛇小程序
    编写了个贪食蛇小程序
    8*8双色3mm红蓝雾状发光二极管 用595驱动的
    Adruino小型自平衡机器人EVA(+硬件+源代码+3D文件)
    Adruino小型自平衡机器人E
    [*]2个月前做的小机器人,在CSDN个人博客上发了,从没接触过PID、3D打印、电机等,就
    超萌机器人  pando
    超萌机器人 pando
    ## 准备工作准备好如下材料: · DFRobot Romeo BLE mini V2.0 控制器 × 1·
    红外模块在接收时码值变动
    红外模块在接收时码值变动
    在使用arduino连接一个红外接收后,下载的红外模块的库IRremote,在使用时发现,遥控
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表