问题标签 [spi]

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 回答
721 浏览

beagleboard - Beagleboard Xm 的 SPI

我试图让 spi 接口在 BeagleBoard Xm 上工作。我已经重新配置内核(2.6.32)以允许访问用户空间中的 spidev 驱动程序(spidev3.0 和 3.1 显示在 /dev 下),并且我已经编译了 Documentation/spi 下给出的 spidev_test.c 程序。当我运行程序时,我得到以下输出:

我正在传输以下内容,并希望在接收缓冲区中看到:0xFF、0xFF、0xFF、0xFF、0xFF、0xFF、0x40、0x00、0x00、0x00、0x00、0x95、0xFF、0xFF、0xFF、0xFF、0xFF , 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xAD, 0xBE, 0xEF, 0xBA, 0xAD, 0xF0, 0x0D

我在板上的 SIMO 和 SOMI 之间有一个跳线,当用 o-scope 探测 CLK 或 CS0 引脚时,我没有看到任何引脚上有任何活动。这让我相信我没有在内核或 u-boot 中正确配置某些东西。DMA 错误也可能是配置问题的线索。

有没有人遇到过这个问题?或者对我可能遇到的问题有任何见解?

我下一个可能的解决方案是使用更新的内核并深入研究 u-boot 以查看 u-boot 是否覆盖了我的 pin muxing。

提前感谢您的回复。

0 投票
3 回答
10710 浏览

embedded - SPI通信中CPOL/CPHA设置的使用

谁能给我现实生活中的例子,说明 SPI 通信中的 4 种 CPOL/CPHA 配置模式有用吗?我了解它们的工作原理,但不知道何时使用它们。由于非标准实现,出于兼容性目的,我很快就阅读了一些参考,这是怎么回事?

谢谢

0 投票
1 回答
1186 浏览

c - 将 microSD 与 LPC1769 板连接

因此,我们尝试使用板载 SPI 协议将 LPC1769 微控制器板上的数据字节(来自 A/D 转换器)存储到 SanDisk 1Gb microSD 卡中。我知道所有这些东西是如何工作的,但我不知道如何开始使用 microSD 卡——我已经看到了对 CMD0 的各种引用,但我不知道在哪里可以找到这个库或如何正确将其合并到板的 C 编译器中。

我所需要的只是弄清楚如何正确启动连接,然后如何在指定的块处将数据读写到卡中。 void write(int data, int block) int read(int block)<< 如果有一种方法可以简单地使用预定义的 microSD 函数库来做到这一点,那就太棒了

0 投票
1 回答
866 浏览

usb - 多个 MSP430 之间是否可以同时进行 I2C、SPI 和 USB 通信?

我已经编写了几个 MSP430x6xx 微控制器作为一些 I2C 从设备的主控。其中一个 MSP430 使用其内置的 USB 模块将从 I2C 从机接收的数据传输到 PC。我想扩展它以允许所有微控制器使用公共总线系统将从各自的 I2C 从机接收到的数据发送到 PC。使用 SPI 将数据从所有 MSP430 传输到单个 MSP430 主控(已经同时作为 I2C 主控和 USB 设备)然后将其传输到 PC 是否可行?我将不胜感激任何其他建议。谢谢

0 投票
1 回答
825 浏览

spi - 无法使用带有 atmega2560 的 ad9833 生成频率和正弦波

我使用的是 4 个 AD9833,其中 4 个 fsync 信号是从 atmega2560 发送的。我想从所有 4 个 AD9833 生成不同的频率,如果我对其进行编程,我会在 2 个端口引脚中获得一些频率,我无法更改频率.. 请帮助

0 投票
2 回答
353 浏览

java - Vorbis SPI 为 OGG 文件抛出 UnsupportedAudioFileException

我正在尝试从 Java 程序播放 OGG Vorbis 文件。PCM 文件 (*.wav) 与此代码一起工作正常:

为了也能播放 OGG 文件,我下载了Vorbis SPI并将 jar 放在类路径中。我尝试使用来自 Wikipedia 的示例 ogg。但它仍然不起作用,它给了我一个 UnsupportedAudioFileException。

