拥有良好的微控制器,时间过得很快,或者是周末示波器

不久前,这些产品线的作者开始致力于开发一种紧凑的记录器,该记录器可在3伏特范围内以最快的读取速度,最低的成本和尺寸生产单极性模拟信号。 在最低成本的清单中,我也感到头疼,选择了我所熟知的STM32F303。 我记得这是一家知名公司的Cortex-M4 72兆赫,具有内置的12位,非常灵活的模数转换器(根据需要,可以是ADC或ADC),并带有一个CAN接口。


如此小的注册商需要几十个。 带有48个腿的微控制器外壳的出现激发了人们希望将这种阅读器称为紧凑型。 与我已经有良好关系的CAN接口使我有机会以相当方便的方式组合所有这些爵士乐。


最终,所有这些方法的工作速度非常适合于声明所选方法的可操作性。 可以实现半微秒的采样步骤。 头痛和汇编器无法避免,但是现在谁在回想起呢?


但是,仍有一些沉积物。 人们仍然认为,就速度而言,并不是一切都被挤出来了。


而现在,STM32G4系列最近以高达170兆赫兹的时钟频率出现,并有一个小巧的选择,并且板载了几乎相同的快速ADC(五个)。 有必要做点什么。


现在没有人站在灵魂之上,无需担心最后期限和计划。


的确,如果您不考虑它,那么您甚至可以享受工作。 但是,坦率地说,我不得不考虑时间。 长时间思考一小段时间(以及诗意的内容)。


这种想法表明,我们应该从另一端开始。 也就是说,我们必须从最短的时间开始进行ADC采样,根据描述,这需要2.5个时钟周期,并且在40 MHz(160 MHz / 4)下总计为62.5纳秒。 然后100纳秒的采样步骤表明了这一点。 这个数字是圆形的,最重要的是,这个数字很小而且很漂亮,为什么不试试呢?


此外,适合实验的NUCLEO-G474RE板已经上市销售并被购买,为此合理地增加了一块带有两个双排连接器的面包板,以将各种电线和零件焊接到面包板上,而不会损坏主板。 这是现成的样子。



在下面,有几根电线和一个带电容器的电阻器,我相信。


现在,您需要立即将适当的电信号施加到所有四个ADC,然后以恒定的步长依次运行它们(首先是调试时,不是很短)。 为什么是四个? 根据描述,每个ADC每次转换花费15个时钟周期,即0.025 * 15 = 375纳秒(几乎为400)。 因此,在步骤100,需要四个ADC的传送器。


RC电路用作输入信号,只需从控制脚提供电压即可。 我分配了这条腿来以单脉冲模式控制TIM5定时器。


最小接线图如下图所示。



涉及ADC1-ADC4。 可以通过提高速度来减小位深度,但可以节省12位,因为我不想失去测量的准确性。 为了按照要求的顺序和步骤启动每个ADC,使用了三个定时器(TIM2,TIM3,TIM4),另一个定时器(TIM1)用于同步上述三个定时器。 下面的图2显示了构建所有信号的信号。



绿色箭头指示相应的ADC1-ADC4转换器沿其触发的脉冲沿。


为了获得计划的100纳秒,我们必须将时钟频率降低到160兆赫,以便将所有内容完全分割。 首先,该步骤要慢得多,为4微秒,以便使用中断,输出端口和示波器来平静地检查计时器的运行情况。 然后,通过中断对其进行了调试,并可以直接访问内存。 最终,仅处理一个中断-这是直接访问内存的第四个(最后一个)通道对工作结束的中断。 下图显示了该过程中涉及的硬件单元的连接以及四个输出存储器缓冲区。



在四个存储缓冲区(如右图所示)中,以编程方式将样本收集到一个结果缓冲区中。


在该控制器中,与STM32F303不同,它具有一个请求切换单元(DMAMUX),使您可以将来自外围设备的大量请求重定向到仅16个DMA1通道和16个DMA2通道。 在《参考手册》中,DMAMUX输出请求从0开始计数,而DMA通道通道的输入从1开始计数。我没有更改它,而是将其保留为原始来源。


TIM5定时器用作单脉冲发生器。 它提供了方便的单脉冲模式。 方便之处在于可以设置脉冲开始之前的时间并设置脉冲本身的持续时间。 如下图所示,这种冲动是由租来的示波器提供的。



波形图显示脉冲的持续时间为10微秒,这意味着它应该容纳大约100个样本。


该项目是在IAR 8.4中手动完成的(也就是说,没有古巴和巴尔),但是,我希望可以通过各种信仰来理解该项目。 你可以在这里看到它。


这是一个单独的ADC1缓冲区的内容以及在输入脉冲开始区域中从缓冲区的四个源收集的结果的图片。



但是这些缓冲区的内容在脉冲峰值的区域(该值达到2508)。



如您所见,从脉冲开始到峰值,该部分花费了196-95 = 101计数。


因此,采样率为10兆赫。 不能立即以这种速度工作。


为了实现这一点,我必须在启动直接内存访问(DMA1)之前停止处理器。 最好的是,Cortex-M4具有特殊的汇编指令WFI (等待中断)。 如果不这样做,则处理器将妨碍DMA的处理,并占用可能等待等待的内存访问总线。


如果您将计数步长增加到200纳秒,它们将停止推动并和平,幸福地愈合。


如果我们将COMP4比较器用于其工作并将其正输入(端口PB0)与输入信号相连,然后使用DAC(DAC1)并将其输出(CH1)与比较器的负输入(控制器内部)相连,我们将获得一个阈值可调的阈值器件。 比较器操作的中断将使您能够启动通用时钟定时器TIM1并进入待机模式,就像在示波器中一样。

Source: https://habr.com/ru/post/zh-CN468393/


All Articles