您的位置 首页 国产IC

Atmega162串行外设接口SPI

一、Atmega162的SPI接口基本概念与工作原理SPI接口的全称是SerialPeripheralInterface,意为串行外围接口。SPI主要使用4个信号:MOSI(m…

一、Atmega162的SPI接口基本概念与作业原理

SPI接口的全称是”Serial Peripheral Interface”,意为串行外围接口。SPI首要运用4个信号:MOSI(master in slave out)、MISO(master out slave in)、SCK(串行时钟)、CS(片选)。其间SCK由主机发生,作为传输的同步时钟,操控一切的数据传输。主机和外设都包括一个串行移位寄存器。主机经过向自己的SPI串行寄存器写入一个字节来建议一次传输,然后经过MOSI信号线将数据传给外围设备,一起外设将自己移位寄存器中的内容经过MISO信号线返给主机。这样两个移位寄存器中的内容完结交流。也就是说,外设的写操作和读操作是同步完结的。在实践运用中,假如只进行写操作,则主机只需疏忽收到的字节即可;假如主机要读外设的数据,有必要发送一个自己来引发从机的传输,发送的这个字节可所以恣意数据。

二、SN74HC166与TPIC6A595

SN74HC166 是8-BIT 并行加载移位寄存器。A~H为并行输入管脚,SER串行输入管脚,QH为输出管脚,SH/LD管脚用于设置并行加载和移位形式,CLK为同步时钟,操控数据传输。

TPIC6A595是8-BIT移位寄存器。SER IN管脚串行输入数据, SER OUT管脚并行输出数据, SRCK为串行移位的脉冲, RCK的上升沿将使数据并行输出到DRAIN0~DRAIN7。

在电路中运用了4片74HC166的级联,并重32个IO点,运用3片595操控24个输出端口。电路如下图所示

74H166数据并重

595数据并行输出

电路中SCK,OEN,IEN别离接Atmega162的SPI接口。

三、SPI接口和外设之间的数据传输

运用Atemga162的SPI接口传输数据,只需往其移位寄存器写入要发送的数据即可。

[cpp]view plaincopy

  1. voidSPIMasterTransmit(unsignedcharTranData)
  2. {
  3. SPDR=TranData;//数据放入SPI寄存器中
  4. while(!(SPSR&(1<<7)));//等候数据传输结束
  5. }

运用3片595级联,能够并行输出3个字符的数据。先在3*8个CLK时钟脉冲下酿制发送的数据移入595,最终在RCK的上升沿数据将并行充DRAINx口输出。

[cpp]view plaincopy

  1. OEN=0;
  2. for(i=0;i<3;i++)
  3. SPIMasterTransmit(Data[i]);
  4. OEN=1;

运用4片74HC166级联,将4个字节的数据移位经过SPI发送给Atemga162。

[cpp]view plaincopy

  1. inti;
  2. OEN=0;//封闭SPI的输出;
  3. IEN=0;//操控74HC166处于并行加载数据形式
  4. SPIMasterTransmit(0);//发生SPI数据传送的时钟,完结并行数据加载
  5. IEN=1;//操控74HC166处于移位形式
[cpp]view plaincopy

  1. for(i=0;i<4;i++)
  2. {
  3. SPIMasterTransmit(0);
  4. IOCELL[i]=SPDR;
  5. }
  6. IEN=0;

在最开端介绍了SPI的数据传输CLK需求主机宣布,主机需求想移位寄存器写随意的一个数。由于咱们仅仅需求并重输入.所以封闭SPI的输出即OEN = 0;

四、总结

当Atmega162只对外设进行读操作,咱们经过写SPI移位寄存器来宣布SCK,外设经过该时钟才能将数据交流给SPI移位寄存器。关于数字芯片74HC166和595的操作,以及移位寄存器、锁存器、触发器等基本概念有些含糊,先学习再下篇持续总结。

0

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/ic/265716.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部