【SemiDrive G9 系列软件开发】 PTG5.1.2 + MCAL_v1.3.0 adc hands on

一、测试环境

        SemiDrive 支持系统 G9 系列目录中,PTG5.1.2 版本只适用于 G9H,其中 MCAL_v1.3.0 例程较为全面。最近进行了adc 模块的例程测试,操作过程 hands on 如下:

注:此版本使用 eMMC Only 的启动方式(拨码:0001),不使用 OSPI Flash。

硬件:SemiDrive G9H ref A02 图(1)

软件:PTG5.1.2 + MCAL_v1.3.0

        搭建以及 G9H Ref A02 操作方法参考:《SD_G9_Quick_Start_Rev2.4.pdf》

图(1)

 二、配置&Demo

  1. 引脚描述:

      参考《G9-H 处理器数据手册》和《SD012_G9H_REF 硬件使用手册》相关章节(表一和图一),可以找到 ADC 的 4 个通道所在的引脚,后续可以单端输入模拟量供 ADC 模块转换。

ADC 相关引脚的描述

表一 ADC 相关引脚的描述
 

硬件原理图及引脚


图一 硬件原理图及引脚
 

  1. EB 配置

      该模块在 EB 配置方面,相较于 E3 系列取消了部分 group 分配规则和限制,使用起来更加容易。

      下面依次进行说明:

       AdcUnit

       如下图所示,AdcUnit 决定使用哪个 ADC(当前支持配置 ADC_0);

       该 ADC 的分频系数为多少;ADC 工作时钟 = ADC 的 root clock(400M) ÷ 分频系数(AdcPrescale + 1),

       分频系数会影响采样率,分频系数越大,实际 ADC 工作时钟频率越小,采样率越低,反之亦然。

图二 AdcUnit

图二 AdcUnit

Group

进入 Group 配置界面,下面就所选项进行说明:

图三 Group

图三 Group

AdcGroupAccseeMode

选择 ADC_ACCESS_MODE_SINGLE 时,后续的 AdcStreamingNumSamples 只能设置为 1,表示

该 Group 每次至多进行单轮采样。

选择 ADC_ACCESS_MODE_STREAMING 时,后续的 AdcStreamingNumSamples 可以设置 1~255,表示该 Group 每次可以进行 1~255 轮采样。

AdcGroupConversionmode

       使用 SW 触发的 Group 以上两种模式都可选择,需注意,若 SW 触发的 Group 如果选择 ADC_CONV_MODE_ONESHOT 模式,需配合使用 ADC_ACCESS_MODE_SINGLE。

AdcGroupId

       该参数决定了此 Group 在当前 ADC Unit 下的索引号,在单个 ADC Unit 下的 GroupId 应该具有唯一性。

AdcGroupTriggSrc

分别代表该 Group 是软件触发(SW)还是硬件触发(HW)方式,硬件触发暂不支持。

AdcStreamingBufferMode 有两个状态(循环 or  一次):

这个选项仅在 AdcGroupAccessMode 为 ADC_ACCESS_MODE_STREAMING 时,才会有意义。

AdcStreamingNumSamples

       该配置决定了 Group 采样完成时,实际进行了多少轮的采样,例如设置为3,实际每一次到达 ADC_STREAM_COMPLETED 状态时(采样完成),该 Group 所有通道实际进行了 3轮次采样。Group 中所有通道的 3 轮采样值会保存在 Adc_SetupResultBuffer(x, buffer)接口的 buffer 中。

        注:该参数只有在 ADC_ACCESS_MODE_STREAMING 下才可以设置大于 1,如果设置为 ADC_ACCESS_MODE_SINGLE 模式下,仅可以填写 1。

AdcChannel

图四 AdcChannel

图四 AdcChannel

AdcPhysicalChannelId

       此配置主要用于生成关于 Channel 的唯一 ID 号,所有 Unit 下的此配置项应该具有唯一性。(当前硬件资源只支持配置 Ch0/1/2/3,其中 Ch0 为差分输入,其余为单端输入)

AdcLogicalChannelId

       此配置项没有实际作用,但是配置时需要注意,在单个 Unit 下,此 Id 不应该重复。

AdcChannelResolution

此选项决定 ADC 分辨率,可选 12 位、10 位、8 位。

AdcSampleFrequency

       此项决定 ADC 通道采样频率,驱动初始化时会根据通道数及对应采样频率进行判断是否超过 ADC 采样频率限制。

  1. 代码和Log

       示例代码流程如下:初始化完成后,绑定使能 adc 中断(回调函数),调用以组为单位进行转换的函数接口,每组转换完成,读出组的缓冲数组进行打印。

图五 Demo代码

图五 Demo代码

使用 ch0~3,其中 ch1 接地,ch3 连接电路中有分压电阻,使之略低于 ch0 和 ch2。

Log 打印的各个通道的转化值均能符合预期。

图六 打印 log

图六 打印 log

三、参考文献

  1. 《SemiDrive_9Series_MCAL User Guide》
  2. 《G9 Series Processor Technical Reference Manual》

 欢迎在博文下方留言评论,我们会及时回复您的问题。

如有更多需求,欢迎联系大联大世平集团 ATU 部门:atu.sh@wpi-group.com   作者:Alan

更多资讯,请扫码关注我们!  
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值