beiqibing_000 发表于 2016-12-22 20:52:49

283的spi接口

参照文档MY-IMX28 Linux-2.6.35 用户手册 v1.0.pdf文档描述,关于spi的测试部分
我在spi_tect.c中看到有配置spi的模式,读写模式
        /*
       * spi mode
       */
        ret = ioctl(fd, SPI_IOC_WR_MODE, &mode);
        if (ret == -1)
                pabort("can't set spi mode");

        ret = ioctl(fd, SPI_IOC_RD_MODE, &mode);
        if (ret == -1)
                pabort("can't get spi mode");



文档中写到“SPI 接口为半双工模式”,这个是什么意思,这个spi只能发或者只能写吗,是硬件驱动设计决定的吗?一般spi不都是全双工的吗?如何改成全双工的spi,不太懂,请指教



软件01 发表于 2016-12-23 16:45:16

IMX283的CPU决定的,改不的了,不能自发自收,其他都可以

beiqibing_000 发表于 2016-12-23 17:03:07

软件01 发表于 2016-12-23 16:45
IMX283的CPU决定的,改不的了,不能自发自收,其他都可以

mode 模式我设置如下,只要设置mode就无法设置模式,默认mode为0,倒是可以打开设备,其他情况均无法设置模式,设置模式失败
    mode = mode | SPI_MODE_0 | SPI_CS_HIGH | SPI_LSB_FIRST;
    ret = ::ioctl(fd,SPI_IOC_WR_MODE,&mode);
    if(ret == -1)
    {
      QMessageBox::about(this,"error","SPI_IOC_WR_MODE failure");
      exit(0);
    }

什么情况,是参照spi_test.c写的,请指教

软件01 发表于 2016-12-26 10:04:54


static struct spi_board_info spi_devboard_info[] __initdata = {
#if defined(CONFIG_SPI_MXS) || defined(CONFIG_SPI_MXS_MODULE)

{

/* the modalias must be the same as spi device driver name */

.modalias = "spidev", /* Name of spi_driver for this device */

.max_speed_hz = 20000000,   /* max spi clock (SCK) speed in HZ */

.bus_num = 1, /* Framework bus number */

.chip_select = 0, /* Framework chip select. */

.mode = SPI_MODE_0,

},

#endif
你可以直接改班级文件的.mode = SPI_MODE_0,或者去掉,在测试源码都可以测试吧
页: [1]
查看完整版本: 283的spi接口