你知道我做错了什么吗?

0 投票
3 回答
17396 浏览

c - 如何从 C 中的串行(SPI)连接读取数据?

我正在尝试编写一个程序,该程序将安装在 Linux MCU(Raspberry Pi)上,该程序将读取来自另一个 MCU 的串行数据(我将自己构建的东西)。

我已经研究了如何做到这一点,并认为我有“大局”,但仍然缺少一些东西。一方面,我需要启用内核模块并让自己访问设备:

从那里我可以使用这个著名的 C 文件来测试 SPI 连接。

所以现在连接在那里,但我仍然需要从中读取串行数据。根据这个 SO question的答案,我只需要:

...打开相关端口进行读取,并用于read()获取数据。

然而,该答案中的代码片段似乎是通过设备驱动程序打开端口,而不是通过 SPI。

我的理解是我可以使用 SPI 从连接的 MCU 设备中读取数据,并且我不需要为该设备编写自己的设备驱动程序。这是真的?如果是这样,我将如何从 SPI 连接中读取数据,该代码与上面链接的问题的答案中的代码有何不同?

如果我的理解不正确,并且我确实“通过”了设备驱动程序,那么为什么我首先需要驱动程序?这不正是SPI希望规避的吗?提前致谢。

0 投票
0 回答
1075 浏览

c++ - 将 Boost.Asio 与 SPI 等其他串行设备一起使用

Boost.Asio 使用 Proactor 来出色地使用单线程处理 I/O。我将它与插座一起使用,我喜欢它。我看到有一种方法可以将 Boost.Asio(和底层 Proactor)的 io_service 与串行端口(Windows 上的 COMX 设备和 Linux 上的 /dev/ttyXXX)一起使用,而不是使用套接字。事实上,我认为 Boost.Asio 旨在用于任何类型的 I/O,包括文件句柄等。

我想知道我是否可以直接使用它,开箱即用,用于任何串行设备,如SPII2C。这类串行设备在 Linux 下看起来像 /dev/spi。

例如,我可以这样使用它:

并且自动地,它就像一个普通的串口(即RS232)一样工作?

或者,如果 Boost.Asio 不直接支持 SPI,那么后者是否提供了一种轻松合并对任何其他设备类型的支持的方法,而无需修改 Boost.Asio 的核心代码?

0 投票
2 回答
3608 浏览

linux-device-driver - 仅支持两个的 Arm 板上有两个以上的 SPI 设备?

我们其中一块板上的 Arm 处理器有一个带有两条片选线的 spi 端口。处理器的数据表中提到它可以控制最多两个 spi 设备。

是否可以将 GPIO 用作附加 spi 设备的从属选择?如何修改现有的库/设备驱动程序以支持此更改?

到目前为止,我在内核源代码中找到了一个文件,其中包含 SPI 端口引脚的地址。谁能告诉我应该朝哪个方向前进?

0 投票
3 回答
578 浏览

vhdl - 努力等待 VHDL 传输完成

我需要进行持续的 SPI 通信以从我拥有的双通道 ADC 读取值,并且为此编写了一个状态机。但是,它似乎没有进入读取第二个通道的状态,我不知道为什么。这是VHDL ...

该命令被发送到 Tx 缓冲区,最后接收到的数据的值被写入一个信号,该信号输出到一些七段显示器。需要来自 SPI_send 的脉冲来启动传输,启动时,SPI_busy 设置为高电平,直到传输完成。

现在它只会通过 SPI 发送 query_x,我可以知道这一点,因为我可以在示波器上看到它。然而,有趣的是,它向两个显示器输出相同的值,这让我认为它仍在进入它的 READ_Y 状态,但没有改变它输出的 Tx 数据。

我已经盯着这段代码好几个小时了,我想不通。有时一双新鲜的眼睛会让生活更轻松,所以如果你发现了什么,请告诉我。此外,我对处理这个问题的更好方法的建议非常开放,我只是在学习 VHDL,所以我什至不确定我是否以正确的方式做事!