问题标签 [digital-analog-converter]
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.
c - STM32F103 DAC 和 ADC 不会同时运行
我设置了一个线程来不断读取 ADC1 和 ADC3 上的 18 个 ADC,并将它们填充到数组中。
我还有一个功能,可以在收到来自 usart 的所需设置后设置两个输出 DAC 通道之一
dac 功能完美运行,直到我启用线程TSK_AdcSensor
。
然后 dac 输出将给出无意义的值。
通过消除过程,我发现评论:
和
让 DAC 正常工作。但我看不出为什么?
我设置DAC通道后显示正确的printf
值,但输出端的电压读数不对应。
有人有想法么?
DAC 配置
verilog - 如何将 FPGA 的数字输出连接到 DAC?
我目前有一个非常非常基本的 DDS 内核(?),带有一个计数器、调谐字和正弦 LUT,它输出 16 位值以与 DAC 的正弦值相关。我使用的是Nexys 4 DDR 板,我的DAC是专为 FPGA 设计的外围模块。如果它是一个 16 位 DAC,为什么它有 6 个引脚,其中只有 4 个用于数据?我应该如何将二进制信息从我的 16 位生成的 sin 值发送到 DAC,以便 DAC 成功转换?
这是我的代码(我知道它的初级,请原谅错误,一旦我正确地知道如何与 DAC 交互,我会解决它们!)
audio - 驱动直流偏置音频信号时避免扬声器爆音
我正在从 16 位 .wav 文件读取的 12 位 DAC 上生成音频信号。我的处理器是 3.3V,所以我将所有内容向上移动 32768,所以我的值在 0-3.3V 之间摆动,以 1.65V 为中心,向右移动 4 位,所以我有 12 位值。
我遇到的问题是,当我打开 DAC 时,当我的放大器看到该阶跃函数时,我会发出很大的爆裂声。我现在有一个转角频率为 4KHz 的 RC 低通滤波器,它对我没有多大用处。
如果可以的话,我想用硬件解决这个问题,但我想不出最好的方法。这些只是在单声道扬声器上播放的语音命令,所以我不需要出色的保真度或任何东西。
我想到的另一个解决方案是上下调整 DAC,但我想避免花费额外的时间。
有什么建议么?
java - Java中来自DAC的多条音频线
我正在使用 Java 开发一个现场音乐可视化项目(技术上是处理,但我们使用的是 Eclipse),它需要同时来自多个麦克风的音频输入。我们有一个与 JACK 配合使用的良好系统(根据对这个问题的回答),但我想独立于 JACK——它一直很不稳定,我根本不相信它在专业环境中。
但是,我无法从 Java 中的 DAC 访问多行。我可以得到与之对应的 Mixer,打开 TargetDataLine,将 AudioInputStream 中的数据获取到缓冲区中,但这都只对应于第一个麦克风。有没有一种方法可以让我在保留 Java 的同时抓住不同的线路,或者我是否必须将 C/PortAudio-or-equivalent 与 JNI 结合使用?
communication - 64QAM & QPSK 计算
这是目前的情况:
最大数据速率为 3/4 64QAM 的 802.11a 无线网络。
计算使用 2/3 QPSK 获得的数据速率。
802.11a 使用 54MHz 的带宽。
谁能帮我计算一下?
python - Pyserial 写入 arduino mega 2560 问题
我觉得这可能是 python 方面的问题,因为 arduino m 代码在我使用监视器时有效。
无论如何,我基本上是使用 python 2.7 btw 将来自 csv 文件的字符串数组发送到 arduino。
我的问题是 arduino 停止接收字符串(大约 12 个字符串)。
如果有人能看到任何东西,那可能是导致问题的原因,我将不胜感激。我已经尝试在代码周围使用各种 time.sleep(s),因为我已经阅读了很多东西——在 serial.serial() 之后初始化端口需要一段时间。我什至尝试在发送完所有数据后等待 - 在 python 代码必须读取comport之前(这是我检查的主要方法)。我也一直在使用软件串行 rx rx 引脚连接到单独的 USB 到串行设备(我不依赖它的输出,因为它很便宜)。我还尝试了每个可用的波特率并且没有骰子。
这是python代码:`
这是arduino代码-我测试过的链表库,它可以工作:
`
python - 用于 TI DAC8568 的树莓派上的 SPIDEV 未按预期运行
我在他们的 BOOST 分线板包中有一个德州仪器 DAC8568。DAC8568 是一款带有 SPI 接口的 8 通道 16 位 DAC。BOOST 包有用于将其连接到我的树莓派的接头,并且它的 LED 连接到输出电压,因此您可以轻松检查您的代码是否在执行您认为的操作。到 DAC8568 的 BOOST 包和数据表的链接在我下面的 python 代码中。
我用 3.3V 电源、5V 电源(LED 所需)和接地将封装连接到树莓派。DAC SCLK 进入 Pi SCLK,DAC /SYNC(实际上是芯片选择)进入 Pi CE1,DAC /LDAC 进入 Pi Gnd,DAC MOSI 进入 Pi MOSI。我没有为 DAC / CLR 接线,但如果需要,我可以将其物理地接地以重置芯片。
我相信我的接线很好,因为我可以使用 python 脚本或从终端使用以下命令点亮 LED: sudo echo -ne "\xXX\xXX\xXX\xXX" > /dev/spidev0.1
我从这个视频中学到了终端技巧: https ://www.youtube.com/watch?v=iwzXh2V1SP4
不过,我的问题是 LED 没有像我期望的那样根据数据表点亮。我应该点亮 A,但我点亮 B。我应该点亮 B,但我点亮 D,等等。我试图理解这一切,可以调暗 LED 并打开新的 LED,但从不妨碍我真的希望它按照数据表工作。
下面是我的python脚本。在我提到的数据表中我正在寻找要发送的位的评论中。我对使用模拟组件非常陌生,并且不是 EE,所以也许我没有正确地进行计时,或者犯了一些其他愚蠢的错误。也许有人可以查看数据表并查看我的错误,而不必实际拥有芯片。谢谢您的帮助!
以后的读者请注意,上电需要打开内部参考电源,即
javascript - 模拟模拟伪随机 LFO 信号(Javascript 中的低通滤波)
我正在编写一个 Javascript 程序,以编程方式为程序生成的音乐创建 MIDI 信号,该音乐使用外部输入来修改/操纵声音以响应环境的变化。
我正在尝试做的一件事是弄清楚如何对模拟伪随机低频振荡器 (LFO) 信号进行编程,如下图中的虚线所示:
该信号将驱动 MIDI 效果,如弯音或调制。
该函数应采用单值输入来控制信号波动的剧烈程度。当输入为 0 时,产生的信号应该为 0,或一条平线。并且随着输入值的增加,信号应该按比例变得越来越不稳定。
我觉得我知道如何生成实现这些目标的阶跃函数(如上图中的实线),但我不知道如何“平滑”它(即低通滤波器)以获得像虚线一样的连续曲线。最终,平滑/连续/模拟功能将被采样,例如,每 100 毫秒并作为新的 MIDI 弯音指令进行广播,等等。
matlab - 如何为 DAC 转换器编写 MATLAB 代码?
在第一步中,我生成了一个位序列 (0,1)..
我使用了一个 randi 命令x = randi([0 1],1,3)
来生成随机位
我坚持这两个步骤:
将序列除以 3 位为 8 级 [000, 001, 010, 011, 100, 101, 110, 111]
对于每个量子级别,从范围 [-2, 2] 中分配幅度值
audio - 将复合视频录制到音频文件
我正在尝试通过将黄色 rca 电缆从播放器连接到我电脑中的麦克风输入来将原始复合视频信号录制到音频文件,这样我就可以将电缆放入我的音频输出并将其与视频输入连接旧的 crt 电视并将信号播放到电视上,以便我可以观看原始视频。但这不起作用,我只能看到随机的白线。是由于音频格式或板载音频芯片的频率限制,还是录制和播放时的模数转换等方式损坏了信号?