示波器使用PIC单片机项目

Oscilloscope using PIC MCU project

我对微控制器还很陌生。所以我对他们的潜力一无所知。

我想用单片机做一个示波器,通过ADC采集数据,通过usb传输给电脑处理显示。

我想讨论这个项目。我拥有的资源如下:

1) 我的 dsPIC MCU 的 ADC 能够提供 1.1 Msps,其中每个样本具有 10 位分辨率。它能够同时对多达 4 个通道进行同步采样。

2) MCU 具有 USB 支持和 DMA 通道,可将数据从 ADC 直接传输到 USB。

我的问题是:

1) 使用这些规格我可以达到的最快采样率是多少?

2) 这个项目可行吗?它的速度是否足以与标准示波器竞争?

3) 如何优化 MCU 以获得最佳性能?

4) 你会如何制作这个项目? (你的方法)

5) 我将使用 JavaFx 使计算机应用程序能够显示此示波器的结果。这是正确的方法吗?

我使用 dsPIC 系列 MCU 做了很多工作。我会尽量按顺序回答你的问题。

1) What is the fastest sampling rate I can acheive using these specs?

你的采样率就像你说的那样,1.1 Msps(每秒百万样本),假设你只想从一个通道读取。如果您想从多个通道读取,则每个通道的最大采样率将降低。

2) Is this project feasible? Will it be fast enough to compete against a standard Oscilloscope?

如果您对单片机编程和基本电路原理有基本的了解,这绝对是一个可行的项目。您的示波器应该可以与提供 1.1 Msps 采样率的任何其他示波器相媲美,减去一些功能,例如支持 10x 探头(除非您为该功能构建电路)。该项目的大部分高级功能将内置到您的 Java 程序中,而不是微控制器本身。

3) How can I optimize for the MCU to give best possible performance?

为了尽可能让您的 MCU 发挥最快的性能,运行 时钟的速度要达到规范支持的速度,并尝试找到用最少的指令在您的程序中实现相同结果的方法.这可能意味着避免在 MCU 端进行数据格式化,以允许客户端程序进行这些计算。

4) How would you make this project? (your approach)

这些 MCU 上的 ADC 操作并不是特别复杂。内置模块使项目非常易于管理。这个项目中编程上最困难的部分(在我看来)是通过 USB 传输和接收数据。我会首先处理项目的这一部分(即使 USB 在 PIC 上工作并能够从 Java 中实时接收和处理该数据)。如果您使用 PIC24 或 dsPIC33 系列或类似的带有 Microchip 编译器的 16 位 MCU,我建议使用 C 库,例如这个:http://www.reesemicro.com/Home/pic24-software-library-collection

5) I will be using JavaFx for making the Computer application capable of showing the results of this oscilloscope. Is this the right approach?

我从未使用过 JavaFx,所以我不确定它的功能,但我确信某些 Java 用户界面库能够做到这一点。也许更了解 JavaFx 的人可以回答这部分问题?