关于tresos Studio(EB)的MCAL配置之ADC

General

Adc_DeInit API 使能Adc_DeInit接口

Adc Development Error Detection 开发者错误检测

Adc Enable Limit Check边界检测

Adc Queue启用队列,如果AdcPriorityImplementation=ADC_PRIORITY_HW_SW执行优先级为硬件则一定要开启队列

Adc_StartStopGroup API使能Adc_StartGroupConversion接口

Adc Notification Capability启用通知机制

Adc Hw Trigger API使能Adc_EnableHardwareTrigger和Adc_DisableHardwareTrigger硬件触发接口

Adc Priority Mechanism选择转换优先级机制。可以选择无优先级/硬件/硬件和软件混合。

Adc_ReadGroup API使能Adc_ReadGroup接口

Adc Result Alignment转换结果对齐方式

Adc_VersionInfo API获取版本信息

ADC Direct DMA Result Buffer Copy直接将转换结果复制到用户指定的缓冲区

Adc Timeout如果ADC硬件超过这个时间未进入空闲状态就报错

Adc Channel Value Signed转换结果数值是有符号是无符号

Adc Group First Channel Fixed可以配置ADC通道组的第一个通道

Adc Max Channel Resolution所有通道最大精度

Adc Set Mode API使能Adc_SetModeApi接口

Adc Dual Clock Mode增加双时钟模式服务

Adc Channel Indexes Symbolic Names通道另外起名字为:通道组名称_通道名称,可以通过这个新名字来访问到通道

Adc Bypass Consistency Loop提高性能的时候勾选,要确保硬件没到达正确状态之前不进行操作。

Adc Enable/Disable Channels API 使能Adc_EnableChannel和Adc_DisableChannel接口

Adc Get Injected Conversions Status API使能Adc_GetInjectedConversionStatus接口

Adc Disable Production Error Reporting关闭诊断错误报告给DEM模块

Adc Enable Threshold Configuration使能Adc_ConfigureThreshold接口

Adc Enable data Cache在DMA模式下使用的cache映射到ADC结果缓冲区

Adc Enable Safety feature使能安全功能,在转换结果之前,对ADC通道数据寄存器的Valid和OVERWRITE位进行验证

AdcConfigSet

Adc Max Queue Depth当硬件单元busy的时候,等待转换的数据队列最大深度

AdcHwUnit每行是一个硬件单元

General

Adc Source Clock时钟源,在MCU模块配置,这里只能查看

Adc Hardware Unit硬件单元,也就是硬件设备,每个芯片自己有规定的硬件设备

Adc Clock Prescaler Value分频值

Adc Power Down Delay从复位到转换开始之间的延迟

ADC Mux Delay外部信号和采样开始之间的延迟

Adc Transfer Type传输方式是中断还是DMA。Hw触发器转换总是使用中断进行传输。如果一个SW触发的组具有不连续的通道或不同的通道类型(内部-测试-外部),那么该组也将使用中断进行传输。

AdcChannal

Adc Channel ID自己设置的序号,每个硬件单元里面从0开始

Adc Physical HW Channel物理硬件通道,它有自己对应的引脚,可以在芯片手册查到

Adc Test to Internal HW Channel Shorting内部测试物理硬件通道,一般选择个NO_EXT_TEST_CH_MAPPING就行

Adc Channel Limit Check通道限制检查

Adc Channel Resolution通道精度

Adc Channel Enable Precharging增加预充阶段。操作顺序为:预充->采样->转换

Adc Channel CTR0-3 Selection选择转换时序寄存器,以选择不同的预充和采样相位持续时间

Adc Channel Reference Selection选择通道转换的参考电压

AdcGroup

General

Adc Group Access Mode通道组访问转换结果模式,流模式或者单次模式

(单次模式下buffer模式只能选择线性,Streaming Number Samples只能设置为1)

流模式下buffer模式可以选择线性或者回环。

Adc Group Conversion Mode通道组转换模式,连续模式或单次模式

Adc Group Conversion Type通道组转换类型,常规还是注入

Adc Group Id自己编写的序号,在每个硬件单元里面从0开始

Adc Group Priority通道组优先级

Adc Group Trigger Source通道组触发源,软件还是硬件,如果是硬件,就要在AdcHwTrig里面填写硬件触发源。

Adc Group Notification通道组通知函数,转换完成之后进行回调NULL_PTR就是不回调

Adc Group Streaming Buffer Mode当通道组访问转换结果为流模式时,buffer模式为线性还是回环。线性模式buffer存满后,停止转换。回环模式存满后从头开始覆盖。

