spi

创龙OMAPL138的SPI FLASH读写

半城伤御伤魂 提交于 2019-12-21 00:54:29
1. 目前最大的疑问是OMAPL138和DSP6748的DSP部分是完全一样的吗(虽然知道芯片完全是引脚兼容的)?因此现在使用OMAPL138的DSP内核去读写一下外部的SPI FLASH芯片,先看下原理图,可惜创龙核心板的原理图不开源,所以我肯定不买他们家的板子 2. 尤其是startware这个软件库,究竟是用在ARM还是DSP的怎么区分?看资料ARM似乎可以唤醒DSP核? 3. 心血来潮,测试一下,同一个工程是不是可以同时用在ARM和DSP内核上,只是用不用的GEL文件。经过测试发现,如果建立的工程,选的器件是DSP6748,那么生成的.out文件可以用于DSP核,如果选择的是ARM-OMAPL138那么生成的.out用于ARM核,原来是建立工程的时候选择是ARM核还是DSP核 4. 言归正传,本来是搞SPI FLASH的,话题跑远了 void SPIInterruptInit(void) { // 注册中断服务函数 IntRegister(C674X_MASK_INT4, SPIIsr); // 映射中断事件 IntEventMap(C674X_MASK_INT4, SYS_INT_SPI1_INT); // 使能可屏蔽中断 IntEnable(C674X_MASK_INT4); } /********************************************

How to read data from a serial (SPI) connection in C?

穿精又带淫゛_ 提交于 2019-12-20 04:45:09
问题 I am trying to write a program that will be installed on a Linux MCU (Raspberry Pi) that will read serial data coming to it from yet another MCU (something homegrown that I will build myself). I have researched how to do this and think I have the "big picture" but still missing a few things. For one, I need to enable the kernel module and give myself access to the device: sudo modprobe spi_bcm2708 sudo chown `id -u`.`id -g` /dev/spidev0.* From there I can use this famous C file to test the

SPI四种模式区别

牧云@^-^@ 提交于 2019-12-19 15:16:30
SPI四种模式区别 spi四种模式SPI的相位(CPHA)和极性(CPOL)分别可以为0或1,对应的4种组合构成了SPI的4种模式(mode) Mode 0 CPOL=0, CPHA=0 Mode 1 CPOL=0, CPHA=1 Mode 2 CPOL=1, CPHA=0 Mode 3 CPOL=1, CPHA=1 时钟极性CPOL: 即SPI空闲时,时钟信号SCLK的电平(1:空闲时高电平; 0:空闲时低电平) 时钟相位CPHA: 即SPI在SCLK第几个边沿开始采样(0:第一个边沿开始; 1:第二个边沿开始) sd卡的spi常用的是mode 0 和mode 3,这两种模式的相同的地方是都在时钟上升沿采样传输数据,区别这两种方式的简单方法就是看空闲时,时钟的电平状态,低电平为mode 0 ,高电平为mode 3。 例如这个波形图 (注意红色框) 如果CPOL=0, CPHA=0 ,则miso数据是0x83(10000011) 如果CPOL=0, CPHA=1 ,则miso数据是0x07(00000111) 在用内核自带的linux-kernel/xlnx-4.0/Documentation/spi/spidev_test.c例子,读写内核的spidev.c设备的时候, /spidev_test -r 69 -w 7 写入地址69寄存器,数值7 ./spidev_test -r

STM32F103 spi flash w25q128挂载文件系统fatfs

一笑奈何 提交于 2019-12-18 10:58:41
前言: 本系列博客我们围绕SDIO Wi-Fi模块Marvell8801来揭开SDIO Wi-Fi的神秘面纱,开发MCU选用STM32F103RET6,外设包括SPI FLASH(W25Q128),摄像头(OV7670 FIFO),OLED(SSD1306),USB device,如下图所示: 一共分两个测试例程:1.硬件测试例程 2.Wi-Fi测试例程,分别搭配上位机来测试,上位机测试视频链接如下: TODO:视频教程 我们的目的是引领对无线感兴趣的工程师或者学生快速入门,会通过以下几方面来切入: 分别是: 1)整体介绍篇,主要对开发板做整体介绍 2)硬件篇,主要对板子外设驱动做说明 3)Linux Wi-Fi篇,主要通过Linux来驱动Wi-Fi模组来了解Linux kernel的无线架构 4)自己实现Marvell8801驱动,主要是根据编程手册来自己实现一个SDIO Wi-Fi的驱动 5)LWIP篇,通过移植LWIP来实现驱动的应用 通过以上系列的文章,相信你对Wi-Fi就会有一个深刻的认知,起到举一反三的作用,以后不管是哪个平台(裸奔,RTOS,Linux,Android)说起驱动Wi-Fi你都不会慌张。 我们的优势: 1)代码全部自主研发,会提供更加专业的售后服务 2)上位机测试程序,让你测试起来程序会更加灵活 3)Marvell官方NDA资料(全网独家) 4

Initializing SD card in SPI issues

