HII 先生,
我是初学者、我正在使用 AM335x 处理器、我需要连接到 SPI 器件的 AM335x 处理器头文件。
您能否为此处理器提供头文件以便我能够访问 SPI 器件。
此致
Niraj Kumar
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.
HII 先生,
我是初学者、我正在使用 AM335x 处理器、我需要连接到 SPI 器件的 AM335x 处理器头文件。
您能否为此处理器提供头文件以便我能够访问 SPI 器件。
此致
Niraj Kumar
Niraj、您好、
开始用户空间 SPI 访问的一个好位置是 AM335x SDK 文档中的"spi"内核驱动程序部分。 转到下面的链接并向下滚动到"Linux 用户空间接口"部分。
我们的 SDK 内核已启用了用户模式 SPI 驱动程序(CONFIG_SPI_SPIDEV)、因此您只需更新器件树、以根据您的硬件/电路板设置添加/公开合适的 SPI 器件(包括相关的引脚多路复用器)。
然后、您可以使用进行实验 spidev_test.c 是内核树的一部分的实用程序(该文件包括您正在查找的与 SPI 相关的头文件、并展示了如何使用这些头文件)。 当然、您可能希望使用交叉编译环境(在 SDK 中称为"Linux Devkit")构建该工具。
git.ti.com/.../spi
下面是一些内核内置 spidev 文档的链接:
git.ti.com/.../spidev.rst
我还建议您针对此主题通过 Google 进行搜索、其中包含了大量关于 AM335x 和 SPI 的在线信息。
此致、Andreas
感谢您的回复
先生、为此、我需要 SDK? 如果我需要 SDK、那么我会为此安装哪个版本。 我无法理解(我们的 SDK 内核已启用了用户模式 SPI 驱动程序(CONFIG_SPI_SPIDEV)此行。
这个(spitest.c)将适用于 SPI 闪存(W25Q64)。
在 Pinmux 中、我们需要设置 CLK、MOSI、MISO 和 CS 引脚的地址?
此致
Niraj Kumar
、此文件(spitest.c)适用于 SPI 闪存(W25Q64)。
实际上、由于您想要访问 SPI 闪存芯片、您应该使用 Linux 内核将其注册为 SPI 闪存、而不是执行在顶部使用一些用户空间代码的通用 spidev。 Linux SPI/Flash 子系统将为您管理与 SPI 内存设备的所有连接,并将它们作为/dev/mtd 设备节点很好地呈现在系统中,以便于访问,提取与这些设备连接所需的所有协议。
您可以找到一个有效的示例、说明如何将其配置为 AM335x ICE 平台的一部分(https://www.ti.com/tool/TMDSICE3359)。
SPI0外设的器件树设置(包括 Pinmux):
git.ti.com/.../am335x-icev2.dts
针对 w25q64闪存访问的器件树设置:
git.ti.com/.../am335x-icev2.dts
此致、Andreas
谢谢您,先生。
我正在尝试为 SPI 闪存(W25Q64)构建 dts 文件、但 方式如下:"目标"arch/arm/dts/am335x-icev1.dtb"的方法失败"。
此处、我已为 spi0添加了我的 DTS 文件(我使用的是 Linux 内核版本:-4.15.0和 SDK 版本:-ti-processor-sdk-linux-am335x-evm-05.01.00.11-linux-x86_Install)
spi0_PINS_DEFAULT:spi0_PINS_DEFAULT{
PINCCTRL-SINGLE、PINS =<
AM33XX_IOPAD (0x950、PIN_INPUT_PULLUP | MUX_MODE0)/*(A17) spi0_SCLK.spi0_SCLK */
AM33XX_IOPAD (0x954、PIN_INPUT_PULLUP | MUX_MODE0)/*(b17) spi0_d0.spi0_d0 */
AM33XX_IOPAD (0x958、PIN_INPUT_PULLUP | MUX_MODE0)/*(b16) spi0_d1.spi0_D1 */
AM33XX_IOPAD (0x95c、PIN_INPUT_PULLUP | MUX_MODE0)/*(a16) spi0_cs0.spi0_cs0 */
AM33XX_IOPAD (0x960、PIN_INPUT_PULLUP | MUX_MODE0)/*(C15) spi0_CS1.spi0_CS1 */
AM33XX_IOPAD (0x9a0、PIN_INPUT_PULLUP | MUX_MODE7)/*(B12) McASP0_aclkr.GPIO3[18]*/
>;
};
------------------
spi0{
状态="可以";
pinctrl-names ="默认";
pinctrl-0 =<&spi0_pins_default>;
SN65HVS882@1{
兼容="pisosr-GPIO";
GPIO 控制器;
#GPIO-CELLS =<2>;
LOAD-GPIO =<&GPIO3 18 GPIO_ACTIVE_LOW>;
寄存器=<1>;
SPI-max-frequency =<1000000>;
spi-cpol;
};
SPI_NOR:闪存@0{
#address-Cells =<1>;
#size-cells =<1>;
/*compatible ="linux, spidev";*/
兼容="Winbond、w25q64"、"JEDEC、SPI-NOR";
SPI-max-frequency =<20000000>;/* 20MHz */
m25p、快速读取;
寄存器=<0>;
/*partition@0 {
标签="u-boot-spl";
寄存器=<0x0 0x80000>;
只读;
};
分区@1{
标签="u-boot";
寄存器=<0x80000 0x100000>;
只读;
};
分区@2{
标签="u-boot-env";
寄存器=<0x180000 0x20000>;
只读;
};
分区@3{
标签="MISC";
REG =<0x1A0000 0x660000>;
};*/
};
};
此致
Niraj Kumar
我们不再支持 SDK v5.x、但我可以尝试提供一些通用建议。
1. 除了您在此提供的单行错误信息之外,还应该有一些上下文,您应该检查是否有线索,通常是行号引用或指向错误位置的内容。
2.此类错误通常是由 DTS 文件中的语法错误或一些无效的 phandle 引用引起的。 DTC 编译器可以是非常挑剔的,甚至一个缺失的分号就足以把它扔掉。 解决这个问题的一种方法是切掉 DTS 文件、直到它开始构建、然后由您知道是什么导致的。
此致、Andreas
我们不再支持 SDK v5.x 或 SDK v6.x 您应该考虑迁移到当前的 SDK 系列(v8.x)、以便获得 官方支持的更好的性能、更丰富的功能和更不易受到攻击/更安全的软件基准。
我正尝试使用 SDK 版本 05.01.00.11进行构建,但未发生这种情况
对于您的特定问题、请确保遵循您正在使用的任何 SDK 版本中的所有设置说明、对于 v05.01.00.11、可以在以下位置找到: https://software-dl.ti.com/processor-sdk-linux/esd/docs/05_01_00_11/linux/index.html
此外、如果没有任何构建/错误日志、也无法在此处指明某个方向。
此致、Andreas