Adc Group Streaming Number Samples当通道组访问转换结果为流模式时,通道要采样的数量

Adc Group Enable/Disable channels使能接口Adc_DisableChannel和Adc_EnableChannel

Adc Group Without Interrupts禁用中断,在没有软件干预的情况下进行转换,可以通过调用Adc_ReadGroup()来读取转换结果。否则,结果缓冲区不再用于读取结果,需要直接从硬件寄存器读取

Adc Group Precharging Duration for CTR0预充阶段时间寄存器,公式为Tprechg = PRECHG * 1 / ADC时钟

AdcGroupConversionConfiguration里面调整预充和采样时间参数,转换分辨率只要跟ADC通道组里面的通道统一起来就行。

AdcGroupDefinition

从硬件单元里面选择一部分通道组成通道组

AdcHwTrig

选择硬件触发源

接口

Adc_DeInit逆初始化

Adc_DisableGroupNotification失能ADC通道组通知机制

Adc_EnableGroupNotification使能ADC通道组通知机制

Adc_DisableHardwareTrigger失能ADC通道组的硬件触发器

Adc_EnableHardwareTrigger使能ADC通道组的硬件触发器

Adc_GetGroupStatus返回请求的ADC通道组的转换状态

Adc_GetStreamLastPointer返回ADC通道组存储在结果缓冲区中每个通道的有效样本数,入参PtrToSamplePtr是用来获取缓冲区的指针的,有了指针和有效样本数,就可以访问所有有效的ADC通道组转换结果。

Adc_GetVersionInfo获取版本信息

Adc_Init初始化的时候需要调用

Adc_ReadGroup读取ADC通道组里面所有通道的最后一次完成的转换结果。这个接口会重置采样个数,如果在中断回调函数里面调用这个函数,转换完成后中断回调读取ADC组结果,然后程序判断到采样个数没有满,重新采样,就会导致转换一直停不下来。软件通过这个接口读取

硬件可以直接读取寄存器

REG_READ32(ADC_ICDRX_REG(ADC硬件设备基地址, 通道寄存器偏移))

Adc_SetupResultBuffer初始化ADC通道组结果缓冲区指针,需要你先开辟一个缓存空间,把这个数组的指针给到接口里面,以后这个ADC通道组的转换结果就会放到这个缓存空间里面。这个接口需要在组转换开始之前调用。通道组缓存空间 = sizeof(uint16)* 采样通道数 * 采样次数

Adc_StartGroupConversion开始ADC通道组转换

Adc_StopGroupConversion暂停ADC通道组转换

Adc_EndGroupConversion终止ADC通道组转换

Adc_EndNormalConv终止ADC单元里面的常规通道的转换。在Adc_EndGroupConversion里面进行调用,当一个常规通道转换结束时,调用转换结束ISR,这个函数负责驱动程序和模块状态转换。

Adc_EndSwInjectedConv终止该ADC单元里面的注入通道的转换,在Adc_EndGroupConversion里面进行调用

Adc_EndWDGInterrupt终止ADC硬件看门狗中断,清除中断,如果有回调函数就调用。(这是个啥)

Adc_HandleLastIteration在Adc_EndNormalConv里面调用,当访问模式设置为流模式和线性缓冲模式的时候,转换将被软件隐式停止,这个函数处理最后一轮迭代

Adc_WDGThresholdHandlerADC单元的看门狗中断处理(这是个啥)

Adc_DisableChannel失能ADC通道组里面的通道

Adc_EnableChannel使能ADC通道组里面的通道

Adc_GetInjectedConversionStatus获取ADC单元里面的注入式通道转换状态

Adc_SetClockMode设置时钟模式

相关推荐
耶啵奶膘1 小时前
uniapp-是否删除
linux·前端·uni-app
_.Switch2 小时前
高级Python自动化运维:容器安全与网络策略的深度解析
运维·网络·python·安全·自动化·devops
2401_850410832 小时前
文件系统和日志管理
linux·运维·服务器
JokerSZ.2 小时前
【基于LSM的ELF文件安全模块设计】参考
运维·网络·安全
XMYX-03 小时前
使用 SSH 蜜罐提升安全性和记录攻击活动
linux·ssh
芯盾时代3 小时前
数字身份发展趋势前瞻:身份韧性与安全
运维·安全·网络安全·密码学·信息与通信
心灵彼岸-诗和远方4 小时前
DevOps业务价值流:架构设计最佳实践
运维·产品经理·devops
一只哒布刘4 小时前
NFS服务器
运维·服务器
苹果醋35 小时前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx
二十雨辰5 小时前
[linux]docker基础
linux·运维·docker