spi

Python IOError: [Errno 90] Message too long, Passing long list to SPI function

时光总嘲笑我的痴心妄想 提交于 2021-01-24 09:50:23
问题 I'm programming my A13-OLinuXino-MICRO using the provided pyA13 0.2.2 SPI driver to send data to an LCD. Ideally I would like to send a list containing 320*240*2 (320*240 pixel 16 bits per color) bytes to be written in one continuous write command to be speed efficient. The drivers in spi.c and spi_lib.c had an 8bit tx_len which limited me to 256 bytes so I modified them to 32bit which worked but now I receive an error when I try to pass a list that is more than 4096 values long in my spi

Nand Flash 和Nor Flash的区别详解

拜拜、爱过 提交于 2021-01-24 05:46:29
写在前面:   Flash存储器在嵌入式开发实施中有着重要位置,文本介绍一些关于Flash存储器的知识。   本文内容如下:   (一) Nand Flash和Nor Flash存储器简介   (二) Nand Flash和Nor Flash原理     (2-1) 存储数据的原理     (2-2) 浮栅的重放电     (2-3) 0和1     (2-4) 连接和编码方式      (三) Nand Flash和Nor Flash的区别     (3-1) Nand Flash 和Nor Flash的性能比较     (3-2) Nand Flash 和Nor Flash的接口差别     (3-3) Nand Flash 和Nor Flash的容量和成本     (3-4) Nand Flash 和Nor Flash的可靠性和耐用性     (3-5) Nand Flash 和Nor Flash的寿命(耐用性)     (3-6) 位交换     (3-7) EDC/ECC算法     (3-8) 坏块处理     (3-9) 易于使用     (3-10) 软件支持   (四) Flash存储器的应用     (4-1) 序列接口闪存     (4-2) 固件存储     (4-3) 闪存作为硬盘的替代品     (4-4) 闪存作为随机存取存储器     (4-5)

EC600S-CN CAT1通信模组,2G退网升级4G如何选择,QuecPython开发资源下载

本秂侑毒 提交于 2021-01-23 12:49:57
1.EC600S-CN 简介 EC600S-CN是移远通信Quectel最新推出的4G LTE CAT1通信模组,支持最大下行速率10Mbps和最大上行速率5Mbps。LCC-76 + LGA-16 (共92引脚)的封装,尺寸仅为 22.9mm x23.9mm x2.4mm 大小,很容易嵌入到移动设备当中,能满足几乎所有M2M应用需求,例如:自动化领域、智能计量、跟踪系统、安防系统、路由器、无线POS机、移动计算设备、PDA电话和平板电脑等。 2.2G退网升级4G如何选择 鉴于国内运营商没有架设LTE-M网络,CAT1是LTE-M应用的较好替代者。NB-IOT的超低功耗、高增益、广覆盖的特性很好,但不能满足跨基站移动、低时延、中数据速率的应用。所以如果是因为2G频段的逐步退网,要升级到4G来接替产品的剩余生命周期,首先需要对自己的产品合理分析: 1.需不需要跨基站移动; 2.能否承受1~10s乃至更高的时延; 3.20KB/s的通信速率能否满足产品需求; 4.是否需要基站定位功能、实时语音通话功能。 以上四个问题,但凡有一个是硬性指标,都不建议使用 NB-IOT,推荐用CAT1。(LTE-M比CAT1更合适,但目前国内没有布局LTE-M网络,享受不到其带来的好处) 3.EC600S-CN的基本参数 EC600S-CN是一款 LTE-FDD/LTE-TDD/GSM 无线通信模块,支持

目标反射回波检测算法及其FPGA实现 之三:平方、积分电路及算法的顶层FPGA实现

点点圈 提交于 2021-01-23 05:00:22
目标反射回波检测算法及其FPGA实现 之三: 平方、积分电路及算法的顶层FPGA实现 前段时间,接触了一个声呐目标反射回波检测的项目。声呐接收机要实现的核心功能是在含有大量噪声的反射回波中,识别出发射机发出的激励信号的回波。我会分几篇文章分享这个基于FPGA的回波识别算法的开发过程和原码,欢迎大家不吝赐教。以下原创内容欢迎网友转载,但请注明出处: https://www.cnblogs.com/helesheng 。 在本系列博文的第一篇中,根据仿真结果,我认为采用“反射回波和激励信号互相关”的结果来计算目标距离的方法具有较高性能和计算效率。在本系列的第二篇博文中,我在Cyclone系列的低成本FPGA中采用半并行的“双存储器式的卷积节”结构实现了数据的互相关/卷积/FIR滤波器计算。作为本系列的第三篇博文,我将实现互相关信号的平方和积分计算,并将所有算法在顶层文件中结合为一个整体。 从而通过寻找 的极值点所在位置来确定目标反射回波出现的时间点。 (1)式中的 是互相关算法部分,其FPGA实现已在前文中介绍过。根据前文定义的符号,将离散化后的互相关信号记为R[k]。进一步离散化后可将(1)改写为如下FPGA能够实现的形式: 一、平方电路的实现 使用Quartus-II中的MegaWizard配置平方计算电路,其结构如下图所示。 图1 平方电路配置 二、积分电路设计 根据(2)式

