吐槽一下,MICROCHIP的ADC功能不咋的

[复制链接]
 楼主| shizaigaole 发表于 2019-6-15 22:12 | 显示全部楼层 |阅读模式
吐槽一下,MICROCHIP的ADC功能不咋的。

比如说,我想休眠状态1ms采样一次正弦波,20ms后计算有效值,PIC不论是PIC16,PIC24,PIC32,都必须采用笨方法,1ms中断一次唤醒休眠,这样功耗就大了。

stm32,msp430都可以多通道序列采样的时候,同一个序列里重复选择同一个通道,这样一个序列20ms完成,就可以20ms唤醒一次!!!


PIC有的时候,确实有点过于简化,对于高级一点应用,支持确实很差。


只就这一点而言,他的片子低功耗指标再好,也无济于事,1ms中断一次和20ms中断一次差距巨大。
 楼主| shizaigaole 发表于 2019-6-15 22:18 | 显示全部楼层
这一点而言,他的设计师确实是失误,因为PIC32mm系列的多通道扫面转换基本结构是有的,但是他为了省几个寄存器,采用简化的方法,导致一个序列里面不能重复选择同一个通道。

这对需要一个通道休眠状态下采集若干次数据,然后唤醒集中计算成为不可能!!!

他的PIC16和PIC18采用一些补救措施,搞了些ADC独立于CPU计算的单元,但是他的计算模式就那么几种,应用场合有限!!
 楼主| shizaigaole 发表于 2019-6-15 22:22 | 显示全部楼层
基本上可以说,如果需要休眠的时候,多次采集一个通道或者几个通道,然后唤醒集中计算,PIC可以不用考虑了!!
小灵通2018 发表于 2019-6-16 16:48 | 显示全部楼层
有个系列带DAC的,只有5位,与其说是DAC,不如说是个电平参考。
systemchip 发表于 2019-6-18 09:48 | 显示全部楼层
你应该看看dsPIC33家族
643757107 发表于 2019-6-18 23:00 | 显示全部楼层
还好吧,要求别太高,有的PIC带DAC,结果只有5BIT。
wooda 发表于 2019-6-20 22:06 | 显示全部楼层
如果对50hz频率确定,应该有更经济的算法计算有效值.
wooda 发表于 2019-6-20 22:08 | 显示全部楼层
小灵通2018 发表于 2019-6-16 16:48
有个系列带DAC的,只有5位,与其说是DAC,不如说是个电平参考。

这个实际使用时应该是做量程设定用吧,直接回馈给adc参考电压输入
yongruru 发表于 2019-6-23 20:10 | 显示全部楼层
shizaigaole 发表于 2019-6-15 22:22
基本上可以说,如果需要休眠的时候,多次采集一个通道或者几个通道,然后唤醒集中计算,PIC可以不用考虑了 ...

我提个方案,睡眠下多次采集。1ms定时器触发ADC转换,ADC转换结束后DMA转移数据到RAM,20ms定时器触发中断,CPU处理数据,重置DMA,进入睡眠,重复以上循环。

评论

PIC32mm的DAC好像可以,他的手册说的不是很清楚,只是说ADC结果寄存器阵列可以设置为缓冲区模式,可是没有看到其关于缓冲区存储位置设置方面的寄存器。  发表于 2019-6-27 19:25
是打算采用这个方案的,可惜大部分PIC没有DMA功能,PIC32mm有DMA功能,还没有被设计成被ADC使用。  发表于 2019-6-27 19:21
锵才才 发表于 2019-6-25 10:11 | 显示全部楼层
可以考虑用ATMEL的ATXMEGA,上面有事件系统,RTC和DMA。用RTC定时1ms启动ADC, ADC启动DMA, DMA传输20个数据后唤醒内核

评论

没有怎么搞过AVR,所以没查过。因为有些计算功能,所以还是打算至少选用16bit或者32bit的带乘法器,除法器的片子。  发表于 2019-6-27 19:22
我猜测这个功能迟早会出现  发表于 2019-6-27 15:00
 楼主| shizaigaole 发表于 2019-6-27 19:29 | 显示全部楼层
PIC32mm的ADC好像可以,他的手册说的不是很清楚,只是说ADC结果寄存器阵列可以设置为缓冲区模式,可是没有看到其关于缓冲区存储位置设置方面的寄存器。

顺便吐槽一下,MICROCHIP的中文资料做的比以前差的太多了,以前写的非常细致,而且逻辑性好。microchip现在的手册中文资料少不说,而且其产品手册的逻辑性越来越差,

大有比ST和TI还差的趋势。

在吐槽一下,现在microchip的中文网站没有了,而且我到英文网站,经常转悠一大圈找不到单片机的选型表!!!

真是莫名其妙!!
捉虫天师 发表于 2019-6-27 23:54 | 显示全部楼层
说明那些型号是很早很早以前设计的。
捉虫天师 发表于 2019-6-27 23:54 | 显示全部楼层
说明那些型号是很早很早以前设计的。新型的应该好多了。
Rock007 发表于 2019-7-1 14:46 | 显示全部楼层
看一下 dsPIC 系列的片子。
wooda 发表于 2019-7-1 23:10 | 显示全部楼层
shizaigaole 发表于 2019-6-27 19:29
PIC32mm的ADC好像可以,他的手册说的不是很清楚,只是说ADC结果寄存器阵列可以设置为缓冲区模式,可是没有 ...

我也是,网站非要大动干戈整合atmel的东西,基因上就是2个系列的哪有那么容易整合,,然后找出来一堆都是不适用的.
这就好比2栋房子,连砖块都是不一样尺寸的,要拆开来合并厨房客厅,哪有那么容易啊...
现在ide也开始整合了,真是不敢用升级后的版本,谁知道会出啥要儿子问题
abcd44 发表于 2019-7-2 00:08 来自手机 | 显示全部楼层
shizaigaole 发表于 2019-6-27 19:29
PIC32mm的ADC好像可以,他的手册说的不是很清楚,只是说ADC结果寄存器阵列可以设置为缓冲区模式,可是没有 ...

主要是在打贸易战呢
holts 发表于 2019-7-2 08:13 | 显示全部楼层
真的这么差劲 ?
decoding 发表于 2019-7-2 09:36 | 显示全部楼层
如果这样的话确实不是很方便,我用过430既可以这么用
 楼主| shizaigaole 发表于 2019-7-4 09:13 | 显示全部楼层
我原来以为stm32L也可以实现,睡眠时1ms采样一次,20ms唤醒一次,集中处理20个数据,后来没想到,居然也不行。

原因是stm32L的DMA居然在休眠模式下是不能工作的!!!!

估计其他的采用DMA传输十之**也不行。
小卡 发表于 2019-7-16 11:16 | 显示全部楼层
shizaigaole 发表于 2019-7-4 09:13
我原来以为stm32L也可以实现,睡眠时1ms采样一次,20ms唤醒一次,集中处理20个数据,后来没想到,居然也不 ...

有结果吗~???
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:衰兰送客咸阳道,天若有情天亦老

146

主题

3741

帖子

11

粉丝
快速回复 在线客服 返回列表 返回顶部