一元POS机加洞洞板加串口小板等于arduino
本文主要目标是测试huawei 的ARDUINO FOR STM32F401CCU6(HALMX构架)测试版发布http://bbs.mydigit.cn/read.php?tid=1816615
“工预善其事,必先利其器”,这个arduino 的测试要有硬件做基础,最佳方案是买个成品的STM32F401CC的系统板来改造,这个不符合我们DIY 的精神,我们手里一元POS机不答应,好吧,有能力把POS机芯片拆下来的,并且可以焊到板子上的,可以用核心板来改造,我决定用POS机来改,这个难度相对小一些,至少比在集成电路上刮U要简单。
首先我上张表格,这个把芯片的所有引脚都罗列出来了,具体的改法见
后加是指在电路板上合适位置,自行刮开电路板,焊接飞线。
改造过程
#p#分页标题#e#
注意本表格仅仅适用于图片所见的POS机,相近的POS机管脚需要自行测试,这个应当是知道原理,怎样设计是你的事。
在这个板子上需要预先处理并焊下,电源开关,红绿LED,刷卡接口,电池,集成电路8035及1547,以及相应的电阻和电容。其中集成电路8035需要用热风枪来处理。
虽然STM32F401CC有31个IO口,但是到用的时候,才知道这个不够,远远不够。
第一张图,来个arduino 这个引脚位置及基本样式。
第二张图,来个STM32 Nucleo401RB核心板 对应管脚图
通过查询en.DM00105823.pdf 和en.DM00231744.pdf 知道STM32 Nucleo401RB 对应管脚,但是我们木有PC7,还有PA9,PA10这个串口管脚还要用。
要么32脚要么64脚,偏偏木有48脚的,我们参照三来改吧。
三,参照机智云的STM32F103C8T6 的底板
Arduino connectors onNUCLEO-F401CC
#p#分页标题#e#
问题一、ADC 不够,通过测量发现,A5(PA5)和 D10(PA5)是一个脚。
问题二、STM32F401CC 木有PB11脚。
下面的表格是 STM32F401CCARDUINO 的管脚罗列。
我不得不说这个STM32F401是个天生的残疾,脑残的缺少PB11。下面要占一楼
测试测试
下载安装 huawei 提供的 arduino 1.611 版本 , 401cc arduino 的示例共计有四大项,12 个示例,每个都先在 BOOT0 置1 ,晶振12M ,的硬件条件下测试。
先测 RAM , 再测 SRAM ,CPU speed(MHZ) 分别测试 84M,120M,144M,
如果出现如下错误提示,请先安装任何一款RAM 的芯片,见图。
一、示例第1 大项Basic
Blink0_morse 输出如下莫尔斯电码“-- .- .--. .-.. . ”见示波器图形,非常完美。任何管脚替换源程序的PC13 都非常顺利。这个示例优良。无管脚定义也可替换。
Blink1_Std 示波器波形输出正常,管脚替换时要先定义。否则其它管脚替换后无反应。
Blink2_Int 这个测试的板子内置LED 的闪烁, PC13 脚出现如下波形。
Blink3_51 波形同上,管脚替换时要先定义, ,建议本程序的的延迟做个修改与前面的程序有所区别。
Blink4_Hal 测试中的波形稳定,管脚替换时要先定义。
Blink5_AllPin 这个测试中的所有管脚均有稳定波形,优良。
二、示例第2 大项Digital_Analog 的第一小项AnalogReadSerial AD 测试良好,在串口监视器上可看到“analog read A0 =0 或1 ”.
Digital_Analog 的第二小项DigitalReadSerial DA 测试良好
三、示例第3 大项Communication 的第一小项Uart_HelloWorld ,可在串口监视器窗口看到“Hello World! ”
四、示例第4 大项HAL_Driect ,
第一小项 HALprint 可在串口监视器窗口观察到输出“something ”。
第二小项 HALTogglePin 这个测试中的管脚有稳定波形,优良。定义管脚后和替换。
第三小项 HALUart 出现编译错误,请将”huart3 “ 换成“huart1 ” 后面的延迟函数换成 HAL_Delay(). 可在串口监视器窗口观察到输出“wakeup ”但是第一个显示的是“akeup ”不知道是何原因。
结论:绝大部分程序是正常的,由于有了arduino 封装, 给STM32F401CC 芯片的使用带来了方便,使用者不必去考虑怎样去做晶振的设置,管脚的设置,MCU 的工作频率,写入RAM 或SRAM 中,只要在程序工具中先行设定,非常方便。管脚的替换也很方便,只需要在void setup() {
pinMode(PB3, OUTPUT);
}
定义下就好了。给初学者带来了一定的方便。
Delay() 以及 HAL_Delay() 都可以使用。
芯片的超频,基本上没有对程序及单片机造成影响。
缺点:1 、示例太少。
2 、部分示例还没有进行仔细的测试。
3 、不能把arduino 的A 和D 脚直接对应STM32F401CC 相应的管脚而直接来调用原有arduino 的程序。
建议:1 、每个示例中的延迟都要有所区别,便于初学者测试使用。
2 、示例如果都是HAL 库的,可否把所有程序中的delay ()都统一为HAL_Delay(). 便于初学者使用和计算。
3 、stm32f401cc 做arduino 有很大的缺陷,由于缺少PB11 脚,还要使用到SPI 1 和IC1 ,ADC 1 不足6 个,PWM 不足7 个。因此应当有个电路说明,例如,A5 和D13 共用一个管脚。对应相应的管脚,便于移植。
4 、建议加个电动机的示例。这个比较实用,做个arduino 小车就有希望了。
|
|
(责任编辑:admin) |