• 注册
  • 查看作者
  • Arduino Due 中文介绍

    以下内容均翻译自arduino.cc,水平有限,如有错误请大家指正 。
    <strong>Arduino Due 中文介绍</strong>‘ src=’https://img.haibucuo.com/2023/02/105042ugvuuzbwt53g7nnb.jpg?x-oss-process=style/full’></a><br><strong>概述</strong><br>Arduino Due 是一块基于 Atmel SAM3X8E CPU的微控制器板.它是第一块基于 32位ARM核心的arduino. 它有54个数字IO口 (其中12个可用于PWM输出),12个模拟输入口,4路UART硬件串口, 84 MHz的时钟频率, 一个USB OTG接口, 两路DAC(模数转换),两路TWI,一个电源插座,一个SPI接口,一个JTAG接口,一个复位按键和一个擦写按键。</p>



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



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



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



<p><strong>原理图及参考设计</strong><br><a href="http://arduino.cc/en/Main/ArduinoBoardDue" target="_blank" rel="noreferrer noopener">arduino-Due-reference-design.zip<br>Schematic: arduino-Due-schematic.pdf</a></p>



<p><strong>摘要</strong></p>



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



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



<p><strong>存储空间</strong><br>SAM3X有512 KB (两块256 KB)用于存储用户程序的Flash空间。ATMEL已经在生产芯片时,将bootloader预烧写进了ROM里. SRAM有96 KB,由两个连续空间64 KB和32 KB组成. 所有可用存储空间 (Flash, RAM 和 ROM) 都可以直接寻址。你可以通过板子上的擦写按钮,擦除SAM3X 的 Flash 中的数据. 这个操作将删除当前加载的项目. 在通电状态下,按住擦写按钮几秒钟,即可擦写。<br><strong>输入和输出</strong><br><strong>Digital I/O: 0至53号引脚</strong><br>使用pinMode(), digitalWrite(), anddigitalRead() 函数,每一个IO都可以作为输入输出端口。他们工作在3.3V。每一个IO都可以输出 3 mA 或者 15 mA电流,或者输入6 mA 或者 9 mA电流。他们也都有100K 欧 的内部上拉电阻 (默认状态下不上拉)。另外,一些引脚有特殊功能:<br><strong>Serial: 0 (RX) and 1 (TX)<br>Serial 1: 19 (RX) and 18 (TX)<br>Serial 2: 17 (RX) and 16 (TX)<br>Serial 3: 15 (RX) and 14 (TX)</strong><br>串口发送接受端口(工作在3.3V电平). 其中0,1连接到了 ATmega16U2 的对应串口上,用于USB转UART通信.<br><strong>PWM: 引脚 2 to 13</strong><br>使用analogWrite()函数提供8位的 PWM 输出. 可以通过analogWriteResolution() 函数改变PWM输出精度。<br><strong>SPI: </strong>SPI接口 (在其他arduino上称作ICSP接口)<br>可以通过SPI库是SPI接口用于通信。SPI 引脚已经引出到了6针接口位置, 可以和 Uno、Leonardo、Mega2560兼容. 这个SPI针仅用于和其他SPI设备通信,不能用于 SAM3X 的程序烧写。Due的SPI可以通过Due专用的扩展库来使用其高级特性。<br><strong>CAN: CANRX 和 CANTX</strong><br>硬件支持CAN,但arduino目前并不提供该API<br><strong>“L” LED: 13</strong><br>有一个内置的LED在数字脚13上,当引脚是高电平事,LED亮,引脚为低电平时,LED不亮。因为13脚带有PWM输出功能,因此可以进行亮度调节。<br><strong>TWI 1: 20 (SDA) 和 21 (SCL)</strong><br><strong>TWI 2: SDA1 和 SCL1.</strong><br>支持使用Wire库来进行TWI通信<br><strong>模拟输入: A0 到 A11</strong><br>Arduino Due有12路模拟输入端, 每一路都有12位精度(0-4095)。默认情况下, 模拟输入精度为10位, 和其他型号的 Arduino 控制器一样。通过analogReadResolution()你可以改变ADC的采样精度. Due的 analog inputs引脚测量范围为 0 至 3.3V。如果测量高于3.3V电压,可能会烧坏 SAM3X。analogReference() 函数在Due上是无效的.<br>AREF 引脚通过一个电阻桥接到 SAM3X 模拟参考脚. 如果要使用 AREF 脚, 你需要先从PCB上拆下BR1这个电阻。<br><strong>DAC1 and DAC2</strong><br>通过analogWrite() 函数提供12位精度的模拟输出 (4096个等级) . 可以通过Audio库创建音频输出。</p>



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



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



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



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



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



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



<p>翻译自arduino.cc <a rel="noreferrer noopener" href="http://arduino.cc/en/Main/ArduinoBoardDue" target="_blank"><jin class="jinsom-post-link" type="link" data="http://arduino.cc/en/Main/ArduinoBoardDue" onclick="jinsom_post_link(this);"><i class="fa fa-link"></i> 链接</jin></a></p>



<p>参考:https://www.arduino.cn/thread-2216-1-1.html</p>
</div>



<!-- 话题 -->
<div class="jinsom-single-topic-list clear">
<a href="https://www.chuangzaomi.cn/tag/arduino" title="arduino" class="opacity"><img loading="lazy" src="https://img.chuangzaomi.cn/user_files/498/setting/89158256_1710316752.png" class="avatar opacity" alt="arduino"><span>arduino</span></a></div>




<div class="jinsom-post-bar">

<li class="jinsom-no-like" onclick= 0

  • 0
  • 0
  • 275
  • 请登录之后再进行评论

    登录
  • 动态
  • 单栏布局 侧栏位置: