mcbsp模拟串口详细设置含起始位停止位_第1页
mcbsp模拟串口详细设置含起始位停止位_第2页
mcbsp模拟串口详细设置含起始位停止位_第3页
mcbsp模拟串口详细设置含起始位停止位_第4页
mcbsp模拟串口详细设置含起始位停止位_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

使用说明使用说明 该程序所进行的是MCBSP模拟串口接收和发送 发送和接收采用EMDA事件 的方法 测试使用的板卡为odu v2 板卡 板卡CPU主频为640MHz 测试所选 为MCBSP1通道 在odu v2板卡上对应的管脚为J17B 上5脚 PMC C DSPx 与17脚 DSPx Mcbsp1 FSR1 短接做接收 35脚 DSPx Mcbsp1 FSX1 做发送 测试时可以连接b7020 v3板卡以方便测试 b7020 v3板卡上J5接插件2脚为模拟串口的RX 接收管脚 6脚为模拟串口的 TX 发送管脚 测试时可以用一下两种方法测试 第一 直接将b7020 v3板卡上J5接插件2脚和5脚短接 测试时 while循环 发送数据九个数据0 1 2 8 中断函数interrupt void uartRcvInt void 接收数据 程序正常运行时接收到的数据和发送的数据应 该一致 第二 辅助计算机测试 将计算机串口的发送端 tx 接b7020 v3板卡上J5 接插件2脚 将接收端接b7020 v3板卡上J5接插件6脚 GND接板卡的地 连接好之后通过设置计算机通讯参数 波特率115200 数据位8个 奇偶校验 无 停止位1位如下图所示 注 端口号根据计算机的显示做相应调整 该文件夹中附件为串口调试工具 测试时所使用的串口通讯软件 测试窗口如下 发送数据显示 接收到的数据将会在窗体中显示 若接收到的数据和发送的数据相同则测试成 功 使用时应注意的问题 define Mcbsp0Xmit 12 Mcbsp0 发送事件 define Mcbsp0Rcv 13 Mcbsp0 接收事件 define Mcbsp1Xmit 14 Mcbsp1 发送事件 define Mcbsp1Rcv 15 Mcbsp1 接收事件 define Mcbsp2Xmit 17 Mcbsp2 发送事件 define Mcbsp2Rcv 18 Mcbsp2 接收事件 Mcbsp1 的发送事件对应的通道号为 14 Mcbsp1 的接收事件对应的通道号为 15 测试板卡的 cpu 主频为 640Mhz Mcbsp 的时钟频率为 CPU CLK 4 160Mhz 测试时使用的波特率为 115200 波特率计算方法 CLKGDV CLKmcbsp 16 baudrate 1 85 在程序中同通过修改My uart c中void ConfigMcBSP MCBSP Handle hMcbsp 函 数中的MCBSP SRGR CLKGDV OF x 中x的值来修改波特率 在本例中x 85 起始位 数据位 停止位的设定起始位 数据位 停止位的设定 在本例中起始位为 1 位 数据位为 8 位 停止位为 1 位 设置方法如下 1 发送时通过修改 my uart c 文件中 void ProcessTransmitData Uint8 data 函 数中以下内容实现起始位与停止位的修改 若要添加停止位应该改变数组长度 无校验位 for cnt 1 cnt 9 cnt 数据位为 0 7 1 为起始位 8 为停止位 if cnt 1 起始位 xmitbufptr 0 x0000 else if cnt 8 停止位 xmitbufptr 0 xFFFF else if xmit char else xmitbufptr 0 x0000 end for cnt 偶校验 for cnt 1 cnt 10 cnt if cnt 1 起始位 xmitbufptr 0 x0000 else if cnt 8 校验位 for j 0 j 8 j Tran j xmit char check sum Tran 0 for j 1 j 8 j check sum Tran j if check sum 1 偶校验 xmitbufptr 0 xFFFF else xmitbufptr 0 x0000 else if cnt 9 停止位停止位 xmitbufptr 0 xFFFF else if xmit char else xmitbufptr 0 x0000 end for cnt end for i 发送时还应该根据数据长度修改 my uart c 文件中的函数 void ConfigEDMAtx EDMA Handle hEdma Uint32 mcbspXmtAddr 的相关设置 CNT Setup EDMA CNT RMK EDMA CNT FRMCNT DEFAULT EDMA CNT ELECNT OF BUFFER SIZE 10 10 表示 1 个起始位 8 个数 据位 1 个停止位 应该根据具体的通信协议修改 EDMA CNT ELECNT OF BUFFER SIZE 11 11 表示 1 个起始位 8 个数据位 1 个 校验位 1 个停止位 应该根据具体的通信协议修改 2 接收时通过修改 my uart c 文件中 void ProcessReceiveData Uint8 recv data 函数中以下内容实现起始位与停止位的修改 无校验接收 for i 0 i BUFFER SIZE i recv char 0 Process each UART frame for cnt 1 cnt 9 cnt 8 个数据位 1 个起始位和 1 个停 止位 if cnt 1 cnt 8 起始位和停止位的处理 Ignore Start and Stop bits recvbufptr Else 数据位处理 Get 16 bit data from receive buffer raw data recvbufptr recvbufptr get the value of the majority of the bits recv val VoteLogic raw data put received bit into proper place recv char recv val cnt end for cnt A full BYTE is decoded Put in result recv data i recv data i recv char end for i 校验接收 void ProcessReceiveData Uint8 recv data inti Uint8 recv char 0 short cnt 1 short recv val unsigned short raw data unsigned short recvbufptr receive buffer pointer int receive check sum int Check sum int Rec 8 int j Point to the receive buffer recvbufptr unsigned short recvbuf Process all data in the Receive buffer for i 0 i BUFFER SIZE i recv char 0 Process each UART frame for cnt 1 cnt 10 cnt if cnt 1 cnt 9 Ignore Start and Stop bits recvbufptr else if cnt 8 raw data recvbufptr Check sum VoteLogic raw data if Check sum receive check sum recv data i recv char recvbufptr else Get 16 bit data from receive buffer raw data recvbufptr recvbufptr get the value of the majority of the bits recv val VoteLogic raw data Rec cnt recv val receive check sum Rec 0 put received bit into proper place recv char recv val cnt for j 1 j 8 j receive check sum Rec j end for cnt end for i end ProcessReceiveData 接收时还应根据通信协议的内容修改 my uart c 文件中函数 void ConfigEDMArx EDMA Handle hEdma Uint32 mcbspRcvAddr 中的相关内容 CNT Setup EDMA CNT RMK 0 BUFFER SIZE 10 本例中 10 表示 1 个起始位 8 个数据位 1 个停止位 特别提示 void ProcessReceiveData Uint8 recv data 函数中两处 EDMA CNT RMK 0 BUFFER SIZE 10 都应该修改 注意事项 1 使用时应注意 mcbsp 通道号 Mcbsp 0 为 DEV0 Mcbsp 1 为 DEV1 Mcbsp 2 为 DEV2 2 以及 mcbsp 与 EDMA 相对应的通道号 Mcbsp0 的发送事件对应的通道号为 12Mcbsp0Xmit Mcbsp0 的接收事件对应的通道号为 13Mcbsp0Rcv Mcbsp1 的发送事件对应的通道号为 14Mcbsp1Xmit Mcbsp1 的接收事件对应的通道号为 15Mcbsp1Rcv Mcbsp2 的发送事件对应的通道号为 16Mcbsp2Xmit Mcbsp2 的接收事件对应的通道号为 17Mcbsp2Rcv 3 接收和发送数组的大小的设置通过设置 my uart h 和 my uart c 中 BUFFER SIZE 的值设置 其他需要改动的地方 4 在 voidvoid ConfigEDMAtxConfigEDMAtx EDMA Handle hEdma Uint32 mcbspXmtAddr 函数中 若选择 mcbsp0 通道则 EDMA OPT TCC OF Mcbsp0Xmit 若选择 mcbsp1 通道则 EDMA OPT TCC OF Mcbsp1Xmit 若选择 mcbsp2 通道则 EDMA OPT TCC OF Mcbsp2Xmit 5 在 void ConfigEDMArx EDMA Handle hEdma Uint32 mcbspRcvAddr 函数中 若选择 mcbsp0 通道则 EDMA OPT TCC OF Mcbsp0Rcv 若选择 mcbsp1 通道则 EDMA OPT TCC OF Mcbsp1Rcv 若选择 mcbsp2 通道则 EDMA OPT TCC OF Mcbsp2Rcv 在void transmitMsg Uint8 tx msg 函数中 若选择mcbsp0通道 则 ConfigEDMAtx hEdma12 MCBSP getXmtAddr hMcbsp0 若选择mcbsp1通道 则 ConfigEDMAtx hEdma14 MCBSP getXmtAddr hMcbsp1 若选择mcbsp2通道 则 ConfigEDMAtx hEdma17 MCBSP getXmtAddr hMcbsp2 在 void UART init void 函数中 Mcbsp0 通道的配置为 IRQ reset IRQ EVT EDMAINT disable and clear the event interrupt EDMA clearPram 0 x00000000 clear Parameter RAM of EDMA hEdma12 EDMA open EDMA CHA XEVT0 EDMA OPEN RESET Open the EDMA channels EDMA 12 for transmit hEdma13 EDMA open EDMA CHA REVT0 EDMA OPEN RESET Open the EDMA channels EDMA 13 for receive hMcbsp0 MCBSP open MCBSP DEV0 MCBSP OPEN RESET Open the McBSP channel 0 ConfigEDMArx hEdma13 MCBSP getRcvAddr hMcbsp0 Configure the EDMA receive channels IRQ enable IRQ EVT EDMAINT enable EDMA CPU interrupt tied to McBSP EDMA intEnable Mcbsp0Rcv enable EDMA channel interrupt to CPU EDMA enableChannel hEdma12 Enable EDMA channels 12 EDMA enableChannel hEdma13 Enable EDMA channels 13 ConfigMcBSP hMcbsp0 Setup for McBSP MCBSP enableSrgr hMcbsp0 Start Sample Rate Generator set GRST 1 waitusec 1 MCBSP enableRcv hMcbsp0 Wake up the McBSP as receiver MCBSP enableXmt hMcbsp0 Wake up the McBSP as transmitter MCBSP enableFsync hMcbsp0 Enable Frame Sync Generator for McBSP 0 set FRST 1 Mcbsp1 通道的配置为 IRQ reset IRQ EVT EDMAINT EDMA clearPram 0 x00000000 hEdma14 EDMA open EDMA CHA XEVT1 EDMA OPEN RESET hEdma15 EDMA open EDMA CHA REVT1 EDMA OPEN RESET hMcbsp1 MCBSP open MCBSP DEV1 MCBSP OPEN RESET ConfigEDMArx hEdma15 MCBSP getRcvAddr hMcbsp1 IRQ enable IRQ EVT EDMAINT EDMA intEnable Mcbsp1Rcv EDM

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论