SPI通信联动报警主机 w110 ioMCU的io口设置

一个芯片和单片机是spi通信的,spi通信那部分,和单片机任意io口连接都可以吗?_百度知道
一个芯片和单片机是spi通信的,spi通信那部分,和单片机任意io口连接都可以吗?
我有更好的答案
spi是一种协议,串行接口,及数据和命令都在同一个接口上。参照spi协议,在io口上实现电平变化即可。
那SCLK时钟那部分要接单片机的哪里呢?
采纳率:50%
为您推荐:
其他类似问题
spi的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。用GPIO模拟SPI通信的一个小而关键的问题
[问题点数:20分,结帖人cjsyou]
本版专家分:0
结帖率 66.67%
CSDN今日推荐
本版专家分:484
本版专家分:7282
本版专家分:2762
本版专家分:0
结帖率 66.67%
本版专家分:0
匿名用户不能发表回复!|
CSDN今日推荐单片机SPI通信接口
  SPI 是英语 Serial Peripheral Interface 的缩写,顾名思义就是串行外围设备接口。SPI 是一种高速的、全双工、同步通信总线,标准的 SPI 也仅仅使用 4 个引脚,常用于单片机和 EEPROM、FLASH、实时时钟、数字信号处理器等器件的通信。SPI 通信原理比 I2C要简单,它主要是主从方式通信,这种模式通常只有一个主机和一个或者多个从机,标准的 SPI 是 4 根线,分别是 SSEL(片选,也写作 SCS)、SCLK(时钟,也写作 SCK)、MOSI(主机输出从机输入Master Output/Slave Input)和 MISO(主机输入从机输出 Master Input/Slave Output)。
  SSEL:从设备片选使能信号。如果从设备是低电平使能的话,当拉低这个引脚后,从设备就会被选中,主机和这个被选中的从机进行通信。
  SCLK:时钟信号,由主机产生,和 I2C通信的 SCL 有点类似。
  MOSI:主机给从机发送指令或者数据的通道。
  MISO:主机读取从机的状态或者数据的通道。
  在某些情况下,我们也可以用 3 根线的 SPI 或者 2 根线的 SPI 进行通信。比如主机只给从机发送命令,从机不需要回复数据的时候,那么 MISO 就可以不要;而在主机只读取从机的数据,不需要给从机发送指令的时候,那 MOSI 就可以不要;当一个主机一个从机的时候,从机的片选有时可以固定为有效电平而一直处于使能状态,那么 SSEL 就可以不要;此时如果再加上主机只给从机发送数据,那么 SSEL 和 MISO 都可以不要;如果主机只读取从机送来的数据,SSEL 和 MOSI 都可以不要。
  3 线和 2 线的 SPI 大家要知道怎么回事,实际使用也是有应用的,但是当我们提及 SPI的时候,一般都是指标准 SPI,都是指 4 根线的这种形式。
  SPI 通信的主机也是我们的单片机,在读写数据时序的过程中,有四种模式,要了解这四种模式,首先我们得学习以下两个名词。
  CPOL:Clock Polarity,就是时钟的极性。时钟的极性是什么概念呢?通信的整个过程分为空闲时刻和通信时刻,如果 SCLK 在数据发送之前和之后的空闲状态是高电平,那么就是CPOL=1,如果空闲状态 SCLK 是低电平,那么就是 CPOL=0。
  CPHA:Clock Phase,就是时钟的相位。
  主机和从机要交换数据,就牵涉到一个问题,即主机在什么时刻输出数据到 MOSI 上而从机在什么时刻采样这个数据,或者从机在什么时刻输出数据到 MISO 上而主机什么时刻采样这个数据。同步通信的一个特点就是所有数据的变化和采样都是伴随着时钟沿进行的,也就是说数据总是在时钟的边沿附近变化或被采样。而一个时钟周期必定包含了一个上升沿和一个下降沿,这是周期的定义所决定的,只是这两个沿的先后并无规定。又因为数据从产生的时刻到它的稳定是需要一定时间的,那么,如果主机在上升沿输出数据到 MOSI 上,从机就只能在下降沿去采样这个数据了。反之如果一方在下降沿输出数据,那么另一方就必须在上升沿采样这个数据。
  CPHA=1,就表示数据的输出是在一个时钟周期的第一个沿上,至于这个沿是上升沿还是下降沿,这要视 CPOL 的值而定,CPOL=1 那就是下降沿,反之就是上升沿。那么数据的采样自然就是在第二个沿上了。
  CPHA=0,就表示数据的采样是在一个时钟周期的第一个沿上,同样它是什么沿由 CPOL决定。那么数据的输出自然就在第二个沿上了。仔细想一下,这里会有一个问题:就是当一帧数据开始传输第一个 bit 时,在第一个时钟沿上就采样该数据了,那么它是在什么时候输出来的呢?有两种情况:一是 SSEL 使能的边沿,二是上一帧数据的最后一个时钟沿,有时两种情况还会同时生效。
  我们以 CPOL=1/CPHA=1 为例,把时序图画出来给大家看一下,如图 15-1 所示。
  图15-1 SPI 通信时序图(一)
  大家看图 15-1 所示,当数据未发送时以及发送完毕后,SCK 都是高电平,因此 CPOL=1。可以看出,在 SCK 第一个沿的时候,MOSI 和 MISO 会发生变化,同时 SCK 第二个沿的时候,数据是稳定的,此刻采样数据是合适的,也就是上升沿即一个时钟周期的后沿锁存读取数据,即 CPHA=1。注意最后最隐蔽的 SSEL 片选,这个引脚通常用来决定是哪个从机和主机进行通信。剩余的三种模式,我们把图画出来,简化起见把 MOSI 和 MISO 合在一起了,大家仔细对照看看研究一下,把所有的理论过程都弄清楚,有利于你对 SPI 通信的深刻理解,如图 15-2 所示。
  图15-2 SPI 通信时序图(二)
  在时序上,SPI 是不是比 I2C要简单的多?没有了起始、停止和应答,UART 和 SPI 在通信的时候,只负责通信,不管是否通信成功,而 I2C却要通过应答信息来获取通信成功失败的信息,所以相对来说,UART 和 SPI 的时序都要比 I2C简单一些。
