问题标签 [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 回答
1796 浏览

embedded - SDHC SPI 写入问题

我一直在尝试用LPC1766 SPI外设做一个 SD 卡接口,现在我陷入了一个我无法在任何地方找到答案的问题。

问题是:SDHC 卡没有按预期响应写入和读取命令。

在基于 Chan 的流程图和 NXP 应用说明的初始化上一切正常。我可以区分卡片版本,读取 OCR、CID、CSD 并确定它们的大小。

在这一步之后,我开始每隔一秒写入一个块并读回它以检查数据完整性。在金士顿 SDHC 4 GB 4 类卡上,我可以发送第一个写入命令,但在第二个上,卡甚至没有向 CMD24 应答(0x00 或 0x01)。使用 SanDisk 4 GB Class 4 卡,结果是不同的,每个命令都由卡回答,但是在读回数据时我只得到零(我确定我没有写零)。如果我使用 SDSC 卡,一切正常。

我知道 SDHC 是块寻址而不是字节寻址,并且我需要发送 ACMD41 和 CCS 以用于 SDHC。我也知道时钟频率不是问题(使用 400 KHz 启动,然后 20 MHz 写入/读取),因为我刚刚打开 CRC 检查并且所有卡都在接受命令和数据。如果我停止计算 CRC,所有卡都会拒绝命令和数据。

0 投票
1 回答
697 浏览

android - 我如何 insmod android SPI 驱动程序来运行 ubuntu PC

我正在为我的 devkit8000 android 在 PC ubuntu 上开发 SPI 驱动程序。

我看到了一些关于如何构建的示例。但似乎我可以构建我的 SPI 驱动程序并将其安装到正在运行的内核中。(这里是链接) http://www.jumpnowtek.com/index.php?option=com_content&view=article&id=57&Itemid=62

目前我的理解是指向我的ubuntu的“/lib/modules/...”这部分我管理。但我无法“modprobe omap2_mcspi”,我认为这是我的 DevKit8000 SPI 驱动程序的主要组件。

我希望有人可以帮助我验证我是否可以将我的 SPI 驱动程序安装到正在运行的内核中。如果可能的话,当我“制作”时我应该指向哪个。以及我应该如何让 modprobe 出现。

0 投票
1 回答
305 浏览

embedded - SPI真的需要等待循环吗?

我正在使用带有 IAR Embedded Workbench 5.10 的 msp430f5418。

图形 LCD (ST7565R) 通过 SPI 连接到 MSP..

MSP 主机使用 8 位、MSB 优先模式和 SMCLK。

通常我们必须在使用 SPI 传输字节之前检查忙位,对吗?

但就我而言,即使我在不​​检查忙位的情况下连续发送数据,它也可以正常工作,并且我可以正确查看显示数据。

任何人都可以解释为什么它工作?

是否需要检查就绪位或是否安全?

谢谢,

0 投票
0 回答
489 浏览

c# - 使用 Gameboy 打印机启动串行连接 .Net Gadgeteer

我一直在从事一个项目,以使用 Microsoft 的 .NET gadgeteer 模块破解和与 Gameboy 打印机通信。到目前为止,我一直在处理硬件(请参阅此线程:http ://www.tinyclr.com/forum/21/6665/ ://www.tinyclr.com/forum/21/6665/ )

我已根据需要将打印机连接为 SPI 串行连接,现在我需要开始与打印机交换字节包以开始探索打印。

我试图将一些代码放在一起,但我失败了。我真的不知道如何与打印机交谈。我取得的唯一进展是 SPI 配置,但实际通信超出了我的理解。也许有人无法指出我正确的方向?

这是我试图复制的代码:http: //milesburton.com/images/e/ec/GBPrinter_Arduino_Alpha_0.01.pde

我的主要参考资料是 Thermaldotnet(sparkfun 打印机的库)github.com/yukimizake/ThermalDotNet

蜘蛛上的 SPI:tinyclr.com/forum/21/6621/

和一个基本的 SPI 示例:*wiki.tinyclr.com/index.php?title=SPI_-_MP3_Decoder*

如何查看字节传输以判断是否有任何实际工作?

到目前为止我所拥有的:

它与上面的代码几乎完全相同,除了我将 Pin 更改为 8 (MISO) 并添加了一些数组内容。在这一点上,我真的要瞎了。以如此贫乏的知识进入这个领域,我感到很抱歉,但任何一点帮助都将不胜感激。

为对此感兴趣的人提供更多资源:完整的音乐屏蔽代码:code.tinyclr.com/project/330/fez-music-shield/

文档:msdn.microsoft.com/en-us/library/ee436313.aspx 更多文档:netmf.com/Gadgeteer/docs/GadgeteerCore/2.41.500/html/0d40434b-2a84-2f72-ca4d-b0012535ea58.htm

对非超链接感到抱歉+在此先感谢!

0 投票
2 回答
3552 浏览

embedded - 设置 RXIF 标志时未调用 PIC32 SPI ISR?

我在从机模式下使用 PIC32MX795F512L SPI3 模块。我的主人正在通过 SPI 线路发送数据,但从未调用过我的奴隶的中断服务程序。RX 中断标志​​正在从机侧的硬件中设置,我可以读取 SPI3BUF 并获得正确的值,但仍然没有调用 ISR。

这是我的 spi 初始化代码:

这是我的 ISR

我正在使用 MPLAB X 和 C32 编译器。为此,我已经把头撞在墙上了 4 个小时。

0 投票
1 回答
4495 浏览

embedded - 在 PIC32 上实现 SPI 从 ISR?

我有两个PIC32MX微控制器,它们通过 1.53MHz SPI 总线与片选连接。我无法让我的从端中断服务程序正确传输数据。作为一个测试用例,我让主机每 10 毫秒发送两个字节(0x01、0x00)。当主机发送第二个字节(虚拟 0x00)时,从机应该接收 0x01 命令 id 并以 0x02 响应。

理想情况下,每次传输都应该是这样的。
主从
0x01 0x00
0x00 0x02

不过,我真的不确定从哪里开始从属中断。我正在使用一个名为 airsysTx 的 fifo 缓冲区来保存下次主机发出请求时需要移出的数据。从机接收到来自主机的 0x01 就好了,并在收到时将 0x02 写入 fifo 缓冲区。我不确定如何对中断进行编码,以便确保正确传输。我下面的代码是一个好的开始,但它是错误的。建议?

这段代码实际传输的是这样的:

理想情况下,每次传输都应该是这样的。
主从
0x01 0x02
0x00 0x01

0 投票
1 回答
2353 浏览

c - MSP430 上的 SPI 轮询读/写?

抱歉这么简单的问题,但是有没有人有一个 C 示例来初始化 MSP430 为 SPI 模式并执行轮询读写操作?对我来说非常新的东西,不知道从哪里开始。

谢谢。

0 投票
1 回答
1441 浏览

android - Android:如何与 microSD 卡进行 SPI 通信

我在 Galaxy S(来自三星)上使用 Android 2.3.3(Java)编程。我想使用 microSD 卡作为 GPIO 端口,通过 SPI 与设备进行通信。

我需要使用哪个库来执行此任务?如何执行 SPI 通信(现在我使用经典的 SPI 通信与微控制器和 Android 语言(简单应用程序))。是否有可能做到这一点?如何从 SD 卡引脚读取值(如何声明它们)?

0 投票
1 回答
15232 浏览

linux - 使用 SPIDEV 访问 SPI 设备

我想使用 SPIDEV 驱动程序访问嵌入式 Linux 系统上的 SPI 设备(Avago Tech 的光学鼠标设备)。该设备连接到 SPI0。

我在 menuconfig >“设备驱动程序”>“SPI”中启用了 SPI 和“用户模式 ​​SPI 设备驱动程序支持”。

我将代码添加到 board.c 文件

我尝试将 500000 和 1000000 作为 max_speed_hz (1Mhz 是传感器允许的最高值)。SPI_MODE_3 是正确的,在数据​​表上检查。bus_num = 1 应该正确,因为它指的是 SPI0(出于好奇,我也尝试过 = 0)。

我检查了电气连接,一切正常。

内核编译并且映像正确启动,但我在 /sys/class/spidev/ 中找不到任何设备(在 /sys/bus/spi/... 中都没有)。在系统引导期间也不会出现对 SPI 的引用。

关于问题出在哪里的任何想法?

0 投票
0 回答
310 浏览

serial-port - 来自 SPI 的 Arduino 不需要的传入串行数据

我正在使用带有 NFC Shield 的 Arduino(这个)。我正在尝试在 Rx 上使用中断:我希望我的 Arduino 唤醒,每个它都在串行线上接收数据。这在没有 NFC 防护罩的情况下可以正常工作。但是,使用 NFC 屏蔽,它会在串行端口上发送“0”,触发中断,这我真的不想要。

经过一番研究,我发现每次库写入 SPI 引脚时(例如digitalWrite(_clk, LOW);,它返回“0”。

在循环函数中,我有这一行:

因此,每次执行此行时,都会通过串行总线发送一个“0”,并且 Arduino 永远不会进入睡眠模式......(即使没有 NFC 卡可以读取)

有人知道为什么吗?我该如何避免呢?