搜索

[活动专区] 【AutoChips 7801x MCU评测报告】AutoGen使用发现中的一些问题

[复制链接]
2240|13
 楼主 | 2020-7-1 09:56 | 显示全部楼层 |阅读模式
本帖最后由 guojunhope 于 2020-7-1 09:56 编辑

      首先来说一下对开发板的总体印象。作为对学习核心芯片功能的开发板,一定要有丰富的外设资源,这样才能方便客户进行测试,在这一点上,杰发科技做的不错,开发板上SPI,USART,I2C,CAN,LIN等都单独引出了接口,方便用户直接通过插头连接。板上还配了3个按钮,3个LED,方便用户进行一些简单的实验。板子布局很大气,丝印标识也很清晰,各种测试点也很规范,有大厂的风范,国产厂家都能保持这种劲头,中国制造就会越来越好!为你们点赞!
      再来说说AutoGen Studio,这款基本上是仿照STM32 CUBE的,功能也是一样的,用来生成总体的框架代码。目前采用图形化工具进行单片机设计已经是公认的发展趋势,对提高开发效率有着非常重要的意义。应该说,AutoGen Studio是我目前见到的国内在这个领域做得最好的。
      但还有很多地方需要改进。这里举几个我遇到的问题,希望厂家能注意到,及时改进,把产品越做越好。
      首先是对于GPIO引脚重命名,比如说我们选定PC9作为输出,
       图1.jpg
      在GPIO设置面板中,能够更改用户标签,在芯片图上也能正常显示,可生成的代码里,完全找不到”LED”的身影。
图2.jpg


      这方面,请参考Microchip的MCC,它能根据用户对引脚起的别名,对生成的框架函数进行统一的修改,这样会大大方便用户的使用。

      再有就是UART2的问题,这块开发板能通过USB口供电,同时,这个USB口实际上连通了78013的USART2,这样就能将信息通过这个串口“打印”出来,调试会非常方便。
      但我尝试通过AutoGen生成的USART2代码进行串口通讯,却始终是乱码。下面展示一下总体的过程。首先,勾选UART2下面的异步使能按钮
图3.jpg
进入参数配置界面,保持缺省选项,波特率115200,8位,无校验,1位停止位。
图4.jpg


        之后单击生成代码按钮,在适当的位置,生成“UART2_Test”项目。
        之后在main.c中,添加如下代码,将printf函数的输出定向到UART2。

        /* USER CODE BEGIN0 */
        int fputc(int ch,FILE *f) {
           UART_SendData(UART2, ch);
           return ch;
        }
      /* USER CODE END 0*/


      然后在主循环里,添加如下代码:


      /* USER CODE BEGINWHILE */
      GPIO_SetPinLevel(GPIOC, GPIO_PIN9,GPIO_LEVEL_LOW);
      mdelay(500);
      GPIO_SetPinLevel(GPIOC, GPIO_PIN9,GPIO_LEVEL_HIGH);
      mdelay(500);      
      printf("Hi there!/n");
      /* USER CODE ENDWHILE */


      查阅开发板原理图可知,PC9与LED1连接,这里让PC9引脚定时输出高低电平,就有了一个闪烁的标志,能让我们知道程序在正常运行。为了正常下载程序,必须正确配置,右键单击UART2_Test,选择” Options…”
图5.jpg


      
      在Target标签页,将外部晶振设为12MHz,一定要勾选”UseMicroLIB”,否则生成的代码不能正常运行。
图6.jpg

      之后在Debug标签页,根据自己的下载器(我用的是J-LINK),选择正确的设备, 单击“Settings”
图7.jpg


      如果版本比较老,则会弹出如下对话框,显示AC78013FDLA是未知器件,这时候一定要单击Yes,手动设置
图8.jpg


      选择如下图所示的“Cortex-M0+”,然后单击“OK”确定。
图9.jpg


      这时在”SW Device”中就能看到设备正常显示了,将Port改为SW, 速度选2MHz。
        
