MCASP自环配置。 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12566|回复: 0
打印 上一主题 下一主题

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1216

积分

金牌会员

Rank: 6Rank: 6

积分
1216
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,7 j5 J2 g3 U6 n' c
input mcasp_ahclkx,( L1 k% j3 j& |; T' T( ]* O2 w0 k
input mcasp_aclkx,$ i. _. B1 r7 |# m- b
input axr0,3 W5 E$ c6 P7 m4 Q
' Q% x" p+ O  l6 e" J
output mcasp_afsr,
$ \3 ]3 Z5 G$ Goutput mcasp_ahclkr,
6 i$ b  t1 @- V& h! _. eoutput mcasp_aclkr,
* P: Y3 W. S; o, q: j6 uoutput axr1,
+ t* S) m" L. c# ?) y! g
assign mcasp_afsr = mcasp_afsx;0 W& \4 Z* R5 k: q
assign mcasp_aclkr = mcasp_aclkx;' S# z) [, Y5 C0 z6 X0 Z2 C
assign mcasp_ahclkr = mcasp_ahclkx;1 x$ D2 L& E2 @9 D) ~4 c! d* p  B. J" {
assign axr1 = axr0;

9 O, i4 q2 r% v2 h% J/ |2 X* w, @- e  |4 s' s
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
3 n$ B1 |" ]% W
static void McASPI2SConfigure(void)
# s/ L( ]  s! Y$ B0 y{
, x1 n- o0 ?$ f: f3 |McASPRxReset(SOC_MCASP_0_CTRL_REGS);/ Q" n* @2 K% ]" K5 F
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
! B* K+ D5 ]; bMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);% L/ L/ G$ Z; D2 Q5 g/ |% L0 I
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
5 l5 |& z7 a% b0 f. @) eMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,) }, B; d( ?7 r
MCASP_RX_MODE_DMA);
% a; R& f% R% B* {1 MMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,4 f% w& |9 I" V- S5 r5 [, n
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
+ Q" i2 A* \1 U5 S& X. }McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, 7 B! I& X1 J7 ^% Z- X+ Z
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
7 u9 U3 |. J% {' Q( \McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, + Z5 S3 R5 s& }6 Y
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */( r# M: ?8 Z- N+ l' g" ~. n6 E: W
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);; `2 j4 c. v/ a& h- o) [- W
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 9 e7 T2 x+ ]4 R, I  f2 T0 `" ~5 P0 T
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
, q. i! G6 H( n( [2 n0x00, 0xFF);
/* configure the clock for transmitter */
8 v4 y2 d! M# Q. U' ]" [0 xMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
% X/ r" e8 a9 G, d  h: OMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); : f( b/ s. x3 c9 B6 Z3 ~# N% g
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
4 m2 c* W$ P" `0 D5 F0x00, 0xFF);
: F" W! n1 {8 c% m- b3 ]* ~  J( U+ _5 R/ w
/* Enable synchronization of RX and TX sections */ % ~( I, q2 |* s8 N# b
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
6 B  H0 J! s( t7 Z) Y; k( X- h$ nMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);1 @. q  }: o6 S1 I! h/ M4 r
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*/ O7 K  z) L1 J# Z7 S
** Set the serializers, Currently only one serializer is set as7 ~+ P* J/ q# h! c; `; @
** transmitter and one serializer as receiver.* j1 Z( f+ b+ J8 k# H) {' G/ e
*/
, M  X, `8 m  t% E$ Z. k. gMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
, l+ u2 |" e. AMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*8 Q6 [. C& B) Q- }
** Configure the McASP pins
! i% x1 {3 `! J: R% {0 ^** Input - Frame Sync, Clock and Serializer Rx3 S2 X0 ~+ f! P6 P
** Output - Serializer Tx is connected to the input of the codec 7 A' O7 }' V; _, Z' P
*/% _  E  G% d8 A7 N
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
4 G. @% o" M3 f$ ]' dMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
3 Y6 v1 J; L" AMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX7 ~3 u+ k$ m9 m; X" F) M+ E
| MCASP_PIN_ACLKX% n" g8 O3 K% O! x" J/ k* q7 ]3 s
| MCASP_PIN_AHCLKX
0 L$ |  s0 c2 ?3 E: W- T| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
( B( c% R" i( T( R% _0 d4 HMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR % H/ K; r. \6 ^
| MCASP_TX_CLKFAIL " P. ]4 |2 c* C
| MCASP_TX_SYNCERROR% ?4 A1 d2 K  i
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR 0 ~, j; B0 b+ g
| MCASP_RX_CLKFAIL
( F1 F. m2 h, [% l' r# z| MCASP_RX_SYNCERROR 2 l' F& ]4 \& p3 {
| MCASP_RX_OVERRUN);
# X+ T0 k% v3 h( [$ R- u: w}
static void I2SDataTxRxActivate(void)
0 h6 D; g3 T5 _{( |1 O: G- _2 @7 {- `4 @
/* Start the clocks */
& \- b7 X$ [: e' _McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);& Y7 u( n8 n1 G6 z5 i2 Y" ^. {
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
% {, t4 q5 B' Q( GEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,( \) ]6 E! H. [& f. |0 g( P7 u
EDMA3_TRIG_MODE_EVENT);
" y) ^) p- w" p. M! eEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 7 T# d( d& L8 s; |$ N, [
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */  P( j! d/ R& B( _
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);6 Y4 l* c: g4 j
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
; j% F3 y' e: H  d( f3 \while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
: E5 g5 F3 H% v+ j* U3 _# tMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);- S' M3 Q3 ?$ x6 x  n
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);0 `# m. I5 O. |! ]
}

, s7 q4 y! {/ L  h) d( j& s; i
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

/ b# `+ s' O4 i6 Y7 ]! y3 p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-5-11 16:58 , Processed in 0.048685 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表