当您手中有一块板子却不知道它是否正常工作时,如何验证它是否正常工作?
当您手中有一块板子却不知道它是否正常工作时,如何验证它是否正常工作?
Answers:
注意: @Ricardo对我的上个帖子发表评论后,我将发布此信息!
将评估板插入计算机的USB端口,并检查评估板上的绿色LED电源指示灯是否点亮。标准Arduino板(Uno,Duemilanove和Mega)在复位开关附近有一个绿色LED电源指示灯。
电路板上电时,电路板中心附近的橙色LED(在下图中标记为“ Pin 13 LED”)应点亮和熄灭(电路板来自工厂,预装了软件以使LED闪烁,这是一项简单的检查,板正在工作)。
如果将主机板连接到计算机时电源LED指示灯不亮,则可能是主机板未接通电源。
闪烁的LED(连接到数字输出引脚13)由板上运行的代码控制(新板上预装有Blink示例草图)。如果13针LED指示灯闪烁,则草图运行正确,这表示板上的芯片正在工作。如果绿色电源LED亮起,但插针13 LED不闪烁,则可能是工厂代码未在芯片上。如果您不使用标准板,则其插针13上可能没有内置LED,因此请查看文档以获取有关板的详细信息。
假设一个人拥有一个USB编程器,还有另一种检查Arduino的方法。
将编程器连接到Arduino的ICSP引脚,并avrdude
使用正确的参数进行调用以读取Arduino的保险丝。
avrdude -c programmer-id -p partno -P port
对于Arduino Uno,partno
是m328p
。Programmer-id
取决于使用的设备。就我而言(mySmartUSB light)stk500v2
是受支持的,并且port
是/dev/ttyUSB0
。这里
avrdude -c stk500v2 -p m328p -P /dev/ttyUSB0
提供以下输出
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0x1e950f
avrdude: safemode: Fuses OK
avrdude done. Thank you.
UNO董事会以正确的签名回应,并准备采取一些行动:)
我的USB编程器带有6线带状电缆,两侧带有2x3母连接器。与往常一样,插针1的电线标记为红色。由于编程器的2x3公连接器上有一个槽口,因此电缆只能在一个方向上安装。
如果您查看Arduino UNO,则ICSP标头位于重置按钮的右侧。
引脚排列如下。
MISO 1 2 VCC SCK 3 4 MOSI 复位5 6 GND
注意插针1在左上角,并用白点标记!
如果您有另一个可以正常工作的Uno,并且都装有插槽的微控制器芯片,则可以使用已知的板将测试草图编程到未知板的芯片上,然后放回未知板上,然后运行它。
我喜欢下面的(伪编码)测试草图,用于快速检查手工制作的板;它同样适用于测试未知的工厂制造的产品。这不是详尽的测试,它只是检查基本的数字I / O,串行I / O以及短路或断路:
forever,
for each digital I/O pin:
write high;
delay 100ms;
write low;
end;
write "Hello, World!\n" to serial output;
while serial character available,
write character to serial output;
end;
write "\n" to the serial output;
end;
连接至任何I / O与接地之间的测试LED(电阻焊接在其上的LED)应每2秒闪烁一次。如果不是,则该引脚可能发生故障或连接不良。
连接到数字上相邻的引脚(物理上可能彼此不相邻)的两个测试LED应该依次闪烁。如果它们一起闪烁,则表明它们之间的短路,可能是焊料桥。
终端应显示“ Hello World!” 每两秒钟。如果不是,则该引脚或FTDI电缆或板载USB /串行芯片可能出现故障。
在键盘上键入一些内容,然后应将其重复回到串行终端(如果通过了先前的测试)。如果不是,则该针或FTDI电缆或板载USB /串行芯片可能再次出现故障。