*爱你&永不变心* 提交于 2019-12-17 18:29:09
问题 I've had a look at Stack Overflow question Initialization of a microSD card using an SPI interface and didn't see any answers that matched my issue (that is, things I haven't already tried). I have a similar issue where I'm trying to access a SD card through a microcontroller's SPI interface (specifically an HC908). I've tried following the flow charts in the Physical Layer Simplified Specification v2.00 and it seems to initialize correctly on Transcend 1 GB & 2 GB and an AE&C 1 GB card. But

Java SPI机制

天大地大妈咪最大 提交于 2019-12-17 17:14:49
SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。 Java SPI 实际上是“ 基于接口的编程+策略模式+配置文件 ”组合实现的动态加载机制。 系统设计的各个抽象,往往有很多不同的实现方案,在面向的对象的设计里,一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。一旦代码里涉及具体的实现类,就违反了可拔插的原则,如果需要替换一种实现,就需要修改代码。为了实现在模块装配的时候能不在程序里动态指明,这就需要一种服务发现机制。 Java SPI就是提供这样的一个机制:为某个接口寻找服务实现的机制。有点类似IOC的思想,就是将装配的控制权移到程序之外,在模块化设计中这个机制尤其重要。所以SPI的核心思想就是 解耦 。 来源: CSDN 作者: 巴哥面试 链接: https://blog.csdn.net/zzl429556205/article/details/103567395

mcp2515带spi的can驱动移植总结

跟風遠走 提交于 2019-12-16 21:54:16
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 最近 LZ 接公司安排任务,移植一款 CAN 总线设备 Mcp2515 。由于在前次任务中有 SPI 经验,所以在接受任务是主要关注此设备采用 SPI 接口。所以一直没有关注 CAN 相关的知识,后续过程中遇到了不少麻烦,走了一些弯路。特把此次移植过程记录整理一下。 CAN 总线是一种在汽车上广泛采用的总线协议,被设计作为汽车环境中的微控制器通讯。 LZ 理论知识有限,网上抄一句介绍的吧。如下: CAN(Controller Area Network) 总线,即控制器局域网总线,是一种有效支持分布式控制或实时控制的串行通信网络。由于其高性能、高可靠性、及独特的设计和适宜的价格而广泛应用于工业现场控制、智能楼宇、医疗器械、交通工具以及传感器等领域,并已被公认为几种最有前途的现场总线之一。 CAN 总线规范已经被国际标准化组织制订为国际标准 ISO11898 ,并得到了众多半导体器件厂商的支持。 我们的产品是作为 CAN 控制端,使用在一个电动汽车公司的汽车上的。该公司提供了单片机的终端设备进行通信调试。所以 LZ 这次任务还要写测试 APK 。这也是 LZ 第一次从 APK 到驱动的一次经验。使一次从上到下的经验,所以值得总结一下下。 此次调试是在 EXYNOS4412 三星四核 CPU 上,采用的是

硬件接口通信速度

偶尔善良 提交于 2019-12-16 19:36:23
1.rs232: 数据传输率是115kbps~230kbps 2.I2C: I2C协议v2.1规定了100K,400K和3.4M三种速率(bps)。 3.SPI: 数据传输速度总体来说比I2C总线要快,速度可达到几Mbps。(另一种说法:SPI是一种事实标准,由Motorola开发,并没有一个官方标准。已知的有的器件SPI已达到50Mbps。具体到产品中SPI的速率主要看主从器件SPI控制器的性能限制。) 4.usb: usb2.0: 30MB/s, 15MB/s usb3.0: 300MB/s, 150MB/s 5.Ethernet: 标准的以太网(10Mbit/s)、快速以太网(100Mbit/s)和10G(10Gbit/s)以太网。它们都符合IEEE 802.3 备注:注意kbps与MB/s的区别 来源: https://www.cnblogs.com/cj2014/p/4153088.html

Dubbo源码分析之 SPI(一)

ぐ巨炮叔叔 提交于 2019-12-16 11:53:29
一、概述 dubbo SPI 在dubbo的作用是基础性的,要想分析研究dubbo的实现原理、dubbo源码,都绕不过 dubbo SPI,掌握dubbo SPI 是征服dubbo的必经之路。 本篇文章会详细介绍dubbo SPI相关的内容,通过源码分析,目标是让读者能通过本篇文章,彻底征服dubbo SPI。 文章的组织方式是先介绍SPI 的概念,通过Java SPI 让大家了解SPI 是什么,怎么用,有一个初步的概念,dubbo的SPI是扩展了Java SPI的内容,自己实现了一个SPI。 二、SPI概念介绍 SPI全称 Service Provider Interface,是一种服务发现机制。我们编程实现一个功能时,经常先抽象一个interface,内部再定一些方法。具体的实现交给 implments了此接口的类,实现了功能和实现类的分离。 我们设想一下,如果一个描述汽车功能的interface Car,存在多个实现类BMW、Benz、Volvo,某个场景调用Car的行驶方法,程序就需要确认到底是需要BMW、Benz、Volvo中的那个类对象。如果硬编码到程序中,固然可以,但是出现了接口和实现类的耦合,缺点也显而易见。 有办法做到在调用代码中不涉及BMW、Benz、Volvo字符,也随意的指定实现类么?当然,SPI就是解决这个问题。 SPI的实现方式是