This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
我正在 使用 OSD3358-SM-RED 开发板进行一些 SPI 测试、我真的很困惑。
这是我第一次使用 AM3358器件。 这也是我的第一篇文章,所以我道歉,如果它缺乏信息或在错误的类别。 请就我错过的内容向我提出问题和/或将其移至其他主题。
我们正在使用 Yocto Warrior 发行版中的内核(我知道它很旧,但我们可以轻松地启动板)。 内核版本为 5.0.13.
在使用 pinmux 工具并参考各种技术参考手册后、我已将以下内容添加到器件树中。
SPI1{&S}
状态="可以";
pinctrl-names ="默认";
pinctrl-0 =<&myspi1_pins_default>;
num-chipselects =<1>;
is-decoded-cs =<0>;
SPI@0{
兼容="linux, spidev";
SPI-max-frequency =<48000000>;
寄存器=<0>;
};
myspi1_pins_default:myspi1-default-pins{
PINCCTRL-SINGLE、PINS =<
/*分配给 SPI1的引脚*/
AM33XX_IOPAD (0x990、PIN_OUTPUT | MUX_MODE3)/*(A1:A13) McASP0_aclkx.SPI1_SCLK - SPI1_SCLK */
AM33XX_IOPAD (0x994、PIN_INPUT | MUX_MODE3)/*(A2:B13) McASP0_FSX.SPI1_d0 - SPI1_D0 */
AM33XX_IOPAD (0x998、PIN_OUTPUT | MUX_MODE3)/*(B2:D12) McASP0_axr0.SPI1_D1 - SPI1_D1 */
AM33XX_IOPAD (0x99c、PIN_OUTPUT | MUX_MODE3)/*(B1:C12) McASP0_ahclkr.SPI1_cs0 - SPI1_CS0 */
>;
};
我配置了器件树、将4个信号(clk、mosi、miso 和 cs)呈现给开发板上的其中一个 Cape 接头。 我将一个分析器连接到 clk 和 mosi 线路。 我还 将 MOSI 和 MISO 线路连接在一起、因此一切都应该环回。
当我使用上述器件树引导处理器时、我会创建一个 SPI 器件(/dev/spidev1.0)。 我下拉了 spidev_test.c (https://github.com/rm-hull/spidev-test/blob/master/spidev_test.c)并使用它来测试我的配置。 使用分析器并且 bits_per_word 设置为32、我可以看到正确的时钟数(32)和正在驱动的正确数据。 但是、无论我做什么、我都会一直得到 0返回。(spidev_test 始终指示0正在传输到中)。 我还绑定了 MISO 引脚、但仍然不读取任何内容。
因为我是一个新手在这个领域,我不知道接下来要尝试什么。 似乎所有配置都正确、但我很可能缺少一些东西。 无论我做什么、都没有任何反馈到 spidev_test 中。 任何关于如何尝试的建议都是非常有益的。 如果以上内容不够详细、我会再次道歉。 请提问、我会跟进更多信息。
提前感谢您的支持和想法。
您好!
我们将在下周同一时间再见。 请注意、这个主题在 E2E 论坛上出现了很多次、因此您可能需要在此期间搜索一下。 可能是您的引脚方向未按需要配置;因此最好在 E2E 论坛或内核源代码中找到一个可正常工作的示例、然后从此处开始。
此致、Andreas