SPI Flash(W25Q16DV) 驱动

南楼画角 提交于 2021-01-22 04:42:19
大体上可分为以下几个部分: 1.注册设备驱动 spi_register_driver 2.分配 mtd_info 结构体 3.配置 mtd_info 结构体 4.注册 mtd_info 结构体 构建 spi_driver 并注册 static struct spi_driver spi_flash_drv = { .driver = { .name = "spi_flash", .owner = THIS_MODULE, }, .probe = spi_flash_probe, .remove = __devexit_p(spi_flash_remove), }; static int spi_flash_init(void) { return spi_register_driver(&spi_flash_drv); } 当内核中注册了同名的设备,会调用该驱动的 probe 程序 /* 分配 mtd_info 结构体 */ static struct mtd_info spi_flash_dev; static int __devinit spi_flash_probe(struct spi_device *spi) { int mid, did; spi_flash = spi; s3c2410_gpio_cfgpin(spi->chip_select, S3C2410_GPIO

SPI接口的FLASH

て烟熏妆下的殇ゞ 提交于 2021-01-22 04:24:21
SPI flash W25Qxx: W25Q系列的spiflash。每页(Page)256B,每16个page为一个sector(扇区=4KB),每16个扇区为一个block(块=64KB) W25Q16=16Mb=2MB=2048KB=32block=512sector=8192page; 操作:SPI flash写操作必须确保为0XFF才能写入,否则需要檫除操作,檫除的最小单位为Sector即4KB,所以有的会在单片机内部开一个4K的缓存(有点奢侈),写之前先读出来,檫除数据,合并数据(在檫除数据的同时进行操作,合并完了在检查檫除是否完成,不闲着;操作系统级的 将因此进入挂起。要么设定一个合适的超时时间,要么有一个专门的轮训这些标志完成则发信号量),再写入。 驱动程序:https://blog.csdn.net/weixin_42381351/article/details/80813104 SPI SPI flash驱动规范: 1 硬件SPI/软件SPI涉及的MOSI/MISO/SCK的IO设置、SPI设置读写一个字节。 2 存储器件IC涉及的片选、调用SPI读写一个字节操作在某个指定地址读写一个字节/多个字节,檫除等操作。 3业务层次的读写记录,APP升级等。 一主多从可以通过不同片选来发送(都片选则都会收到),但对接收,如果关闭某个片选则可能得不到及时相应

Kintex-7 FPGA SFP+光口的10G UDP网络通信开发案例|基于FPGA的光口通信开发案例

做~自己de王妃 提交于 2021-01-21 21:05:22
前言 自著名华人物理学家高锟先生提出“光传输理论”,实用化的光纤传输产品始于1976年,经历了PDH→SDH→DWDM→ASON→MSTP的发展历程。本世纪初期,ASON/OADM技术已在通信技术当中广泛应用,逐渐发展成为以骨干网络传输为介质的ROADM技术。 图1 光通信技术具有如下特点: (1) 信息容量大。 (2) 损耗低,可长距离传送。 (3) 抗电磁干扰能力强。 (4) 安全性能和保密性好。 (5) 重量轻,体积小,便于施工维护。 (6) 原材料来源丰富潜在价格低廉。 得益于以上特点,光通信在软件无线电、视频追踪、光电探测、定位导航、水下通信、电力设备等场合应用十分广泛。而10G光模块经历了从300Pin、XENPAK、X2、XFP的发展,最终实现了用和SFP一样的尺寸传输10G的信号,这就是SFP+。SFP凭借其小型化、低成本等优势满足了设备对光模块高密度的需求,从2002年标准推行到2010年,已经取代XFP成为10G市场主流。 创龙科技(Tronlong)的Kintex-7、Zynq-7045/7100等处理板卡已提供2/4通道SFP+光口,可实现UDP或Aurora 10G光口通信。本文将为您分享基于Kintex-7 FPGA SFP+光口的10G UDP网络通信开发案例。如需基于Kinte-7 FPGA或者ZYNQ的Aurora开发案例,欢迎与我们联系。 1

如何在OrangePi Zero2开发板上连接3.2寸树莓派SPI LCD显示屏

心不动则不痛 提交于 2021-01-21 16:30:34
香橙派Zero2开发板采用全志H616 四核 64位处理器,拥有512MB/1GB 内存可选,集成千兆以太网卡、蓝牙5.0+双频WiFi、Micro-HDMI输出、USB2.0、13pin、26pin扩展功能口等端口,适配了安卓10、Ubuntu和Debian等操作系统。 下面将给大家介绍通过26pin扩展口连接树莓派3.2寸SPI LCD显示屏的操作。 1) 测试的 LCD 显示屏详情页链接如下 2) LCD 显示屏和开发板接线方式如下所示 3) 将 LCD 显示屏接到开发板后,再使用下面的命令加载 fbtft_device 内核模块 4) fbtft_device 内核模块加载时 dmesg 命令正确的输出 log 如下所示,而且由 log 可 以知道 LCD 屏幕使用的 framebuffer 为 fb1 5) 然后使用下面的命令就可以在 LCD 屏幕上显示 Orange Pi 的 logo 图片 6) 还可以将 tty1 的输出映射到 LCD 屏幕的 fb 设备——fb1,映射完后,HDMI 就不 会再有图像输出了 如果要切换回 HDMI 显示,请使用下面的命令 下面是运行 htop 命令的输出 7) 由于默认的终端字体太大,导致屏幕无法显示太多的内容,可以通过下面的方法 来缩小终端的字体 a. 首先运行 dpkg-reconfigure console-setup) b.

