社区
单片机/工控
帖子详情
S32K144 ADC多通道采集
强壮的书生
2018-08-28 04:00:00
在写S32 ADC底层发现所有的chn的转换结果都是集中在RO这个寄存器,有没有demo是可以实现多通道采集的
...全文
1900
6
打赏
收藏
S32K144 ADC多通道采集
在写S32 ADC底层发现所有的chn的转换结果都是集中在RO这个寄存器,有没有demo是可以实现多通道采集的
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qq_27830307
2019-05-14
打赏
举报
回复
void ADC_Init_(void) { PCC->PCCn[PCC_ADC0_INDEX] &=~ PCC_PCCn_CGC_MASK; /* Disable clock to change PCS */ PCC->PCCn[PCC_ADC0_INDEX] |= PCC_PCCn_PCS(3); /* PCS=1: Select SOSCDIV2 */ PCC->PCCn[PCC_ADC0_INDEX] |= PCC_PCCn_CGC_MASK; /* Enable bus clock in ADC */ ADC0->CFG1 |= ADC_CFG1_ADICLK(0) /* Only ALTCLK1 is available */ |ADC_CFG1_ADIV(8) /* the clock rate is (input clock)/4 */ |ADC_CFG1_MODE(2);/* ADICLK=0: Input clk=ALTCLK1=SOSCDIV2 */ /* ADIV=0: Prescaler=1 */ /* MODE=2: 10-bit conversion */ ADC0->CFG2 = ADC_CFG2_SMPLTS(12); /* SMPLTS=12(default): sample time is 13 ADC clks */ ADC0->SC2 = ADC_SC2_ADTRG_MASK /* ADTRG=1: HW trigger */ |ADC_SC2_REFSEL(1); /* ACFE,ACFGT,ACREN=0: Compare func disabled */ /* DMAEN=0: DMA disabled */ /* REFSEL=1: Voltage reference pins= VREFH, VREEFL */ ADC0->SC1[0] = ADC_SC1_ADCH(9) ; /* Select AD9 (ADC0_SE9) @PTC1 */ ADC0->SC1[1] = ADC_SC1_ADCH(10); /* Select AD10 (ADC0_SE10) @PTC2 */ ADC0->SC1[2] = ADC_SC1_ADCH(11) ; /* Select AD11 (ADC0_SE11) @PTC3 */ ADC0->SC1[3] = ADC_SC1_ADCH(12) ; /* Select AD12 (ADC0_SE12) @PTC14 */ ADC0->SC1[4] = ADC_SC1_ADCH(13) ; /* Select AD13 (ADC0_SE11) @PTC15 */ ADC0->SC1[5] = ADC_SC1_ADCH(14) ; /* Select AD14 (ADC0_SE12) @PTC16 */ ADC0->SC3 = 0x00001000; /* CAL=0: Do not start calibration sequence */ /* ADCO=0: One conversion performed */ /* AVGE,AVGS=0: HW average function disabled */ } void PDB0_Init(void) { PCC->PCCn[PCC_PDB0_INDEX] |= PCC_PCCn_CGC_MASK; /* Enable bus clock in PDB0 */ PDB0->SC |= PDB_SC_TRGSEL(0xF) | /* b1111: Software trigger is selected */ PDB_SC_PRESCALER(8) | /* Prescaler: 010 = per.clck/(4*MULT) = 80 / (4*1) = 20MHz */ PDB_SC_PDBIE(1) | /* PDB interrupt enabled */ PDB_SC_MULT(2) | /* 00: Multiplication factor is 1. */ PDB_SC_CONT(1) | /* Continuous mode of operation */ PDB_SC_PDBEN_MASK| /* 1: PDB enabled */ PDB_SC_LDOK_MASK; PDB0->IDLY = 10000; PDB0->MOD = PDB_MOD_MOD(14400); PDB0->CH[0].C1 |= PDB_C1_BB(0xFE) // For Continuos Pre-Trigger Mode |PDB_C1_TOS(0x0) // Pretrigger Output Select: 0=bypassed , 1=enabled | PDB_C1_EN(0x3F); // PDB channel's pre-trigger enabled //Enable_Interrupt(PDB0_IRQn); INT_SYS_InstallHandler( PDB0_IRQn, &PDB0_Handler , (isr_t*) 0); INT_SYS_EnableIRQ( PDB0_IRQn); PDB0->SC |= PDB_SC_SWTRIG_MASK; /* restart PDB counter */ } 这个是在PDB中断读取ADC值
justmsn
2018-10-22
打赏
举报
回复
LZ可否分享一下多通道的例程?最近被s32k搞得...
强壮的书生
2018-08-31
打赏
举报
回复
额,搞出来了,需要用到S32K144内部的PDB来做预触发处理的。
worldy
2018-08-30
打赏
举报
回复
那么多个感觉好像没有什么用
强壮的书生
2018-08-29
打赏
举报
回复
因为S32K144 AD转换结果寄存器Rn是有32个,跟外部chn是对应的上,我想应该是利用起来的
worldy
2018-08-28
打赏
举报
回复
多通道采集一般都是一套ADC+寄存器Radc
每次转结束、中断、中断程序读取Radc,转换到下一个通道、启动新一个转换。。。。。。。。。。
S32DS3.4
S32K144
—— PDB
ADC
读取
多通道
(一)
本文介绍了在S32DS3.4环境下使用
S32K144
微控制器实现PDB触发
ADC
采集
的方法。重点阐述了通过PDB中断方式
采集
7路
ADC
0通道的配置过程,包括引脚配置、
ADC
模块和PDB模块设置。详细说明了PDB周期的计算公式及相关参数含义。文中还提供了初始化流程和主函数实现方案,并通过Freemast仿真验证了该设计的可行性。
S32DS实战指南:
ADC
配置与
多通道
数据
采集
优化
本文详细介绍了在S32DS开发环境中配置
ADC
模块与优化
多通道
数据
采集
的实战技巧。从基础概念到图形化配置,再到关键API函数解析,提供了工业级抗干扰设计和
多通道
同步采样方案,帮助开发者高效完成嵌入式系统的数据
采集
任务。
S32K144
开发板
ADC
配置实战:从硬件连接到代码调试(S32DS 2.2版)
本文详细介绍了
S32K144
开发板在S32DS 2.2环境下进行
ADC
配置的全过程,包括硬件连接、开发环境设置、关键API解析以及调试优化技巧。通过实战案例,帮助开发者快速掌握
S32K144
的
ADC
模块应用,提升模拟信号
采集
的效率和精度。
S32DS3.4
S32K144
—— PDB
ADC
读取
多通道
(二)
摘要:本文介绍了PDB背靠背多路
ADC
采集
的配置方法,重点实现了7路
ADC
0通道的轮询
采集
。通过初始化
ADC
和PDB模块,配置时钟分频等参数实现4ms的PDB周期(250Hz)。在1ms周期性任务中读取
ADC
值,确保读取频率高于PDB周期。测试发现若读取周期大于PDB周期会导致
ADC
只转换一次的现象,文中通过FreeMASTER仿真验证了
ADC
转换结果。采用多任务架构,包含1ms到500ms不同周期的任务调度。
S32K144
开发板
ADC
配置全攻略:从硬件连接到代码实战(S32DS 2.2版)
本文详细介绍了
S32K144
开发板
ADC
配置的全过程,从硬件连接到代码实战,使用S32DS 2.2开发环境。内容涵盖硬件准备、引脚连接、
ADC
模块配置、驱动代码实现及调试技巧,帮助开发者快速掌握
S32K144
的
ADC
应用。
单片机/工控
27,522
社区成员
28,798
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章