《6人形街舞机器人_外部Flash的读写.docx》由会员分享,可在线阅读,更多相关《6人形街舞机器人_外部Flash的读写.docx(13页珍藏版)》请在第一文库网上搜索。
1、多自由度人形双足舞蹈机器人外部F1ash读写疯壳机器人开发系列配套资料:https:/www.fengke.c1ub/GeekMart/su_fV1WzKsGQ.jsp配套视频:https:/www.fengke.c1ub/GeekMart/su_fBdB1yTUO.jsp外部F1ash读写1SP1简介本章将使用IAP15W4K61S4单片机的SP1接口,对外部FIaSh进行读写操作。SPI是一种全双工、高速、同步的通信总线,有两种操作模式:主模式和从模式。在主模式中支持高达3Mbps的速率(工作频率为12MHz时,如果CPU主频率采用20MHz到36MHz,就可以更高,从模式时速度无法太快)
2、,还具有传输完成标志和写冲突标志保护。SP1的功能框图如下图所示:CPU时绅图1SPI接口其实是一个8位移位寄存器和数据缓冲器,数据可以同时发送和接收。在SP1数据的传输过程中,发送和接收的数据都存储在数据缓冲器中。对于主模式,如果要发送一个字节的数据,只需要将这个数据写到SPDAT寄存器中。主模式下/SS信号不是必须的,但是在从模式下,必须在/SS信号变为有效并接受到合适的时钟信号后,方可进行数据传输。在从模式下,如果一个字节传输完成后,/SS信号变为高电平,这个字节立即被硬件逻辑标志为接收完成,SPI接口准备接收下一个数据。2硬件设计本次我们所使用的外部F1ash是W25X20C1,它一共
3、有8个引脚。1号引脚CS用于芯片的选择。2号引脚DO是数据输出引脚。3号引脚WP是写保护。4号是GNDo5号DIO引脚既可以作为数据输入,也可以作为数据输出。6脚C1K是FIaSh的串行时钟信号。第7脚用于暂停SPI的通信。最后VCC就是电源脚。具体的硬件连接如下图所示。P20UI2Gr4D1CSVCCDOHO1DWPC1KGNDD18=C37P2227VCCGND36P21GNDGND14J5P23的1JIKW25X2OC1图23软件设计本次软件设计主要是讲解SP1读写外部F1ash,在此之前,先简要介绍3个与SPI相关的主要寄存器,其它相关寄存器可以参考官方数据手册中的相关章节。(1) S
4、P1控制寄存器SPCT1SFRnameAddressbitB7B6B5B4B3B2B!BOSPCT1CEHnameSS1GSPtND()RDMSTRCPO1CPHASPR1SPRO图3SSIG:SS引脚忽略控制位。SSIG=I,MSTR(位4)确定器件为主机还是从机。SSIG=O,SS脚用于确定器件为主机还是从机。SPEN:SP1使能位。SPEN=I,SP1使能。SPEN=O,SP1被禁止,所有SPI引脚都作为I/O使用。DORD:设定SPI数据发送和接收的位顺序。DORD=I,数据字的最低位最先发送。DORD=O,数据字的最高位最先发送。MSTR:主/从模式选择位。CPO1:SP1时钟极性。
5、CPO1=I,SC1K空闲时为高电平。SC1K的前时钟沿为下降沿而后沿为上升沿。CPO1=O,SC1K空闲时为低电平。SC1K的前时钟沿为上升沿而后沿为下降沿。CPHA:SP1时钟相位选择。CPHA=I,数据在SC1K的前时钟沿驱动,并在后时钟沿采样。CPHA=O,数据在/SS为低时被驱动,在SC1K的后时钟沿被改变,并在前时钟沿被采样。SPR1、SPRO:SP1时钟频率选择控制位。如下图所示:SPR1SPRO时钟(SC1K)00CPU-C1K401CPU-C1K810CPU/1K/16I1CPU/1K/32图4(2) SP1状态寄存器SPSTATSFRnameAddressbitB7B6B5
6、B4B3B2B1BOSPSTATCDHnameSPIFWCO1.图5SPIF:SP1传输完成标志当一次串行输出完成时,SPIF置位。此时,如果SP1中断被打开,则产生中断。当SP1处于主模式且SSIG=O时,如果/SS为输入并被驱动为低电平,SP1F也将置位,表示“模式改变。SPIF标志通过软件向其写入“1”清零。WCO1:SPI写冲突标志。在数据传输的过程中如果对SP1数据寄存器SPDAT执行写操作,WCo1将置位。WCo1标志通过软件向其写入“1”清零。(3)控制SPI功能切换的寄存器AUXR1(P_SW1)MnemotiKAddNameB7B6B5B4B3B2BIBOResetVa1ue
7、AUXRIP_SWIA2HAuxi1iaryregisterIS1S1S1_SOCCP,S1CCP_S0SP1S1SP1SO0DPSOOW.OOOO图6Sp1可在3个地方切换,由SP1S1/SP1SO两个控制位来选择SP1S1SP1SOSP1可在P1/P2/P4之间来回切换00SP1在P12SS,P1.3MOS1,P1.4M1SO,P1.5/SC1K0!SPItP2.4SS-2,P2.3/MOSI_2,P2,2MISO_2,P2.1SC1K-210SP1在1P54/SS_3,P4.0M0SI.3,P4.1MISO.3,P4.3/SC1K.311无效CCP可在3个地方切换,由CCP_S1/CCP
8、_SO两个控制位来选择CCP_S1CCP_SOCCP可在P1/P2/P3之间来回切换00CCPP1.2EC1P11CCPO,P1.OCCP1,P3.7/CCP201CCP在P3.4EC12,P3.5/CCP0_2,P3.6/CCP1_2,P3.7CCP2-210CCP在P2.4/ECI_3,P2.5CQQ3,P2.6CCP1-3,P2.7/CCP2_311无效串口1/S1可在3个地方切换,由S1So及S1S1控制位来选择S1S1S1SO串HS1可在PI/P3之河来回切换00率MI/S1在P3.ORxD.P3.I/TxD01串口1/S1在P3.6RxD-2,P3.7TxD.210串111/S1在
9、P16RxD-3XTA12tP1.7TxD-3XTA11串口1在P1?1时要使用内部时席11无效图7DSP:SPTR寄存器选择位。0,使用缺省数据指针DPTROo1,使用另一个数据指针DPTR1o首先看一下SP1初始化函数。void1nit_SPI()(AUXR1I=0X08;将SP1调整到P4.1、P4.2、P4.3SPDAT=0;清空SPI数据寄存器Spstat=OxcO;清空SPI传输完成标志和写冲突标志SPCT1=OxdO;/SSIG1开启主机模式SPEN1SPI使能DORD0先发最高位MSTR1主机模式CPO1OSPIC1K空闲时为低CPHA0数据在SP1C1K的前时钟沿驱动时钟CP
10、U_C1K/4)代码1SP1初始化函数,其实就是配置SP1相关寄存器的几个位。当然,大家也可以按照自己的实际需求进行配置。完成SP1初始化之后,就可以使用SP1发送接收函数。u8SP1SendByte(U8SPI_SendData)(SPDAT=SP1SendData;whi1e(SPSTAT&0x80)=0);SPSTAT=OxcO;returnSPDAT;)代码2在SP1SendByte(u8SP1SendData)函数中,首先是将要发送的数据放入SPI数据寄存器SPDAT中,然后判定SPI状态寄存器SPTAT中的SPIF位。等待数据写入完成之后,清除中断标志和写冲突标志。由于SPI为双工
11、通讯,最后就能返回得到的数据。关于外部F1ashW25X20C1的使用,其实就是通过SPI_SendByte(u8SP1SendData)写指令、写地址、写数据。外部F1ash的使用方法详情可以读数据手册。另外,本次实验还用到了串口,串口的使用方法可以阅读前面的章节:串口控制舵机原理。4实验现象首先打开下载软件STC-ISPo*STC-ISP(V6.85D)(M*%0513-55012928)官网WWWSTCMCU.com(K*QQ8OO3751)-STC:M58.向WRMgitfiSMMF9Q大.30,材gwIgIh手I-,】仿山设片3,用闱小品颜搬序工作电图,.“ftWGfsu政小,1(*
12、皿号com,1ftRHX200倒高麦特拿I“saw0OOOOJH即代科缓卑口打开程序文件&E却,U-M0维4乏JEFFE*r硬件选吻tww:4*加艺后任*ibi,暹*碗褊凉嬴欣鬲而丁S人用M1覃运行时的易率0592WiJ蹲*3赫大辑=(121以上It议选择)Jf1WTft3t根,麻网,F3233刈/0才可Ftt悭序J上电宣位使用较长有J复位型用作“0口J九注*Bi复位辞幽中ftms2r一-6J最压8?挚止IIMCMft作蚪NYr给高工1tH218V上电亶位时由W付自幼的暂门狗gH2EXMnHB*I11111t源STCscsc5TCSTCscscsc3rIffff0050SBAIUTKMUOsm
13、55-38ex2048531426528I6K20485K42655-38MKZMBJTK4?*55-332X204829K4255-3e皿204021K426SS-34K204B13K42*55-38SX2048SK425”38ox2046IK42655-366112048IAr426cCrq0.CVAA*gITWI迎TZItwwwi1t/ammm6E5jJ号欠下凭曾麻斯条式目标文件H惮文件要化时自动东长并左送不低的2发布埃目步发命园9现电取本机盘号JHtB0OhfAA9图8(1)点击Kei1仿真设置,添加STC相关的头文件。STC的相关头文件路径是我们之前安装Kei1C51的路径,如果之前采用的默认路径,那么选择C盘Kei1文件夹。渝STC-ISP(V6.86函第笠电话:0013-55012928)官网:WwW.STCMCUDATACom东支持QQ:8000.10.回rf单片机型号1AP15W4K61S4|引蹴海/瘫室/教材/招聘|串口助手KeiI仿真苫盍选星甚坦串口号C口9TM1最低波特率1400最高波特率1152