jiangchecjlu

jiangchecjlu

0个粉丝

15

问答

0

专栏

0

资料

jiangchecjlu  发布于  2016-10-09 09:36:15
采纳率 0%
15个问答
7816

Hi3519 V100R001C01SPC030版SPI0和I2C0无法通信问题

 
大家好:

             我使用了海思3519V100版的SDK,hi3519通过SPI或者I2C进行控制sony imx178 sensor,但是一直通信不成功。

             (1)SPI:使用海思提供的ssp-sony驱动,发现读出来的寄存器值和设置的不同,一直是0xff,波形显示出的值也是0xff

             (2)I2C: i2c量取信号,发现从海思根本没有信号输出。

             请问有没有碰到过这种现象的? 谢谢!
我来回答
回答12个
时间排序
认可量排序

david

33个粉丝

368

问答

253

专栏

229

资料

david 2016-10-09 10:22:34
认可0
i2c 通信高正确了先,用示波器

harold

0个粉丝

11

问答

0

专栏

3

资料

harold 2016-10-11 13:06:05
认可0
硬件问题,有么有clock出来?

falloutmx

1个粉丝

15

问答

0

专栏

0

资料

falloutmx 2016-10-11 13:38:51
认可0
依此检查时钟、管脚复用、外围上下拉

11yichengming

1个粉丝

9

问答

0

专栏

0

资料

11yichengming 2016-11-24 13:12:26
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=39101&ptid=12879]falloutmx 发表于 2016-10-11 13:38[/url]
依此检查时钟、管脚复用、外围上下拉[/quote]

求SDK里面的mpp:'(

lihongfei

0个粉丝

17

问答

0

专栏

2

资料

lihongfei 2017-01-04 11:12:18
认可0
我也遇到同样的问题,基本上目前调试发现驱动sensor之后,毫无反应,只是发现没有中断,但是我用的是imx226

coffeeqiaolian

0个粉丝

2

问答

0

专栏

0

资料

coffeeqiaolian 2017-01-09 13:43:54
认可0
你好,问题解决了吗?我调试3516的时候也发现spi0接口总是配置不成功。

hongwazi

2个粉丝

14

问答

0

专栏

8

资料

hongwazi 2017-03-06 20:32:49
认可0
和你遇到同样的问题,感觉海思的驱动有问题,肯能是spi模块的时钟没有配置。
下面是我测试代码。三个函数。
系统起来之后
依次输入:(配置GPIO复用)
himm 0x1204007c 0x1;    #SPI0_SCL
himm 0x12040080 0x1;    #SPI0_SDO
himm 0x12040084 0x1;    #SPI0_SDI
himm 0x12040088 0x1;    #SPI0_CSN

调用函数接口,示波器抓不到任何信号,求解!
#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif
#endif

#include
#include
#include
#include
#include
#include
#include
#include "hi_comm_video.h"
#include "mpi_sys.h"
#include "hi_spi.h"  
static int g_fd = -1;

int my_spi_init(void)
{
    if(g_fd >= 0)
    {
        return 0;
    }   
    unsigned int value;
    int ret = 0;
    char file_name[] = "/dev/spidev0.0";

    g_fd = open(file_name, 0);
    if (g_fd < 0)
    {
        printf("Open %s error!\n",file_name);
        return -1;
    }

    value = SPI_MODE_3 | SPI_LSB_FIRST;// | SPI_LOOP;
    ret = ioctl(g_fd, SPI_IOC_WR_MODE, &value);
    if (ret < 0)
    {
        printf("ioctl SPI_IOC_WR_MODE err, value = %d ret = %d\n", value, ret);
        return ret;
    }

    value = 8;
    ret = ioctl(g_fd, SPI_IOC_WR_BITS_PER_WORD, &value);
    if (ret < 0)
    {
        printf("ioctl SPI_IOC_WR_BITS_PER_WORD err, value = %d ret = %d\n",value, ret);
        return ret;
    }

    value = 2000000;
    ret = ioctl(g_fd, SPI_IOC_WR_MAX_SPEED_HZ, &value);
    if (ret < 0)
    {
        printf("ioctl SPI_IOC_WR_MAX_SPEED_HZ err, value = %d ret = %d\n",value, ret);
        return ret;
    }

    return 0;
}

int my_spi_exit(void)
{
    if (g_fd >= 0)
    {
        close(g_fd);
        g_fd = -1;
        return 0;
    }
    return -1;
}

int my_spi_write(unsigned int addr, unsigned char data)
{
    int ret;
    struct spi_ioc_transfer mesg[1];
    unsigned char  tx_buf[8] = {0};
    unsigned char  rx_buf[8] = {0};
   
   
    tx_buf[0] = 0x81;
    tx_buf[1] = addr >> 8;
    tx_buf[2] = addr & 0xff;
    tx_buf[3] = data;

    memset(mesg, 0, sizeof(mesg));  
    mesg[0].tx_buf = (__u32)tx_buf;  
    mesg[0].len    = 4;  
    mesg[0].rx_buf = (__u32)rx_buf;
    mesg[0].cs_change = 1;

    ret = ioctl(g_fd, SPI_IOC_MESSAGE(1), mesg);
    if (ret < 0) {  
        printf("SPI_IOC_MESSAGE error \n");  
        return -1;  
    }

    return 0;
}


int my_spi_read(unsigned int addr)
{
    int ret = 0;
    struct spi_ioc_transfer mesg[1];
    unsigned char  tx_buf[8] = {0};
    unsigned char  rx_buf[8] = {0};
   

    tx_buf[0] = 0x80;
    tx_buf[1] = addr >> 8;
    tx_buf[2] = addr & 0xff;
    tx_buf[3] = 0;

    memset(mesg, 0, sizeof(mesg));
    mesg[0].tx_buf = (__u32)tx_buf;
    mesg[0].len    = 4;
    mesg[0].rx_buf = (__u32)rx_buf;
    mesg[0].cs_change = 1;

    ret = ioctl(g_fd, SPI_IOC_MESSAGE(1), mesg);
    if (ret  < 0) {  
        printf("SPI_IOC_MESSAGE error \n");  
        return -1;  
    }
   
    return rx_buf[3];
}


#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif


qqq306922360

0个粉丝

16

问答

0

专栏

0

资料

qqq306922360 2017-05-08 17:08:57
认可0
和楼上函数改的基本差不多,只是我是SDI的输入,目前ssp_read后   没有任何波形


freewzf

0个粉丝

1

问答

0

专栏

0

资料

freewzf 2017-06-12 17:43:20
认可0
请问你的imx226在3519v100上跑起来了吗

anlmb

0个粉丝

1

问答

0

专栏

0

资料

anlmb 2017-10-23 19:56:16
认可0

请问你的imx226在3519v100上跑起来了吗:'(

qn1542689571

0个粉丝

4

问答

0

专栏

0

资料

qn1542689571 2018-12-31 18:06:42
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=46131&ptid=12879]hongwazi 发表于 2017-3-6 20:32[/url]
和你遇到同样的问题,感觉海思的驱动有问题,肯能是spi模块的时钟没有配置。
下面是我测试代码。三个函数 ...[/quote]

我的也是 ,你的问题解决了吗 ?

hero

0个粉丝

1

问答

0

专栏

0

资料

hero 2017-10-24 08:39:45
认可0
:lol:lol:lol:lol:lol:lol:lol
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区