📄 adμc812的串行外设接口(spi)及其应用.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0043)http://www.avrw.com/article/art_104_869.htm -->
<HTML><HEAD><TITLE>ADμC812的串行外设接口(SPI)及其应用</TITLE>
<META
content=ADμC812的串行外设接口(SPI)及其应用/单片机、ARM、DSP、CPLD、LCD、EDA/FTP、电子资料、免费下载、电子爱好者社区,学习资料/ADμC812的串行外设接口(SPI)及其应用电子问题有问必答,综合电子论坛欢迎您!
name=keywords>
<META
content="ADμC812的串行外设接口(SPI)及其应用/摘要:ADμC812是一种新型的集成12位数据采集系统。它的串行外设接口SPI(serial peripheral interface)可进行主机和多片从外围器件的信息传递,即主机对从机的控制及从机向/ADμC812的串行外设接口(SPI)及其应用电子问题有问必答,综合电子论坛欢迎您!"
name=description>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>.style1 {
COLOR: #ffffff
}
BODY {
FONT-SIZE: 12px; BACKGROUND: #ffffff; MARGIN: 0px; COLOR: #000000; FONT-FAMILY: 宋体,tahoma,fantasy; TEXT-ALIGN: center
}
.mian {
BORDER-RIGHT: #ffffff 3px double; PADDING-RIGHT: 2px; BORDER-TOP: #ffffff 3px double; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; MARGIN: 12px auto 0px; BORDER-LEFT: #ffffff 3px double; WIDTH: 98%; PADDING-TOP: 2px; BORDER-BOTTOM: #ffffff 3px double; BACKGROUND-COLOR: #ffffff; TEXT-ALIGN: left; min-width: 600px
}
.top {
BORDER-RIGHT: #99a3ab 1px solid; BORDER-TOP: #99a3ab 1px solid; FONT-WEIGHT: bold; FONT-SIZE: 12px; BORDER-LEFT: #99a3ab 1px solid; COLOR: white; TEXT-INDENT: 5px; LINE-HEIGHT: 22px; BORDER-BOTTOM: #99a3ab 1px solid; HEIGHT: 22px; BACKGROUND-COLOR: #ffffff; TEXT-ALIGN: left
}
.bottom {
BORDER-RIGHT: #99a3ab 1px solid; BORDER-LEFT: #99a3ab 1px solid; BORDER-BOTTOM: #99a3ab 1px solid; HEIGHT: 25px; BACKGROUND-COLOR: #c9d4db; TEXT-ALIGN: center
}
.title {
FONT-WEIGHT: bold; COLOR: #203e46
}
TEXTAREA {
BORDER-TOP-WIDTH: 1px; FONT-WEIGHT: normal; BORDER-LEFT-WIDTH: 1px; FONT-SIZE: 12px; BACKGROUND: #fcfff7; BORDER-BOTTOM-WIDTH: 1px; WIDTH: 98%; LINE-HEIGHT: normal; FONT-STYLE: normal; BORDER-RIGHT-WIDTH: 1px
}
INPUT {
FONT-SIZE: 12px
}
SELECT {
FONT-SIZE: 12px; BACKGROUND: #fcfff7; MARGIN: 1px
}
INPUT.text {
BORDER-RIGHT: #ffffff 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #ffffff 1px solid; PADDING-LEFT: 1px; BACKGROUND: #9e9585; PADDING-BOTTOM: 1px; MARGIN: 1px; BORDER-LEFT: #ffffff 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #ffffff 1px solid; HEIGHT: 18px
}
INPUT.button {
BORDER-RIGHT: #2c68b9 4px solid; BORDER-TOP: #2c68b9 1px solid; BACKGROUND: #ffffff; MARGIN: 2px 5px; BORDER-LEFT: #2c68b9 4px solid; COLOR: #000000; BORDER-BOTTOM: #2c68b9 1px solid; HEIGHT: 20px
}
.adding {
PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; OVERFLOW: hidden; PADDING-TOP: 3px; HEIGHT: 25px
}
.Stable {
BORDER-TOP: medium none; BACKGROUND: #def0fe; BORDER-LEFT: #99a3ab 1px solid; WIDTH: 100%
}
.Stable TD {
BORDER-RIGHT: #99a3ab 1px solid; BORDER-TOP: medium none; FONT-SIZE: 12px; BORDER-BOTTOM: #99a3ab 1px solid
}
.Stable TH {
BORDER-RIGHT: #99a3ab 1px solid; BORDER-TOP: medium none; FONT-SIZE: 12px; BACKGROUND: #c4d4dc; BORDER-BOTTOM: #99a3ab 1px solid
}
FORM {
MARGIN: 0px
}
TABLE {
FONT-SIZE: 12px
}
TH {
FONT-SIZE: 12px
}
TD {
FONT-SIZE: 12px
}
TR {
FONT-SIZE: 12px
}
.content {
BORDER-RIGHT: #99a3ab 1px solid; BORDER-TOP: #99a3ab 1px solid; BORDER-LEFT: #99a3ab 1px solid; BORDER-BOTTOM: #99a3ab 1px solid; BACKGROUND-COLOR: #f7b91a
}
.content LI {
LINE-HEIGHT: 20px; LIST-STYLE-TYPE: none
}
A:hover {
LEFT: 1px; COLOR: #ff8040; POSITION: relative; TOP: 1px; TEXT-DECORATION: none
}
.link {
COLOR: #4a4a42; TEXT-DECORATION: none
}
.link2 {
COLOR: #d65a18; TEXT-DECORATION: none
}
.link3 {
COLOR: #ffffff; TEXT-DECORATION: none
}
.style15 {
FONT-SIZE: 18px
}
.style16 {
FONT-SIZE: 24px
}
</STYLE>
<SCRIPT language=JavaScript type=text/JavaScript>
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</SCRIPT>
<META content="MSHTML 6.00.2900.2180" name=GENERATOR></HEAD>
<BODY leftMargin=0 topMargin=0 marginheight="0" marginwidth="0">
<SCRIPT src="ADμC812的串行外设接口(SPI)及其应用_files/top.htm"></SCRIPT>
<TABLE class=txt_css height=35 cellSpacing=0 cellPadding=0 width="100%"
align=center bgColor=#ffffff
background=ADμC812的串行外设接口(SPI)及其应用_files/txt_css.gif border=0>
<TBODY>
<TR vAlign=center>
<TD width=46>
<DIV align=right><IMG height=11
src="ADμC812的串行外设接口(SPI)及其应用_files/arrow3.gif" width=29 align=absMiddle>
</DIV></TD>
<TD><A class=link href="http://www.avrw.com/index.asp">综合电子论坛首页 -->
</A><A class=link href="http://www.avrw.com/learn.htm">学习资料 --> </A><A
class=link href="http://www.avrw.com/article/art_104_p1.htm">嵌入式系统 -->
</A><A class=link
href="http://www.avrw.com/article/art_104_.htm">ADμC812的串行外设接口(SPI)及其应用</A></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 width="100%" border=0>
<TBODY>
<TR>
<TD bgColor=#fffbe8>
<P align=center>
<TABLE cellSpacing=0 width="100%" border=0>
<TBODY>
<TR>
<TD bgColor=#fffbe8>
<TABLE style="WORD-BREAK: break-all" cellSpacing=10 cellPadding=0
width="90%" align=center border=0>
<TBODY>
<TR>
<TD vAlign=top width=816 height=200 line-height="35pt">
<DIV align=center><FONT
size=4><STRONG>ADμC812的串行外设接口(SPI)及其应用</STRONG></FONT></DIV><BR><BR>
<P><STRONG>摘要:</STRONG>ADμC812是一种新型的集成12位数据采集系统。它的串行外设接口SPI(serial
peripheral
interface)可进行主机和多片从外围器件的信息传递,即主机对从机的控制及从机向主机提供各种信息等,从而实现系统之间的各种控制和操作。
<DIV> <B>关键词:</B>ADμC812 串行通信 SPI串行端口</DIV>
<DIV><B>概述</B></DIV>
<DIV>ADμC812是一种全集成的12位数据采集系统。它在单个芯片内包含了高性能的自校准多通道ADC、2个12位DAC以及可编程的8位MCU(与8051兼容)。为便于MCU与各种外围设备进行通信,ADμC812提供了3种串行I/O端口:UART接口、I2C兼容的串行接口和串行外设接口(SPI)。其中,SPI接口是工业标准的同步串行接口,是一种全双工、三线通信的系统。它允许MCU与各种外围设备以串行方式(8位数据同时、同步地被发送和接收)进行通信。在SPI接口中,数据的传输需要1个时钟信号和两条数据线。</DIV>
<DIV>SPI可工作在主模式或从模式下。在主模式,每一位数据的发送/接收需要1次时钟作用;而在从模式下,每一位数据都是在接收到时钟信号之后才发送/接收。1个典型的SPI系统包括1个主MCU和1个或几个从外围器件。SPI接口可设置成在发送/接收1个字节的结束时产生1次中断。</DIV>
<DIV>主时钟可以通过编程而成为不同的状态,既可编程为4种不同主波特率的任一种,又可对时钟的极性和相位进行编程。</DIV>
<DIV>SPI也可用于那些需要比微控制器上的并行I/O端口更多输入或输出端的场合中。SPI提供了一种扩展I/O功能的最简单的办法,只需使用最少的微控制器引脚。<B><BR><IMG
height=439 hspace=10
src="ADμC812的串行外设接口(SPI)及其应用_files/2006719215420734.gif"
width=549 vspace=10 border=0><BR>一、工作原理</B></DIV>
<DIV>1.SPI的信号说明</DIV>
<DIV>SPI系统使用4条线可与多种标准外围器件直接接口:<IMG height=389 hspace=1
src="ADμC812的串行外设接口(SPI)及其应用_files/2006719215420580.gif"
width=333 align=right vspace=1
border=0>串行时钟线(SCLOCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS。</DIV>
<DIV>SCLOCK是主机的时钟线,为MISO数据的发送和接收提供同步时钟信号。每一位数据的传输都需要1次时钟作用,因而发送或接收1个字节的数据需要8个时钟的作用。主机的时钟是通过主机的硬件设置的,并和各个从机的SCLOCK相连。时钟的波特率、极性、相位是由SPICON(SPI控制寄存器)来设置的。</DIV>
<DIV>MISO是主机的输入/从机的输出数据线。主机的MISO应与从机的MISO相连进行高位在前的数据交换。</DIV>
<DIV>MOSI是SPI接口的SPI主机输出/从机输入数据引脚。这一引脚应当连接主微控制器的数据输出和从微控制器的数据输入端MOSI,进行高位在前数据的交换。</DIV>
<DIV>SS只在从方式中用于低电平选中从。SS对应的是P1.5,在初始化时P1口被设置为模拟输入,因而通过清除P1.5可将其设置为数据输入,才可完成主、从机的通信。<BR><BR>
2.SPI的寄存器</DIV>
<DIV>SPI有2个相关寄存器:SPICON和SPIDAT,其中SPICON包含各种标志位、使能位、方式位及时钟位。各位都是可寻址的,如表1及表2所列。<BR><BR><B>表1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -