问题标签 [adc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1468 浏览

microchip - dspic33FJ128MC802上ADC读数一直跳动,无法获得稳定读数,mplab8.92,xc16编译器

晚上好,

我正在尝试在 dspic33FJ128MC802 上实现一个简单的 1 通道 ADC 读取器,它可以手动开始采样数据,在采样完成时自动转换,并读取和存储数据。

这对我来说从来都不是问题,除了这个微控制器,它似乎没有实现正常的 ADC,

我已经通读了数次关于 ADC 的数据表部分,并且我已经将其配置为我的最佳能力,但是当我将实验室电源直接连接到输入时,ADC1BUF0 值会在 0 到 4096 之间不一致地跳跃ADC的引脚。

我看到的是 ADC1BUF0 值似乎大致对应于输入电压(0-3.3V),当我暂停调试器时,它给出了几个(2-4)个读数在 +-100 范围内(4096 是不错)。然后,如果我继续运行并暂停,电压保持不变,存储在缓冲区中的值突然开始跳跃 +- 500,有时甚至显示 4095(全 1)和 0。

然后,当我将实验室 PSU 更改为不同的电压时,它似乎重复了向我显示几个正确值的过程,然后又开始跳来跳去。

所以本质上,它会在我暂停调试器的 1/2 时显示一个正确的值。

我不知道是什么原因造成的,我知道我需要在改变电压后运行调试器,以便它可以清除缓冲区,但是关于这个微控制器的某些东西似乎肯定是错误的。

请让我知道可以做些什么来解决这个问题,

编译器是 XC16,IDE 是 Mplab 8.92

谢谢,

下面是我的配置:

[代码]

[/代码]

0 投票
1 回答
1239 浏览

matlab - 在matlab中生成DAC音频信号

我一直在尝试使用 Matlab 制作和理解 ADC。我制作了这个小程序,允许我修改波形的位数(2^8,8 是位数,可以从 1 到 64)。但是,在计算机中播放声音时,听起来好像有什么东西停止了声音。可以更改频率,但问题仍然存在。我想知道我做错了什么?

0 投票
1 回答
1501 浏览

c - PIC24 读取 ADC 错误

我试图让 PIC24 与 ADC 转换器一起工作,使用电位计作为音量旋钮,但为此,我需要读出 ADC,代码不允许我构建。见问题底部。接线正确。

MPlab 在 main.c 中没有显示错误,但是当我构建项目时,user.c 中出现了一些错误。

我将 PIC24FJ64GB002 连接在带有一些按钮和 mdog 显示器的板上。

主程序

用户.c

构建时记录:

0 投票
1 回答
3211 浏览

python - 从树莓派上的 ADC 芯片读取原始音频值

我将 MCP3008 ADC 芯片连接到驻极体麦克风和我的 pi。我在 python 中使用 bit-banging 读取输入,我得到一个 0-1024 的整数。

我按照本教程进行了bit-banging:https ://learn.adafruit.com/reading-a-analog-in-and-controlling-audio-volume-with-the-raspberry-pi/connecting-the-cobbler -to-a-mcp3008

我的问题是如何获取这个整数并将其转换为有意义的东西?我可以以某种方式将这些字节写入 python 中的文件以获取 Audacity 可以播放的原始音频数据吗?现在,当我尝试编写值时,它们只是显示为整数而不是二进制。我对python真的很陌生,我找到了这个用于转换原始数据的链接,但是我在首先生成原始数据时遇到了麻烦:Python open raw audio data file

我什至不确定这些值代表什么,它们是我必须与时间相关的 PCM 数据吗?

0 投票
1 回答
807 浏览

matlab - matlab中的奈奎斯特定理

我正在尝试在 matlab 中制作一些小脚本,所以我可以听到模拟和数字正弦波,但我很困惑并且有 2 个问题

  1. 在模拟代码中,想法是能够通过改变Tm来改变采样周期,这样我就可以选择用户想要的任何样本。但是我坚持使用 stem 函数,因为我无法更改stem()函数中的采样率

  2. 在数字代码中,我试图从扬声器中发出数字声音代码,但是我确实做到了,我什至不确定声音实际上是数字的,因为使用N=2^1时可以听到声音质量非常好,有一点噪音,(当它应该只以 8 位播放时)希望这里有人可以帮帮我。

-------------------- 对于模拟声音

-------------------- 对于数字声音(将 N 从 2^1 更改为 2^16)

0 投票
3 回答
18045 浏览

c - STM32上的ADC单次转换

我正在研究 STM32 F103x 上的 ADC 编程,并从最简单的情况开始——单次转换。内部温度传感器(连接到 ADC1)值被测量并使用 USART 将其发送到 COM 端口。目标似乎很清楚,但是当我尝试将源代码下载到闪存时,它不会向 COM 端口发送任何数据。USART 功能运行良好,我猜问题出在 ADC 配置部分,因为我被挂在等待完成转换的循环中:

到目前为止,这是我的源代码。

任何想法表示赞赏!

0 投票
1 回答
321 浏览

embedded - Olimex 的 A20 OLinuXino-Micro 4GB - 了解 GPIO

我正在使用来自 Olimex 的 A20 OLinuXino Micro 4GB 和 SD 卡上的 Debian。

我想使用 GPIO 并对 GPIO 的配置有一些简短的问题。板上的 GPIO-1 连接器的引脚编号为 1 到 39。在手册中,我有这样的条目:

引脚# | 信号名称 | 处理器引脚

23 | PG9 | C19

...

39 | LRADC1 | AB22

在 fex 文件中,我发现:

如何定义处理器引脚 C19 路由到端口 PG9?端口究竟意味着什么?

如何定义端口 PG9 路由到连接器的 pin23?

gpio_pin_10 指定可以任意选择吗?

最后,我想使用 LRADC1 来采样信号,但 fex 文件没有任何 LRADC1 条目。这是为什么?

也许有人可以用 2 或 3 句话回答可能的问题,所以这对我阅读的其余内容很有意义。谢谢!

0 投票
3 回答
1188 浏览

c - MCP3008 树莓派 ADC 错误

从 mcp3008 ADC 读取时出现错误。下面的函数在接收到 3.3V 输入时返回 127。由于它是一个 10 位 ADC,它应该返回 1023。

我已经正确定义了我的引脚号,并且包括了 stdio.h 和wiringPi.h。任何帮助表示赞赏。

0 投票
1 回答
1097 浏览

embedded - PIC32MX dma 不是由 adc 触发

我正在尝试在 pic32mx795f512l 上做一个小应用程序,但我无法让它工作。我想要实现的是,adc 以尽可能高的速率不断地从通道 0 获取当前模拟值。如果 16 Word 缓冲区被填满,它应该触发 dma 将此缓冲区保存在 ram 中。如果 ram 缓冲区已满,则 dma 应触发中断。所以我可以在主循环中开始计算。我现在的问题是根本没有触发 dma。当我在 adc 上启用中断时,主循环没有运行。有谁知道我做错了什么?这是我的源代码:

0 投票
1 回答
134 浏览

timing - 串行输出 ADC - 最短采集时间

我正在使用这个 ADC:AD7903 - http://www.analog.com/media/en/technical-documentation/data-sheets/AD7903.pdf

我不明白采集时间与 SPI 接口可能的最大时钟速度有关的限制。

我使用的 VIO 是 3.3V,理论上最大频率为 83.33MHz(最小周期为 12ns)。假设我在没有忙碌指示灯的 3 线驱动中使用 80MHz = 12.5ns 周期。

参考时序表(第 5 页)和时序图(第 18 页):

  • 12.5ns x 16 个时钟周期 = 200ns
  • 十个 10ns

即使 VIO = 2.5V:15ns x 16 + 15ns = 255 ns

为什么最小采集时间是 290ns?