|
ADS1248通道与外部接线端子之间的对应关系设置
[复制链接]
分享个ADC通道与温控系统之间对应关系混乱的解决方法,不合理之处还望拍砖!
前段时间基于STM32F1、ADS1248实现温控系统的嵌入式编程,在第一板中实现了5通道ADC温控系统,改板后改成了7通道温控系统,并且对应引脚关系大部分都更换了,这几天在对板子进行调试与移植工作,
昨天在调整驱动引脚对应关系时,由于ADS1248的通道转换顺序CH1……CH7与外部接线端子不是一一对应的,于是在程序中添加了两者之间的对应关系表,最初是基于外部接线端子的顺序,ADS1248仍然按CH1……CH7的顺序对各通道进行AD转换,转换完成后根据对应关系表对应到接线端子的对应通道上,不过这样将造成改动的位置变多,只要牵扯到通道的地方都得查表获取实际通道对象,,,
纠结于修改的位置太多,不方便移植,于是暂停修改程序,今天继续调整,根据昨天的结果,今天采用保持其它各部分代码不变,变更的地方仅在ADS1248转换通道上,在进行ADC时,根据对应关系表将外部通道CH1……CH7对应到实际ADC通道上,这样整个程序需要修改的地方就只有对应关系表了,,如下所示:
当接线端子与内部AD通道之间的关系对应好了之后,发现原理图中的温控引脚H_HEAT1……H_HEAT7与接线端子之间也不是一一对应的,如果是采用PWM通道进行控制,这时候只要将PWM通道的对应关系调整下就行了,而由于改版后,有几个温控引脚无法配置为PWM通道,于是干脆所有通道都采用软件模拟PWM实现了,同理,这时候将软件模拟的PWM通道顺序进行调整,使其对应于接线端子的顺序就行,
以上三部分(ADC通道,接线端子标识,温控输出端引脚)的对应关系如下图所示:
同时,在移植时对于那些使用频繁的常量,由于移植时逐个进行修改不仅繁琐,而且很容易遗漏,所以我将那些在移植过程中可能发生变动,或在后期开发中可能发生变动的常量制作成了可视化配置页,如下图所示,如此一来,修改常量就方便多了,并且非常直观!例如:我们之前设定的协议包含6个通道,这回变为了7个通道,协议命令码发生了变动,此时只需在可视化配置页中逐个修改就行了,其它地方均不需要变动,虽然制作时觉得造成文件长了不少,不过用起来真心省事!
|
|