pga970提供单芯片全集成lvdt(线性可变差动变压器)模拟前端采集方案,内部集成激励信号发生器;两路路独立pga,adc与数字解调单元进行sin/cos信号调理;独立pga与adc获取温度环境温度。另外内部集成arm m0内核可实现对传感器进行补偿,实现各种不同接口(owi,spi,analog output)的通信。
在使用ccs7.0和xds200对pga970进行调试与仿真时,需要参考[1]中步骤进行编译器配置。由于ccs7.0默认编译器版本与pga970固件开发时使用的编译器版本不同,编译过程中出现警告,该警告并不会对编译结果产生直接影响,从而容易会被忽视,导致pga970固件程序会反复进入faultisr()中断,固件开发无法顺利进行。本篇blog旨在展示该问题现象,帮助开发者顺利进行pga970的固件开发。
1. pga970硬件配置环境与软件环境
ti提供pga970评估模块帮助客户进行项目前期的评估和初期开发。pga970评估模块提供两种调试模式:
1. 使用usb2any转接口和ti pga970 gui,通过usb转spi通信对pga970内部寄存器进行配置。该调试方法主要用于pga970单个模块(例如:波形发生器,滤波器带宽)调试。
2. 使用xds200仿真器,通过直接对固件代码直接进行修改和烧录,实时测试pga970性能。在该模式下可以进行补偿算法,软件状态机流程调试等。完成后的代码可以在最后阶段烧写进pga970 otp,形成最终程序。
使用方法2进行pga970开发时,需要使用ccs。下载ccs7.0后,分别根据[1][2]完成xds200仿真器链接,pga970工程文件导入,target configuration配置,之后对pga970 reference firmware工程文件进行编译会得到figure 1警告:
警告:
“这个项目是使用当前未安装的编译器版本创建的:5.2.6 [arm]。构建期间将使用另一个版本的编译器:16.9.0.lts。请参阅“帮助>检查更新”或访问ccs app center以获取最新的编译器。请参阅“帮助>安装新软件...”以安装较旧的编译器。或者,通过调整项目属性将项目迁移到可用的编译器版本之一。
出现该警告的原因是pga970 reference firmware是基于ccs6.0 ti-cgt-arm_5.2.6编译器进行开发。ccs7.0默认编译器为16.9.0.lts版本。根据[4]中说明,在大多数情况下,新版本的编译器应该对老版本编译器向下兼容。同时,ccs7.0在pga970工程项目编译完成之后,并无错误提示。在编译器端,无重要问题出现。
figure 1 编译器编译器不匹配报警
在pga970 reference firmware编译完成后,进入debug仿真。开始仿真后,如figure 2 firmware程序会始终运行在faultisr(void)中断内,进行各种尝试,始终无法跳出该中断。pga970内m0内核工作不正常,各个模块无法进行正确配置。
figure 2 pga970仿真无法跳出faultisr()中断
figure 3 pga970编译器配置
此时在project: pga970 reference firmware -> properties -> general 目录下,compiler version为ti v16.9.0.lts,如figure 3所示。
二. pga970 ccs7.0 compiler version更换
解决上述问题的方法就是使用5.2.6 [arm]替换ccs7.0使用的默认编译器ti v16.9.0.lts。步骤:
打开ccs -> help -> install new software。
如figure 4所示,在work with 窗口中选中”all available sites”。搜索栏输入arm compiler。
必须将选项”show only the latest version of available software”撤销。
勾选”arm compiler tools” 版本5.2.6,然后选择”next”进行安装。
figure 4 arm5.2.6编译器下载
安装完成后,在project: pga970 reference firmware -> properties -> general 目录下将”compiler version” 从ti v16.9.0.lts切换为ti v5.2.6。
完成编译器修改后, 先clean pga970 reference firmware,再重新编译。编译完成后,figure 1中的warning消失。之后,进行debug仿真,如figure 5所示,firmware成功进入main.c下的配置函数cfg_peripheral_config()与参数计算函数app_calculate_coeff()。
figure 5 正常情况下pga970 debug运行while(1) loop
IC PARK获评“2022-2023年度中国集成电路高质量发展优秀园区”
医疗应用Colorimetrix:智能手机变移动医疗设备
友达创新技术应用 Display Taiwan 2010全系
iOS11正式版已经推送:iOS11正版升级教程这里有,哪些设备可以升级?这几大新功能你知道吗?
Apple Watch 2终极猜想 这些功能很强大
使用CCS7.0仿真PGA970无法跳出FaultISR()中断解决方法
吕晓华:湖北将实施数字经济五项工程,抢跑“新赛道”
直流无刷电机的主要特点是什么,它的应用都有哪些
自动驾驶Intel Inside时代来临?
2023 ChinaJoy骁龙主题馆聚能开启
18款霸道4000中东版配置详解与报价
硅光子技术的不断进步将改变新一代多功能MMIC的组成
IV转换信号采集前端模块原理解析
PT8023S电容式触摸控制ASIC概述及主要特性
多电压SoC电源设计技术
高通专利战四面开战 高通将赔偿黑莓9.4亿美元
人脸识别系统的应用场景及安全优势
华为Mate X将于明天开始限量开售搭载麒麟980平台支持5G双模组网
单项链接的接口问题
回顾2018年终总结暨2019年规划大会介绍