图10.jpg


      之后将程序编译后下载。
      下载完毕后,LED1正常闪烁,代表程序正常执行。我们打开串口调试助手,选择正确的串口,设置相应的波特率,结果能收到数据,但全是乱码。

图11.jpg



      经过波特率调整,只发送单个字符等测试,故障依旧。

      后来从论坛的其他帖子受到启发,下载了厂家的示例代码,这里选择了ADC模块例程,

图12.jpg
      编译下载后,用串口助手收到了正确的数据:

图13.jpg

     附上完整的工程代码供参考: UART2_Test.zip (1.07 MB, 下载次数: 2)

使用特权

评论回复
| 2020-7-1 10:12 | 显示全部楼层
感谢您的反馈
1、UART测试改用外部时钟是否能正常,看AutoGen Studio配置是选用内部时钟
2、用户标签问题会在下个版本中去优化

使用特权

评论回复
 楼主 | 2020-7-1 10:24 | 显示全部楼层
dengyonglei 发表于 2020-7-1 10:12
感谢您的反馈
1、UART测试改用外部时钟是否能正常,看AutoGen Studio配置是选用内部时钟
2、用户标签问题会 ...

这个问题正好咨询一下,那个时钟配置界面,好像pll_ref_sel没法选择外部时钟,我也尝试修改过这里,没有反应
时钟配置.jpg

使用特权

评论回复
| 2020-7-1 10:28 | 显示全部楼层
guojunhope 发表于 2020-7-1 10:24
这个问题正好咨询一下,那个时钟配置界面,好像pll_ref_sel没法选择外部时钟,我也尝试修改过这里,没有 ...


要先选这里,然后再配置时钟

使用特权

评论回复
 楼主 | 2020-7-1 12:07 | 显示全部楼层
dengyonglei 发表于 2020-7-1 10:28
要先选这里,然后再配置时钟

多谢指点!
已按要求配置为外部晶振
时钟配置-外部.jpg
代码也重新生成了

时钟配置代码.jpg

但结果还是乱码,

使用特权

评论回复
| 2020-7-1 17:37 | 显示全部楼层
反馈的非常详细,给一个大大的赞

使用特权

评论回复
| 2020-7-1 19:20 | 显示全部楼层
guojunhope 发表于 2020-7-1 12:07
多谢指点!
已按要求配置为外部晶振

我下载你的程序,改用外部时钟,显示很正常呀 图片1.png

使用特权

评论回复
 楼主 | 2020-7-1 19:26 | 显示全部楼层
dengyonglei 发表于 2020-7-1 19:20
我下载你的程序,改用外部时钟,显示很正常呀

能把你修改后的工程配置文件打包发一份吗?

使用特权

评论回复
| 2020-7-1 19:41 | 显示全部楼层
guojunhope 发表于 2020-7-1 19:26
能把你修改后的工程配置文件打包发一份吗?

你可以试试看

UART2_Test.zip

2.15 MB, 下载次数: 1

使用特权

评论回复
 楼主 | 2020-7-2 07:49 | 显示全部楼层

非常感谢!

使用特权

评论回复
 楼主 | 2020-7-2 07:55 | 显示全部楼层
dengyonglei 发表于 2020-7-1 10:28
要先选这里,然后再配置时钟

      汇报一下最新的进展,经好心网友提醒,原来只要把时钟源改成外部,其他的选项不动,就能正常通讯
HSE-正确时钟配置.jpg
      可外部晶振明明是12M啊,而且按之前的配置,输出的频率和现在是一样的,可结果就是不行!


使用特权

评论回复
 楼主 | 2020-7-2 08:14 | 显示全部楼层

更为神奇的事情发生了,我测试了不同波特率,结果如下:

序号 波特率 结果
1 9600 乱码
2 14400 正常
3 19200 正常
4 38400 乱码
5 56000 正常
6 57600 正常
7 115200 正常
8 128000 正常
9 230400 正常


使用特权

评论回复
| 2020-7-2 14:57 | 显示全部楼层
非常感谢楼主分享

使用特权

评论回复
| 2020-7-3 09:22 | 显示全部楼层
谢谢楼主分享!

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表