Vivado SPI Flash程序下载

柔情痞子 提交于 2021-01-21 14:12:33
由于Vivado下载程序步骤和ISE有较大差异,特此写此文章,希望对大家有所帮助。 1,下载文件生成 在.bit文件生成后,在TCL中输入 write_cfgmem -format mcs -interface spix4 -size 16 -loadbit "up 0x0 F:/Git/XGA/Display_HDMI/Display.runs/impl_2/Display.bit" -file FPGA_TOP .mcs 1 spix4为模式设置。 -size 16为Flash大小,单位Byte。 即可得到FPGA_TOP.mcs和FPGA_TOP.prm两个文件,后边需要用到这两个文件。 1 2 3 4 A&Q:提示bit位宽错误 ERROR: [Writecfgmem 68- 20] SPI_BUSWIDTH property is set to "1" on bitfile F:/Git/XGA/Display_HDMI/Display.runs/impl_2/Display.bit. This property has to be set to "4" to generate a configuration memory file for the SPIX4 interface. Please ensure that a valid value has been set

【再见,2020】rt-thread 入门系列之先用后学

你说的曾经没有我的故事 提交于 2021-01-18 16:28:14
学一样新东西的时候, 一开始从心底都是抵触的, 需要不断在获取正反馈, 才能快速掌握新新知识. 克服抵制心理. rt thread 学习网站 https://www.rt-thread.org/document/site/ 1 rt thread 之缘 1.1 从裸机开发开始 在学校里进行开发的时候, 学长和老师教会了一些前后台的逻辑, 定时器轮询任务, 以这样来的方式开发智能车或者其他电子产品, 那个时候还好, 偶尔了解到rtos 之类的, 一看望去, 原理好复杂啊, 就没细学,一没必要, 二也学不会.所以一直用着前后台的逻辑编写代码. 1.2 单片机的分身术 后来工作了, 前后台的写法, 已经无法完成一些逻辑复杂的任务了, 刚好空挡期就学会了ucos操作系统, 因为是抱着一个明确目标去学习用, 只是想实现多个while(1) 的循环体, 然后发现原来用起来很简单,一个创建任务的函数就搞定了,真就是把单片机拆分成数个单片机一起用了, 学完创建任务的功能后, 有一种春风得意马蹄疾的快感, 这样键盘任务, 和显示任务, 计算任务, 就非常容易去理清逻辑了. 然后那时候的感觉就是, rtos这样太简单了, 果然还是裸机开发下, 程序驱动的移植, 和调试比较重要, 操作系统也没那么神奇, 但是真好用. 实现了多任务, 已经能够解决那时候工作比较棘手的问题, 关于线程通信, 说来惭愧,