树莓派I2C发送大数据的坑 lattice crosslink配置
先说结论,用I2C配crosslink估计是不行的,如果你们搜到这篇文章,那就不要想了,抓紧换SPI。
有项目在树莓派平台上需要用I2C把lattice 的crosslink的配置文件发送出去,但是看手册的意思又比较变态,I2C直接发,中间应该是不能有停顿,即不能重启一个I2C消息。
用python尝试了几个方法,思路就是把文件读到一个数组里面,然后再分段把这个数组传输出去。
from periphery import I2Clow_bit_list=[]
try:with open("RAWtoCSI2.bit","rb") as fh:#ba = bytearray(fh.read())low_bit_list = [byte for byte in bytearray(fh.read(-1))]datalen=len(low_bit_list)
except IOError:print("error open file")low_bit_list.append(255)
#msgwrite=I2C.Message(low_bit_list,read=False)
msgs=[]index=0
bufflen=4096
while True:if(index+bufflen<datalen):sendlen=index+bufflenelse:sendlen=-1sendbuff=low_bit_list[index:sendlen]msgwrite=I2C.Message(sendbuff,read=False)msgs.append(msgwrite)print(sendbuff)if(sendlen==-1):breakindex=index+buffleni2c.transfer(devAddr,msgs)
均以失败告终,后来查了一下底层代码,有如下几个问题,如果有不同见解的可以讨论。
- I2C的内核驱动中有明确的数据长度不能超过8192的限制,超过了会报 argument invalid 错误。也就是说I2C.transfer函数的message长度不能超过8192
- I2C的内核驱动又说了,一个message不能超过8192,但是你可以一次性发多个message,最多不能超过42个message。
我尝试了一下思路2,如上的代码就是思路2的,读数据后
msgwrite=I2C.Message(sendbuff,read=false)
msgs.append(msgwrite),
最后所有数据读完了,再一次性
i2c.transfer(devAddr,msgs)
我测试下来是21个msg包,但是改报i2c_transfer: timed out 错。
到此我感觉这个思路应该是不行的,linux驱动里面可能就没打算让你一次性传这么多东西,于是改用SPI接口。还好这个芯片也可以用SPI配置。
如果有人搜到crosslink 配置,希望这篇文章能让你少走点弯路,不要用i2c,用spi会好一点。
树莓派I2C发送大数据的坑 lattice crosslink配置相关推荐
- Qt QTcpSocket 客户端设计(自动重连、多线程处理、发送大数据包、同步方式)
1.头文件 #ifndef TCPTOOL_H #define TCPTOOL_H#include <QObject> #include <QTcpSocket> #inclu ...
- 【大数据技术】centos7下配置hive连接mysql,mysql-connector-java-8.0.26-1.el7.noarch.
[大数据技术]centos7下配置hive连接mysql(配置mysql-connector-java.jar),mysql-connector-java-8.0.26-1.el7.noarch. r ...
- CDH大数据平台搭建之虚拟环境配置
CDH大数据平台搭建之虚拟环境配置 前言 一.虚拟机网络配置 1.配置ip地址 2.验证配置是否成功 二.关闭防火墙 1.防火墙命令 2.禁用防火墙 三.虚拟机主机名配置 1.临时配置主机名 2.永久 ...
- mongoDB大数据查询坑
有一个30亿量级数据的库,如何全量爬取并分析? 因为量级过大无法一次性爬取至本地再分析,考虑使用limit().skip()混合的方法,一次读取1万条数据进行分析存储,30亿数据分成30万份后再合并分 ...
- 大数据技术之 HBase安装配置
大数据技术之 HBase安装 1.hbase依赖于hadoop以及zookeeper,所以 1.1 首先myhadoop.sh start 1.2 然后zk.sh start 接下来安装hbase 1 ...
- JAVA大数据(一)简介-Hadoop环境配置,伪分布式模式架构学习用
文章目录 1.课前资料 2.课程整体介绍 3.大数据介绍 什么是大数据? 为什么要学习大数据? 大数据相关技术 海量数据存储 海量数据清洗 海量数据处理 4.集群环境准备 4.1准备虚拟机 4.2修改 ...
- (非常详细)大数据平台学习·环境安装配置(一)(RockyLinux9版)
一.文章简介 着手搭建大数据平台时,配置虚拟机环境是成为新手的第一道门槛.虽然各种视频和网站上也有很多虚拟机安装配置教程,但由于对 Linux 环境不熟悉,同时加上网上不少教程都是五花八门的cento ...
- 【大数据离线开发】1、大数据准备环境之Linux配置
大数据准备环境 1.1 Linux实验环境 1.1.1 准备Linux操作系统 Linux操作系统:RedHat 7.4 64位 自带netcat服务器(测试:Spark Streaming) VMw ...
- 【kafka】控制台默认不能发送大数据 4096 4095 4129
本文为博主九师兄(QQ:541711153 欢迎来探讨技术)原创文章,未经允许博主不允许转载. 文章目录 1.概述 2.场景再现2 2.1 概述 M.参考 1.概述 因为某些原因,需要做一个测试,然后 ...
最新文章
- 如何为MNIST手写数字分类开发CNN
- python检查URL是否能正常访问
- LeNet试验(二)权重参数随训练的变化
- [蓝桥杯][2014年第五届真题]分糖果-模拟
- P6810 「MCOI-02」Convex Hull 凸包
- 在linux内核3.14.43添加自己的驱动源码,linux内核如何加入自己的驱动
- 精读《手写 SQL 编译器 - 回溯》
- java输入行数打印菱形_JAVA题,输入行数,输入列数,输出一个菱形
- mysql standalone模式_Boss7 Standalone模式开发配置
- 图片格式之YUV420 转RGB格式(含代码)
- DataList的使用,Repeater
- 搜索算法-广度优先和深度优先搜索
- 微信帝国进化史:一个通讯工具如何在八年内制霸互联网?
- double key map 的实现
- 动态规划-最长不下降子序列
- el-checkbox-group 的坑
- 程序员的思维修炼--读书感悟
- “电脑族”保健 六项注意
- 方舟手游服务器设置文件翻译,方舟生存进化手游界面中文翻译 语言不通不发愁...
- 【读书笔记】分布式下服务可靠性保障
热门文章
- Android App的工作原理
- html中<button>按钮标签详细介绍
- 高房价绑架了中国经济...
- Java程序命令行参数总结
- java获取短信验证码_Java如何获取短信验证码
- win7下虚拟机VMWare装linux(ubantu)后挂载win7共享目录
- 【直播预告】CIKM 2022 论文分享:多场景个性化推荐的场景自适应自监督模型
- 【Linux】查看已被占用端口号
- 思科实验-3.3.1.5-Packet Tracer - 配置 PVST+
- STM32学习笔记之Bootloader升级Ymodem协议简介