关注电子发烧友微信
有趣有料的资讯及技术干货
下载发烧友APP
打造属于您的人脉电子圈
关注发烧友课堂
锁定最新课程活动及技术直播
如果你现在还没有单片机开发板,那买一个什么单片机的开发板呢?由于现在ARM单片机占据了整个市场的大部...
在电子产品的各种通讯方式中,CAN(Controller Area Network)总线以其高可靠性...
首先介绍一下软件的架构,小π机器人的软件部分主要包含手机APP程序、上位机程序、主控单片机程序和从机...
本文开始介绍了单片机编程器的特点以及对单片机编程器作用及功能进行了解析,其次介绍了烧录器的概念以及它...
控制器局域网( Contro llerA reaN etwo rk, CAN)是一种多主方式的串行通...
新唐科技股份有限公司(Nuvoton Technology Corp.)是位在台湾的一家半导体公司,...
本文主要介绍了单片机芯片型号有哪些_常见单片机芯片型号大全。经典的单片机芯片型号:1、MCS-51系...
本系统以AT89S52单片机为控制器,通过人机接口(按键和LCD显示屏)来设置输出电流,设置步进等级...
LED 护栏管又名丽得管,是一种先进的LED装饰照明灯饰产品。以红、绿、蓝3种颜色的LED作为光源...
本系统以单片机作为核心控制电路,相对于一般电路构成的防重装弹装置,电路更简洁,调试更快捷,基于软件编...
本文主要介绍了74ls02中文资料汇总(74ls02引脚图及功能_真值表及应用电路),74ls02是...
这个是用Proteus做的硬件设计,对单片机有兴趣大概都用过吧!另外还有软件程序,如果把这个硬件比作...
采用MMA7361加速度角度传感器测量角度。加速度角度传感器是通过测量由于重力引起的加速度计算出器件...
传统电风扇多采用机械方式进行控制,功能少,噪音大,各档的风速变化大。随着科技的发展和人们生活水平的提...
本文提出的一种基于 Proteus 的单片机演奏音乐的方法,非常简单实用,且该方法基于软件来实现的...
首先要放清51的定位,跟我一起再念一遍:51只是个工具51只是个工具51只是个工具。当然51还有一个...
首先,“嵌入式”这是个概念,准确的定义没有,各个书上都有各自的定义。
数组与指针语句具有十分密码的关系,一般来说,指针比较灵活简洁,而数组则比较直观,容易理解。对于大部分...
血糖测量通常采用电化学分析中的三电极体系。三电极体系是相对于传统的两电极体系而言,包括,工作电极(W...
基于Proteus的SPI接口的设计与实现 现在,人们生活中的每个角落都有 嵌入式 设备的存在,比如...
当今社会,应用单片机的产品已经渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的足迹。现在,...
所谓单片机,就是把中央处理器CPU(Central Processing Unit)、存储器(Mem...
单片机技术的发展以微处理器(MPU)技术及超大规模集成电路技术的发展为先导,以广泛的应用领域拉动,表...
对于学习单片机的人而言,肯定都想知道单片机目前的发展现状啊,据此来给自己指定学习目标吧。所以小编总结...
STC单片机是一款增强型51单片机,完全兼容MCS-51,还增加了新的功能,比如新增两级中断优先级,...
如输出到称为HCLK、FCLK的时钟,还直接输出到SDIO外设的SDIOCLK时钟、存储器控制器FS...
日本NEC公司生产的μPD780208系列8位单片机属于78K/0家庭中功能较强的一种系列。根据内部...
系统采用单片机(STC89C54RD)作为主要控制器件,采用HEDS9701槽型光耦加360线光栅片...
以往我们所使用到的二维码大多依赖网络平台或者智能终端,今天我们来谈谈在单片机平台上的实现过程。
电路简单、功能强大、质量可靠,这就是单片机被广泛是使用的根本原因。在我们的生活里,电器更新换代频繁、...
PLC = Programmable Logic Controller,可编程逻辑控制器,一种数字运...
如果我们把这个“口”字图形的“.”处用“0”代替,就可以很形象地得到“口”的字形码:0000H 00...
这是一个非常经典的TI的关于FLASH存储模块的程序,在几乎所有的关于MSP430的书籍等资料上都可...
迄今为止,写过的程序都是一些很简单的程序,从来没有想到要自己写.H文件,也不知道.H文件到底什么用,...
本文主要介绍了现在市场上有哪些单片机很火的_单片机市场现状分析以及单片机结构介绍。单片机是一种集成电...
本文主要介绍了怎么知道单片机型号_单片机型号的判断。AT89系列包括两大类第一类是常规的,就是AT8...
本文主要介绍了单片机上电复位电路图大全。复位电路由按键复位和上电复位两部分组成。上电复位:STC89...
设计很重要,工程也很关键。理论要结合实际,才能做好产品。
嵌入式开发就是设计特定功能的计算机系统,手机,mp3、mp4,mp5,自动供水系统,洗衣机,油井监控...
在单片机编程的过程中,如果一名设计者能够同时掌握多门编程语言,那么这名设计者肯定是一位非常优秀的人才...
单片机里有一些部件需要我们使用和操作,都是通过读写寄存器来实现的。每个部件都对应有操控它的寄存器,例...
局部变量,不加说明默认为auto型,即动态存储,如果不赋初值,将是一个不确定的值。而将局部变量定义为...
学习单片机,你不能没有一本纸质的教程,到本地的书店挑选或便宜的可以到卓越、当当网掏一掏。有了教程能更...
大体测量范围电感测量范围:
0.1μH-----1H小电容测量范围:
1pF----2....
本文开始介绍了排阻的阻值读取方式,其次介绍了排阻的作用和排阻的引脚说明,最后介绍了51单片机最小系统...
为简化系统设计,本系统采取直接发送16×16LED点阵数据的方法,此方法可以去除单片机汉字点阵库的设...
本文主要一个基于单片机的智能环境数据采集小车系统的设计,能实现环境温湿度的采集、发送、接收、处理、显...
串行口的工作方式0为移位寄存器输入输出方式,方式0发送或接收完8位数据后由硬件置位发送中断标志TI或...
atmega48单片机低功耗系统设计首要是选择合适的单片机。atmega48单片机是一款8位微控制器...
本文旨在提供一个轻量级的单片机多级菜单实现方法,以较少的系统资源消耗和简单方便的方法完成菜单设计。考...
在选择 LDO 时,重要的是要知道如何区分各种LDO。器件的静态电流、封装大小和型号是重要的器件参数...
本文介绍的汽车自动巡航控制系统可以有效地减轻驾驶员的疲劳,避免交通事故,并利于环保。当在高速公路上长...
本文利用单片机C作为128×64单色OLED的控制核心器件,采用的是维信诺公司的一款...
根据微位移控制系统的设计要求,首先应保证控制系统的定位精度,其次应尽量做到结构简单,成本低,操作简便...
当前的单片机种类很多,但是 51 是最基础的,因此单片机的学习最好也是从 51 开始,不仅容易上手,...
影响单片机系统运行稳定性的因素可大体分为外因和内因两部分:射频干扰,电源线或电源内部产生的干扰
由于本次进入指令寄存器中的内容是74H(操作码),以译码器译码后单片机就会知道该指令是要将一个数送到...
有关51单片机有关晶振的问题一并总结出来,希望对学51的童鞋来说能有帮助
SDA 和 SCL 都是双向的。SPI 总线有两根单独的线,分别用于两个方向的通信,而 I2C 总线...
每当想找哪个运算符优先级高时,很多时候总是想找的就没有,真让人气愤!现在,终于有个我个人觉得非常全的...
随着单片机的使用日益频繁,用其作前置机进行采集和通信也常见于各种应用,一般是利用前置机采集各种终端数...
电阻焊一般是使工件处在一定电极压力作用下并利用电流通过工件时所产生的电阻热将两工件之间的接触表面熔化...
串行外围设备接口是由 Motorola 公司开发的,用来在微控制器和外围设备芯片之间提供一个低成本、...
随着物质文化生活水平的提高,人们对于包装、装饰材料的要求也越来越高,只有将计算机控制引入到模切烫金机...
除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复...
1.数据传送指令汇总 2.算术运算类指令汇总 3.控制转移类指令汇总 4.逻辑运算指令汇总 5.布...
全国大学生电子设计竞赛中的C题,要求设计一个以 单片机 为核心器件实现对行驶中的 电动模型汽车 自动...
当时国内从事动态密码器研发生产的公司并不多,而能拥有自主知识产权的公司更少。公司创始人是剑桥大学毕业...
不要拒绝RTOS!
逐次逼近式AD转换器与计数式A/D转换类似,只是数字量由“逐次逼近寄存器SAR”产生。SAR使用“对...
本功能主要用于准备用于查表计算的 R/T 表格,主要用于温度、浊度等模拟量的测量,根据电路分压电阻的...
单片机,又称微处理器,他将一个系统所需要的RAM,Rom ,CPU等相关外设集成在一块集成电路上,我...
现将while(1);语句屏蔽掉。我还以为程序不能被正确执行了呢,因为退出了main主函数,就像Re...
点阵式平板图形液晶显示器在各种便携式产品中具有非常广泛的应用。对于不同厂家的产品及不同的运用目的,显...
数字式温度传感器(简称SWC),又称集成数字脉冲式感温探头,是一种新型的三端温度变送器件。该器件采用...
由于单片机具有功能强,使用灵活,体积小,性价比高等特点,近年来在测控系统中得到广泛应用。而在许多场合...
读取一字节数据的程序段如下: 读取数据时,T1先置1,其后的RD信号将行地址送到地址线AB上,并使D...
VD5026 -4的每组串行数据输出波形由同步脉冲、12位加密地址(和控制数据)及1位停止位组成。编...
为了测量时间r,又为使测量的φ角的精度不受电网频率(或周期T)的影响,采用图所示的接口电路。 由变压...
传统的投币电话,都是以几对红外发射、接收对管作传感器,利用硬币遮光原理粗测币的直径。这种方法精度低,...
当超声波传感器发出的超声波遇到物体返回时,探头接收其反射回波信息,从而可对接收到的反射回波进行分析、...
本文介绍使用8031单片机测量三相电网 功率因数角的原理、接口电路和程序实现。经实践验证,测量准确、...
单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可...
串行口方式0应用编程 8051单片机串行口方式0为移位寄存器方式,外接一个串入并出的移位寄存器,就能...
在单片机中用来存储程序数据及常量数据或变量数据,凡是c文件及h文件中所有代码、全局变量、局部变量、’...
八段LED数码管显示器由8个发光二极管组成。基中7个长条形的发光管排列成“日”字形,另一个贺点形的发...
89C51芯片没有自带PWM发生器,如果要用51来产生PWM波就必须要用软件编程的方法来模拟。方法大...
遇到单片机晶振不起振是常见现象,那么引起晶振不起振的原因有哪些呢?
(1) PCB板布线错误;...
使用STM32L496的Nucleo板的LPUART 做打印输出时,电脑端始终没法出现任何信息。
关于外部Flash的代码安全问题和代码在外部执行对整个系统性能的影响,RT105x的加密启动(HA...
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司
电信与信息服务业务经营许可证:粤B2-一、背景:
很久前用过C8051,现在有相关需求需要重新使用C8051,然后发现一年前开发的相关经验都忘得
基本上差不多了。连最基本的GPIO口配置还得重新来看手册,所以有此文,做个记录,以备下次快速
二、正文:
首先是GPIO口的配置步骤:
1. 用端口输入方式寄存器(PnMDIN)选择所有端口引脚的输入方式(模拟或数字)。
2. 用端口输出方式寄存器(PnMDOUT)选择所有端口引脚的输出方式(漏极开路或推挽)。
3. 用端口跳过寄存器(PnSKIP)选择应被交叉开关跳过的那些引脚。
4. 将引脚分配给要使用的外设(XBR0、XBR1、XBR2)。
5. 使能交叉开关(XBARE = 1)。
先着重说明下,什么是"优先交叉开关译码器(Priority Crossbar Decoder)":
这玩意儿的这个名称,我暂时只在Silicon的单片机上见过,也许是因为只有该类型MCU用这种IO
口分配机制吧。我们平时使用的MCU,其IIC,UART,SPI等等这些外设接口已经被厂商配置成某个或者某
几个IO上,若是需要要用这些功能,直接将该引脚配置成相应规定好的第二功能即可,若是该IO口引脚
不得以被使用,还可以使用重映射功能,将该功能映射到厂商规定的第二个备用IO口。但是Slicon却不
然,它提供的MCU原理图上,光光的,什么都没有,也就是说,基本上这些第二功能接口几乎可被配置
在任意一个IO口上。也就是交叉开关会将这些外设功能按照下图外设功能分配优先级,从高到低分配给
不同的外设引脚,外设功能的优先级如下图:
从优先权最高的UART0开始,这个被固定配置在"P0.4","P0.5",接着在"XBR0"内,SPI配置为启用,
且P0SKIP的第"0""1""2""3"位未被选择为跳过,则对应SPI引脚被配置到"P0.0","P0.1","P0.2",
"P0.3"上;若是SPI配置为禁用,IIC启用,且P0SKIP的第"0""1"位未被选择为跳过,则IIC的"SDA",
"SCL"被配置在"P0.0","P0.1"上。
即若是该引脚已经被配置,或者在端口跳过寄存器中被设置,则交叉开关会跳过这些引脚,然后分
配到接下来空闲的引脚上,该配置选项即对应于GPIO口配置步骤的3、4、5。Uart口的分配是固定的
原因在于下载引导程序内,需要固定此IO口。
说到这,那就一步步详解GPIO口配置步骤吧。
决定引脚输入模式,要么是模拟输入,要么是数字输入,数字输入为复位后的默认配置。
寄存器:"PnMDIN","n"为对应的port口:
--& "0",配置为模拟输入;
--& "1",配置为数字输入。
配置引脚输出方式:
寄存器:"PnMDOUT","n"为对应的port口:
--& "0",漏极开路;配合外部上拉电阻,通常用来检测输入。
--& "1",推挽输出。
对应的引脚是否被交叉开关分配为第二功能:
寄存器:"PnSKIP","n"为对应的port口:
--& "0",对应的引脚不被交叉开关跳过;
--& "1",对应的引脚被交叉开关跳过。
此步骤注意:若是引脚已被规定了特殊的使用,譬如VREF,XTAL1/2等IO口,或者被配置为
模拟输入的引脚,对应位在该寄存器内必须被配置为"1"。
对应外设功能是否被分配到IO口引脚:
寄存器:"XBR0","XBR1"为
--& "0",不需要分配IO口引脚;
--& "1",需要分配IO口引脚。
对于给定的XBRn设置,可以使用优先权译码表确定I/O引脚分配;另一种方法是使用
Silicon Labs IDE 软件的配置向导功能来确定基于XBRn寄存器设置的端口I/O引脚分配。
使能交叉开关,在使能交叉开关未被打开前,外部引脚保持标准端口I/O方式(输入)。
配置完毕后,未被交叉开关选择到的IO口,均可当做通用IO口使用,通过对应的端口数据寄存器
访问端口P3-0,这些寄存器既可以按位寻址也可以按字节寻址。端口P4(仅C/1/4/5)使用的
SFR只能按字节寻址。向端口写入时,数据被锁存到端口数据寄存器中,以保持引脚上的输出数据值不
变。读端口数据寄存器将总是返回端口输入引脚的逻辑状态,而与XBRn的设置值无关(即使在引脚被
交叉开关分配给其它信号时,端口寄存器总是读其对应的端口I/O引脚)。但在对端口SFR执行下面的
读-修改-写指令(ANL、ORL、XRL、JBC、CPL、INC、DEC、DJNZ)和对端口SFR中的某一位执行MOV、
CLR、SETB期间例外。这些指令读端口寄存器(而不是引脚)的值,修改后再写回端口SFR。
三、参考文献
详细解说开漏输出和推挽输出
http://blog.sina.com.cn/s/blog_14evewa.html
至此,记录完毕。
记录时间:2016-11-25
记录地点:深圳WZ
阅读(...) 评论()

我要回帖

更多关于 io link 通信速率 的文章

 

随机推荐