明远智睿技术论坛

 找回密码
 立即注册
搜索
查看: 8407|回复: 7
打印 上一主题 下一主题

imx6q spi 片选工作状态不正确

[复制链接]

2

主题

4

帖子

28

积分

新手上路

Rank: 1

积分
28
跳转到指定楼层
楼主
发表于 2016-12-5 09:59:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

各位好!

       我用的是imx6q  ek200核心板  内核用的是3.0.35,在board-myimx6ek200.c中添加 spi0.0  spi1.0,片选工作状态和正常工作状态正好相反(没有发送数据时是低电平发送的时候反而拉高),请问一下我该如何处理 ,谢谢
回复

使用道具 举报

36

主题

745

帖子

2872

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2872
沙发
发表于 2016-12-5 10:04:00 | 只看该作者
你怎么修改的能贴出来嘛,我这边看看
回复 支持 反对

使用道具 举报

2

主题

4

帖子

28

积分

新手上路

Rank: 1

积分
28
板凳
 楼主| 发表于 2016-12-5 10:08:45 | 只看该作者
软件01 发表于 2016-12-5 10:04
你怎么修改的能贴出来嘛,我这边看看

#define SABRESD_ECSPI1_CS1         IMX_GPIO_NR(2, 30) //liupeibin  #define SABRESD_ECSPI1_CS1         IMX_GPIO_NR(3, 19)
#define SABRESD_ECSPI2_CS0        IMX_GPIO_NR(2, 26)



static struct spi_board_info imx6_sabresd_spi_nor_device[] __initdata = {

        {
                .modalias = "spidev",
                .max_speed_hz = 500000, /* max spi clock (SCK) speed in HZ */
                .bus_num = 0,
                .chip_select = 0,
                .mode = SPI_MODE_0,
        },

};
static struct spi_board_info imx6_sabresd_spi_device[] __initdata = {
        {
                .modalias = "spidev",
                .max_speed_hz = 500000, /* max spi clock (SCK) speed in HZ */
                .bus_num = 1,
                .chip_select = 0,
                .mode = SPI_MODE_0,
        },
};

static void spi_device_init(void)
{
        spi_register_board_info(imx6_sabresd_spi_nor_device,
                                ARRAY_SIZE(imx6_sabresd_spi_nor_device));
        //liupeibin 20161201
        gpio_set_value(SABRESD_ECSPI1_CS1, 1);
}

static void spi2_device_init(void)
{
        spi_register_board_info(imx6_sabresd_spi_device,
                                ARRAY_SIZE(imx6_sabresd_spi_device));
        //liupeibin 20161201
        gpio_set_value(SABRESD_ECSPI2_CS0, 1);
}
回复 支持 反对

使用道具 举报

36

主题

745

帖子

2872

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2872
地板
发表于 2016-12-5 11:43:20 | 只看该作者
Samu 发表于 2016-12-5 10:08
#define SABRESD_ECSPI1_CS1         IMX_GPIO_NR(2, 30) //liupeibin  #define SABRESD_ECSPI1_CS1         IMX_GPIO_N ...

我们已经写了spi1.0这是硬件的SPI2,如果想测试SPI1的话,需要增加结构,还有就是SPI跟I2C都是可以挂载多个设备的,所以你应该增加结构数据就行。
static struct spi_board_info imx6_sabresd_spi_nor_device[] __initdata = {
#if defined(CONFIG_MTD_M25P80)
        {
                .modalias = "m25p80",
                .max_speed_hz = 20000000, /* max spi clock (SCK) speed in HZ */
                .bus_num = 0,
                .chip_select = 0,
                .platform_data = &imx6_sabresd__spi_flash_data,
        },
#endif

        {
                .modalias = "spidev",
                .max_speed_hz = 500000, /* max spi clock (SCK) speed in HZ */
                .bus_num = 0,
                .chip_select = 1,
                .mode = SPI_MODE_0,
        },
};

static int mx6q_sabresd_spi_cs[] = {
        SABRESD_ECSPI1_CS1,
        SABRESD_ECSPI1_CS12,//自己增加的SPI片选
};
回复 支持 反对

使用道具 举报

2

主题

4

帖子

28

积分

新手上路

Rank: 1

积分
28
5#
 楼主| 发表于 2016-12-5 11:49:27 | 只看该作者
软件01 发表于 2016-12-5 11:43
我们已经写了spi1.0这是硬件的SPI2,如果想测试SPI1的话,需要增加结构,还有就是SPI跟I2C都是可以挂载多 ...

我们底板 没有实现 一个spi 挂载多个设备  硬件上分别用一路spi挂载一路射频芯片,驱动射频,还有我测试的就是你们提供的SPI  1.0片选  电平变化不正常
回复 支持 反对

使用道具 举报

3

主题

11

帖子

53

积分

注册会员

Rank: 2

积分
53
6#
发表于 2016-12-22 20:49:56 | 只看该作者
软件01 发表于 2016-12-5 11:43
我们已经写了spi1.0这是硬件的SPI2,如果想测试SPI1的话,需要增加结构,还有就是SPI跟I2C都是可以挂载多 ...

求助按照上面的代码修改结构能够烧录新的Linux3.0.35内核能够使得其/dev下出现可以使用的spidev0.0么?
我除了没有增加ECSPI1额外的片选,其他一致,重新编译了内核烧录后没有/dev下没有新的spidev设备文件啊
回复 支持 反对

使用道具 举报

3

主题

11

帖子

53

积分

注册会员

Rank: 2

积分
53
7#
发表于 2016-12-23 00:57:09 | 只看该作者
软件01 发表于 2016-12-5 11:43
我们已经写了spi1.0这是硬件的SPI2,如果想测试SPI1的话,需要增加结构,还有就是SPI跟I2C都是可以挂载多 ...

还有我们IMX6QEK200的评估板支持单独更新内核么,调试时每次更新内核烧录Ubuntu12.04就得好久,我记得之前有些板子可以通过MiniTools只选择更新烧录内核或者文件系统,不知道我们的评估板支持与否?
回复 支持 反对

使用道具 举报

0

主题

146

帖子

432

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
432
8#
发表于 2017-1-11 17:17:50 | 只看该作者
zarveent 发表于 2016-12-23 00:57
还有我们IMX6QEK200的评估板支持单独更新内核么,调试时每次更新内核烧录Ubuntu12.04就得好久,我记得之 ...

我们在 u-boot 里封装了 update_* 等命令,具体可通过 printenv 查看。电脑开启 tftp 服务,板子连接电脑,在 u-boot 下执行 run update_* 等命令可更新相应的 image。
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|明远智睿  

GMT+8, 2024-5-3 22:13 , Processed in 0.059480 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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