打印
[活动专区]

【AutoChips 7801x MCU评测报告】AutoGen使用发现中的一些问题

[复制链接]
4447|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 guojunhope 于 2020-7-1 09:56 编辑

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


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

      再有就是UART2的问题,这块开发板能通过USB口供电,同时,这个USB口实际上连通了78013的USART2,这样就能将信息通过这个串口“打印”出来,调试会非常方便。
      但我尝试通过AutoGen生成的USART2代码进行串口通讯,却始终是乱码。下面展示一下总体的过程。首先,勾选UART2下面的异步使能按钮

进入参数配置界面,保持缺省选项,波特率115200,8位,无校验,1位停止位。


        之后单击生成代码按钮,在适当的位置,生成“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…”


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

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



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


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


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



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




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

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

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


     附上完整的工程代码供参考: UART2_Test.zip (1.07 MB)

     另,这次采用的串口助手,体积非常小,不到1M,标准的绿色软件,强烈推荐! UartAssist.zip (474.52 KB)

使用特权

评论回复

相关帖子

沙发
dengyonglei| | 2020-7-1 10:12 | 只看该作者
感谢您的反馈
1、UART测试改用外部时钟是否能正常,看AutoGen Studio配置是选用内部时钟
2、用户标签问题会在下个版本中去优化

使用特权

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

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

使用特权

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


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

使用特权

评论回复
5
guojunhope|  楼主 | 2020-7-1 12:07 | 只看该作者
dengyonglei 发表于 2020-7-1 10:28
要先选这里,然后再配置时钟

多谢指点!
已按要求配置为外部晶振

代码也重新生成了



但结果还是乱码,

使用特权

评论回复
6
marginer| | 2020-7-1 17:37 | 只看该作者
反馈的非常详细,给一个大大的赞

使用特权

评论回复
7
dengyonglei| | 2020-7-1 19:20 | 只看该作者
guojunhope 发表于 2020-7-1 12:07
多谢指点!
已按要求配置为外部晶振

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

使用特权

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

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

使用特权

评论回复
9
dengyonglei| | 2020-7-1 19:41 | 只看该作者
guojunhope 发表于 2020-7-1 19:26
能把你修改后的工程配置文件打包发一份吗?

你可以试试看

UART2_Test.zip

2.15 MB

使用特权

评论回复
10
guojunhope|  楼主 | 2020-7-2 07:49 | 只看该作者

非常感谢!

使用特权

评论回复
11
guojunhope|  楼主 | 2020-7-2 07:55 | 只看该作者
dengyonglei 发表于 2020-7-1 10:28
要先选这里,然后再配置时钟

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


使用特权

评论回复
12
guojunhope|  楼主 | 2020-7-2 08:14 | 只看该作者

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

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


使用特权

评论回复
13
desk1983| | 2020-7-2 14:57 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
14
diandianmo| | 2020-7-3 09:22 | 只看该作者
谢谢楼主分享!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

144

帖子

1

粉丝