OpenEdv-开源电子网

 找回密码
 立即注册
查看: 133|回复: 1

【AtomPi RK3568】SPI的MOSI引脚无信号,SPI无法使用

[复制链接]

1

主题

8

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2020-6-29
在线时间
7 小时
发表于 2024-5-9 00:35:12 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 梦星银魂 于 2024-5-9 00:37 编辑

所使用到的SPI引脚:
GPIO4_C2_d  GPIO4_C3_d   GPIO4_C5_d
CS引脚采用 GPIO4_C4 的GPIO功能,SPI接淘宝常见的SPI FLASH模块w25q32:

初始化的第一条指令先读SPI FLash的ID,结果发现,全是0,仿佛SPI没启动起来。
不接SPI FLASH,直接接逻辑分析仪,发现SPI的CLK有输出,但是MOSI始终为0

本人使用的设备树:
rk3568-atk-atompi-ca1.dts
...
&spi3{
        /* 选择引脚 */
        pinctrl-names = "default";
        pinctrl-0 = <&spiflash_gpio>;
        status = "okay";
        flash_w25q32:w25q32@00{
                reg = <0x00>;
                compatible = "alientek,w25q32";
                spi-max-frequency = <24000000>;
                /* 选择引脚GPIO4_C4 默认状态下是高电平 */
                cs-gpio = <&gpio4 RK_PC4 GPIO_ACTIVE_HIGH>;
        };
};

&pinctrl {
...
        /* spi flash gpio 引脚 */
        spiflash{
                spiflash_gpio:pinspiflash{
                        rockchip,pins =
                                /* spi3_clkm1 */ /* 这里的软件配置上拉不知道有没有鸟用 */
                                <4 RK_PC2 2 &pcfg_pull_up_drv_level_1>,
                                /* spi3_misom1 */
                                <4 RK_PC5 2 &pcfg_pull_up_drv_level_1>,
                                /* spi3_mosim1 */
                                <4 RK_PC3 2 &pcfg_pull_up_drv_level_1>,
                                /* cs gpio */
                                <4 RK_PC4 RK_FUNC_GPIO &pcfg_pull_up_drv_level_1>;
                };
        };

...
};


所使用到的测试驱动文件已经放到了附件中,出问题的是:
static int spi_read_w25x_id_0(struct spi_device *spi)
{
    int status = 0;
    char tbuf[5] = {READ_UID}; //READ_UID为0x9F 读取SPI Flash的ID
    char rbuf[5] = {0};

    struct spi_transfer t = {
        .tx_buf = tbuf,
        .len    = ARRAY_SIZE(tbuf),
    };
    struct spi_transfer r = {
        .rx_buf = rbuf,
        .len    = ARRAY_SIZE(rbuf),
    };
    struct spi_message  m = {0};
    spi_message_init(&m);
    spi_message_add_tail(&t, &m);
    spi_message_add_tail(&r, &m);
    status = spi_sync(spi, &m);
    dev_err(&spi->dev, "ID =%02x %02x %02x %02x %02x\r\n", \
            rbuf[0], rbuf[1], rbuf[2], rbuf[3], rbuf[4]);
    return status;
}

MOSI引脚一直没信号。

恳请论坛里的高手或者官方大大能给与解答,不胜感激之至。

所使用到的SPI引脚

所使用到的SPI引脚
CLK有信号,MOSI无信号.png

spi_flash_driver.zip

4.8 KB, 下载次数: 0

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2020-6-29
在线时间
7 小时
 楼主| 发表于 2024-5-10 01:36:05 | 显示全部楼层
已解决
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-6-10 17:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表