问题标签 [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.
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,所有卡都会拒绝命令和数据。
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 出现。
embedded - SPI真的需要等待循环吗?
我正在使用带有 IAR Embedded Workbench 5.10 的 msp430f5418。
图形 LCD (ST7565R) 通过 SPI 连接到 MSP..
MSP 主机使用 8 位、MSB 优先模式和 SMCLK。
通常我们必须在使用 SPI 传输字节之前检查忙位,对吗?
但就我而言,即使我在不检查忙位的情况下连续发送数据,它也可以正常工作,并且我可以正确查看显示数据。
任何人都可以解释为什么它工作?
是否需要检查就绪位或是否安全?
谢谢,
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
对非超链接感到抱歉+在此先感谢!
embedded - 设置 RXIF 标志时未调用 PIC32 SPI ISR?
我在从机模式下使用 PIC32MX795F512L SPI3 模块。我的主人正在通过 SPI 线路发送数据,但从未调用过我的奴隶的中断服务程序。RX 中断标志正在从机侧的硬件中设置,我可以读取 SPI3BUF 并获得正确的值,但仍然没有调用 ISR。
这是我的 spi 初始化代码:
这是我的 ISR
我正在使用 MPLAB X 和 C32 编译器。为此,我已经把头撞在墙上了 4 个小时。
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
c - MSP430 上的 SPI 轮询读/写?
抱歉这么简单的问题,但是有没有人有一个 C 示例来初始化 MSP430 为 SPI 模式并执行轮询读写操作?对我来说非常新的东西,不知道从哪里开始。
谢谢。
android - Android:如何与 microSD 卡进行 SPI 通信
我在 Galaxy S(来自三星)上使用 Android 2.3.3(Java)编程。我想使用 microSD 卡作为 GPIO 端口,通过 SPI 与设备进行通信。
我需要使用哪个库来执行此任务?如何执行 SPI 通信(现在我使用经典的 SPI 通信与微控制器和 Android 语言(简单应用程序))。是否有可能做到这一点?如何从 SD 卡引脚读取值(如何声明它们)?
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 的引用。
关于问题出在哪里的任何想法?
serial-port - 来自 SPI 的 Arduino 不需要的传入串行数据
我正在使用带有 NFC Shield 的 Arduino(这个)。我正在尝试在 Rx 上使用中断:我希望我的 Arduino 唤醒,每个它都在串行线上接收数据。这在没有 NFC 防护罩的情况下可以正常工作。但是,使用 NFC 屏蔽,它会在串行端口上发送“0”,触发中断,这我真的不想要。
经过一番研究,我发现每次库写入 SPI 引脚时(例如digitalWrite(_clk, LOW);
,它返回“0”。
在循环函数中,我有这一行:
因此,每次执行此行时,都会通过串行总线发送一个“0”,并且 Arduino 永远不会进入睡眠模式......(即使没有 NFC 卡可以读取)
有人知道为什么吗?我该如何避免呢?