想用STM32F407做一款三相交流采集卡, 用于分析发电机组的数据。
1. 主控板采用STM32F407, 要处理6路AD数据采集, 128点FFT分析, 有功,无功,视在功率, 功率因数, 频率。 和上位机进行RS485通信和控制LED显示。
2. AD芯片 采用ADS8364, 16bit 250k 6通道同步采样。6通道转换时间3.2us,数据采集时间0.8us, 数据输出为16位并行输出
3. 监测信号频率范围不是固定的为45Hz-400Hz。
4. 同步采样控制采用过零点检测电路,经过256倍频后,形成脉宽,去控制AD启动。这样就可以达到每周波采集256点。 每个点AD转换完成后,会自动通知STM32外部中断, 我再进行取数据。
问题: 1. 如果当前信号为50Hz , 那么周期就为0.02s, 经过256倍频后, 0.02/256 = 0.00078125s 也就是AD每78us会通过硬件进行自动的转换, 单片机也需要每78us进行一次读取数据。 这个对STM32F407 168M的主频来说不成问题。
但是如果信号为400hz ,那么单片机需要每78/8 = 9.75us就中断一次,并且在中断中还要读取数据, 不知道这样会不会对单片机的实时性造成很大的影响。
2. 如果监测过程中,比方说正半波,信号频率为50hz, 突然由于某种原因, 在负半波变成了40Hz, 那么我的数据算出来肯定就不准确了。 不知道这个应该怎么处理?
求各位大神指点一下, 不胜感激,
|