zhjb1 发表于 2023-3-30 09:30

AT32F407VGT7GPIO测试_01

本帖最后由 muyichuan2012 于 2023-3-30 10:33 编辑

一、问题的提出最近有个测试,采用国产MCU替换STM的可能性、兼容性、开发容易性、性能差别等。申请了几家具有相关相同的MCU公司,有3个公司有相应:ARTERY雅特力、GEEHY极海、WCH沁恒微三家公司的芯片样片申请响应:ARTERY雅特力      AT32F407VTG7      5片GEEHY极海      APM32F407VET6      3片CH沁恒微      CH32V307VCT6      2片      +一块V307的开发板我们设计的测试版数以紧凑型的,设计时按照STM同级芯片兼容性,考虑了如下因素:1. 具有SFMC的LCD控制系统;2. 将PC0-3作为4线串口LCD独立引出驱显串口黑白小屏;3. 按照STM32CubeMX设计至少1-3路ADC,USART,SPI,I2C,EXINT,A0按键等;4. 板子兼容所有100引脚LQFP的同类MCU,因为他们的引脚只有少数几个不同;5. 5X5CM的PCB,正面引脚-WSP-串口LCD等,背面连接SFMC LCD,一般只焊接8MHz晶振。二、测试方法同时焊接:1. 按照芯片将PCB引脚裁连接好;2. 先仅仅焊接电源引脚和SWD两个引脚,按照1+1+1结束;3. 连接SWD或JTAG测试芯片是否正常——如果正常可以被识别出来——因为在此前买过3片两片不能识别退货了的情况;4. 3通过,将所有元器件焊接准备测试。结果如下:焊接APM第一片,没有识别,静态电流190mA;接着焊接第二片结果照旧静态电流也是190mA;第三片没有焊接。焊接CH的第一片,没有识别,但静态电流很小,符合芯片还处于萌芽,第二片还没有焊。AT芯片最给力,焊接了两片都正常可以进入测试环节。可以说焊接方法都一样,结果非常令人沮丧。我们申请芯片最多3片而不是5片,实际如上所述,只有AT厂家直接寄了5片,结果盈余了。另外两家都只剩一片处于分析等待期。目前只能针对AT的芯片做测试。三、兼容性测试1. 直接用STM32、GD32的工程,仅仅改或不改芯片选择,下载测试非常有趣:STM32F103Vxxx的工程,芯片不改直接可以运行;改了有些可以运行;STM32F103V、Z系列几乎都可以STM32F4xxV系列部分可以GD32F103V、Z系列也几乎可以GD32F207V系列也可以2. 串口黑白LCD调试2.1 工程采用AT32F403a_407_Fireware_Library_V2.1.4所有方法:先找最接近的exammple,而后见需要的相应工程文件夹直接拷贝过来,配置工程选项并且设置文件路径,在过程中添加文件夹组,加入include文件,而后按照对应的源工程代码修改测试。首先我们选择\examples\AT32F4xx\AT32F403A_407_Firmware_Library_V2.1.4\project\ at_start_f407\examples\gpio\io_toggle这个工程;将原来测试好的STM的串口黑白LCD文件夹的lcd复制过来,见截图2_01文件夹截图。2.2 打开工程编译下载LED是不会亮的,打开:at32f403a_407.h和at32f403a_407.c将.h里面的代码改成:#define LED2_PIN                         GPIO_PINS_11#define LED2_GPIO                        GPIOC#define LED2_GPIO_CRM_CLK                CRM_GPIOD_PERIPH_CLOCK#define LED3_PIN                         GPIO_PINS_12#define LED3_GPIO                        GPIOC#define LED3_GPIO_CRM_CLK                CRM_GPIOD_PERIPH_CLOCK#define LED4_PIN                         GPIO_PINS_10#define LED4_GPIO                        GPIOC#define LED4_GPIO_CRM_CLK                CRM_GPIOD_PERIPH_CLOCK偷懒了,我的板子只有3个可控LED,其中一个接在WSD的CLK上,做下载代码观测用,实际只有PC_11,PC_12两个LED,PC_10做备份吧。因为接设计板子是将PC0-PC4定义为4线串口LCD,所以在这款128x64黑白LCD的初始化代码增加了GPIO口的定义: gpio_init_type gpio_init_struct;//enable the gpioa clock crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);//set default parameter gpio_default_para_init(&gpio_init_struct);//configure the gpio gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER; gpio_init_struct.gpio_out_type= GPIO_OUTPUT_PUSH_PULL; gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT; gpio_init_struct.gpio_pins = GPIO_PINS_0|GPIO_PINS_1|GPIO_PINS_2|GPIO_PINS_3|GPIO_PINS_11|GPIO_PINS_12|GPIO_PINS_10; gpio_init_struct.gpio_pull = GPIO_PULL_NONE; gpio_init(GPIOC, &gpio_init_struct);
因为这个128x64 的小屏幕的初始化代码可以驱显好几种同类LCD,所以他已经成为这类小屏的通用驱动了。我设计的PCB将PA_0定义为用户按键 与原工程吻合可以直接套用,结果见视频。https://v.youku.com/v_show/id_XNTk1NDAyMTg0NA==.html

muyichuan2012 发表于 2023-3-30 10:32

本帖最后由 muyichuan2012 于 2023-3-30 10:35 编辑

楼主你好,已修改为ARTERY雅特力。
另外AT32F407也是兼容ST103的,只是多了一个网口而已。

tpgf 发表于 2023-4-13 10:04

不同的厂家的芯片 使用的不同的电路板吗

heimaojingzhang 发表于 2023-4-13 13:16

我对测试环境不是很理解 这几个芯片的引脚是完全兼容的吗

keaibukelian 发表于 2023-4-13 14:34

为什么在焊接的环节就会出现这么大的问题呢

paotangsan 发表于 2023-4-13 15:54

下载测试的意思是说把stm的程序直接下载到gd上是吗

renzheshengui 发表于 2023-4-13 16:26

比对的项目非常多 那么楼主最后的结论是什么呢

wakayi 发表于 2023-4-13 16:57

muyichuan2012 发表于 2023-3-30 10:32
楼主你好,已修改为ARTERY雅特力。
另外AT32F407也是兼容ST103的,只是多了一个网口而已。



从名字上看不是一个系列的 如果是这个情况 如何确定哪些芯片是可以兼容的呢

zhjb1 发表于 2024-3-25 11:47

本帖最后由 zhjb1 于 2024-4-15 18:07 编辑

tpgf 发表于 2023-4-13 10:04
不同的厂家的芯片 使用的不同的电路板吗
AT,WCH,AMP,引脚相同可以用相同的PCB,至少AT,AMP运行STM32F103、207、以及GD32F03、207等许多模块兼容。所以这三款芯片设计一类PCB就可以通用了。

zhjb1 发表于 2024-4-15 18:06

至少一下这三款MCU管脚完全一样:ARTERY[阿尔特拉AT32F407VGT6 ,GEERY[极海]AMP32F407VGT6,WCH[芯蕊]CH32V307VCT6。
页: [1]
查看完整版本: AT32F407VGT7GPIO测试_01