基于Hercules 的工业“安全”控制系统-SPI学习
[复制链接]
基于Hercules 的工业“安全”控制系统-SPI学习
资源说明: HALCoGen 03.05.02 TMS570LS04x/03x 16/32-Bit RISC Flash Microcontroller Technical Reference Manual 一、SPI功能逻辑图
MibSPI可以配置正常功能SPI和多缓冲SPI, 上电或一个系统级的复位后,每个模块中的寄存器位被设置为默认状态。复位位被设置为1后该寄存器才是可写的。 二 、兼容性(SPI)模式配置 下面软件配置步骤的详细列表,发送或接收的数据前应执行的。 只要SPIENA保持低, 整个时间,正在配置SPI, 寄存器进行编程的顺序是不重要的. •通过设置RESET位启用SPI •通过设置在SPIPC0寄存器相应位,设置SIMO,SOMI,CLK和可选CSX,ENA引脚配置为SPI功能。 •配置模块功能的Master或Slave使用CLKMOD和MASTER位。 •配置使用SPIFMTx寄存器所需的SPI数据格式。 •如果该模块选择为主机的功能,可使用SPIDELAY寄存器配置延时参数。 •如果需要使用SPIINT0寄存器使能中断。 •选择要使用的CS通过设置在SPIDAT1寄存器CSNR位。 •如果需要配置在SPIDAT1寄存器CSHOLD和WDEL位。 •通过设置DFSEL位选择数据字格式,选择配置SPIFMTx寄存器(0到3)的数来用于通信。 •设置LOOPBACK位内部连接发送器和接收器。 (此功能是用来进行自我测试。不要配置到外部设备的正常通信)。 •SPI配置后设置SPIENA 为1。 •使用SPIDAT1和SPIBUF寄存器,进行发送和接收数据。 •写下一个数据到SPIDAT1寄存器前,用户必须等待TXFULL 复位或TXINT。 •从SPIBUF寄存器读取数据之前,用户必须等待 RXEMPTY 复位或RXINT 三、HALCoGen初始化的了解 SPI Global Control Register 1 (SPIGCR1)-Bit0 SPIGCR1[1]:CLKMOD 时钟模式 SPIGCR1[0]:MASTER 主,从机模式 SPI Interrupt Register (SPIINT0) SPIINT0[24] :ENABLE HIGHZ SPIENA脚高阻抗使能 SPI Interrupt Register (SPIINT0) SPIINT0[9]:TXINT 发送中断。 SPIINT0[8]:RXINT 接收中断。 SPIINT0[6]:OVRNINT 接收溢出中断。 SPIINT0[4]:BITERR 位错误中断。 SPIINT0[3]:DESYNC 无法同步从机中断。 (主模式) SPIINT0[2]:PARERR 奇偶错误中断 SPIINT0[1]:TIMEOUT SPIENA引脚超时中断。 SPIINT0[0]:DLNERR 数据长度错误中断(线)选择。 SPI Interrupt Level Register (SPILVL) SPILVL[9]:TXINTLVL 发送中断级 SPILVL[8]:RXINTLVL 接收中断级 SPILVL[6]:RXOVRNINTLVL 接收溢出中断级 SPILVL[4]:BITERRLVL 位错误中断级 SPILVL[3]:DESYNCLVL 无法同步从机中断级。 (主模式) SPILVL[2]:PARERRLVL 奇偶错误中断级 SPILVL[1]:TIMEOUTLVL SPIENA引脚超时中断级。 SPILVL[0]:DLENERRLVL 数据长度错误中断级(线)选择。 SPI Data Format Registers (SPIFMT) Shift LSB first SPIFMT[20]:SHIFTDIR 数据格式x移位方向 Wait for Enable SPIFMT[21]:WAITENA 主站等待从站的数据格式XENA信号 Parity enable SPIFMT[22]: PARITYENA 数据格式x奇偶使能。 Odd parity SPIFMT[23]: PARPOL 奇偶极性 Clock Polarity SPIFMT[17]: POLARITY SPI数据格式x时钟极性 Clock Phase SPIFMT[16]: PHASE SPI数据格式x时钟延迟 Wdelay SPIFMT[31..24]:WDELAY 传输的数据格式X(X=0,1,2,3)之间延迟 Charlen SPIFMT[4..0]: CHARLEN SPI数据格式x的数据字的长度 Baudrate Brformatx=VCLK1/(PRESCALEx+1);SPICLK(VCLK) 波特率 SPI Delay Register (SPIDELAY) SPIDELAY[31..24]:C2TDELAY:片选激活发送开始 SPIDELAY[23..16]:T2CDELAY:发送结束片选无效 SPIDELAY[ 7..0 ]:C2EDELAY:片选ENA超时 SPIDELAY[15..8 ]:T2EDELAY:发送完成ENA无效超时 SPI Pin Control Register 0 (SPIPC0) GIO或SPI功能选择脚 SPI Pin Control Register 1 (SPIPC1) SPI功能脚方向 SPI Pin Control Register 2 (SPIPC2) 读SPI功能脚电平 SPI Pin Control Register 3 (SPIPC3) 写SPI读功能脚电平 SPI Pin Control Register 4 (SPIPC4) 置位SPI功能脚 SPI Pin Control Register 5 (SPIPC5) 清除SPI功能脚 SPI Pin Control Register 6 (SPIPC6) SPI功能脚开漏使能 SPI Pin Control Register 7 (SPIPC7) SPI功能脚拉控制启用/禁用 SPI Pin Control Register 8 (SPIPC8) SPI功能脚上,下拉选择
|