模拟技术
介绍
针对客户的开发需求,基于Keil的开发环境,使用RA6M4开发板,通过配置RASC设置相关配置,实现PWM触发ADC组采集功能。
硬件准备
准备一块RA6M4开发板(CPK-RA6M4),芯片是用R7FA6M4AF3CFB,主频200MHz,Pin脚是144pin,1MB内存的,如下图所示。
软件部分
1打开RASC.EXE文件
2填写工程名称和工程的保存位置,注意路径中不要包含中文和空格,点击Next。
3RASC支持IAR和Keil,在IDE Project Type选择Keil,选择芯片对应型号,点Next。
4选择工程模板,具体如下图,确认无误点击Finish。
5工程新建完成后,出现下图界面,此时可以确认一下自己的配置信息是否正确。
6打开Stacks,添加相关的代码模块。点击New Stack-Timers-Timer,General PWM(r_gpt)。
7添加完成后,单击PWM模块。再点击Properties打开配置界面,再点击Common,将Pin Output Support设置为Enabled。
8再点击General,然后将Mode设置为PWM模式,Period为100,Period Unit为Microseconds。
9在Output中将GTIOCA Output Enabled设置为True。
10打开Pins,选择Peripherals-Timers:GPT-GPT0,Operation Mode选择GTIOCA or GTIOCB,将GTIOC0A的引脚设置为P213。
11打开Stacks,添加相关的代码模块。点击New Stack-Analog-ADC (r_adc)。
12添加完成后,单击ADC模块。再点击Properties打开配置界面,再点击General,将Mode设置为Group Scan,这时g_adc0 ADC (r_adc)会出现错误,这里可以先不用理睬,后续设置完成后,就没有错误了。
13点击Input 将Channel0、Channel1、Channel2打开并在同一组A。
14点击Interrupts,将Normal/Group A Trigger即触发ADC采集触发源设置为GPT0 CAPTURE COMPARE A (Compare match A),然后设置中断回调函数名还有优先级。
15打开Pins,选择Peripherals-Analog:ADC-ADC0,Operation Mode选择Custom,设置AN000、AN001、AN002引脚为P000、P001、P002。
16打开Stacks,添加相关的代码模块。点击New Stack-System-Event Link Controller (r_elc)。
17添加ELC后ADC就不会有错误了。
18配置完成后点击右上角的三角按钮(Generate Project Content),关闭RASC再打开Keil生成的工程项目。
19打开Keil-Customize Tools Menu,在Command设置RASC的路径,在Initial Folder填写$P,在Arguments写入--device $D --compiler ARMv6 configuration.xml。
20如果需要打开RASC进行重新配置,需要在Keil的界面点击Tools-RA Smart Configurator。
21打开hal_entry.c,找到可以添加自己代码的地方,添加相应的应用函数。
22定义相关的回调函数。
23在hal_entry.c文件中的void hal_entry(void)函数中添加相关的初始化代码,初始化PWM、ADC、ELC,并且设置ELC去链接PWM触发ADC的采集。
24在ADC的回调函数中添加断点,如果程序进入断点则说明PWM已经触发ADC去完成采集。
25编译并运行程序,用逻辑分析仪查看PWM的波形,占空比为50%,说明PWM功能正常。
26给P000输入3.3v,P001悬空,P002接地,测试采集结果是否P000为4095,P001有悬空状态下的电压值,P002为0。
27测试结果正确,P000的值为0x0FFF即为4095,P001有值,P002的值为0。
28说明PWM触发ADC组采集功能正常使用了。
结论
以上就是根据客户开发需求,实现PWM触发ADC组采集功能,通过该项目可以学会使用RASC在Keil环境下的新建项目如何配置一个新的外设,如何调取相应的函数库,以及如何基于RASC进行应用开发。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !