MCASP自环配置。 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1212

积分

金牌会员

Rank: 6Rank: 6

积分
1212
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,
( K: w4 ^5 M5 h' V8 C# Ginput mcasp_ahclkx,+ s, H% v" W8 D
input mcasp_aclkx,& x+ f- a: T- \% |) Z' H2 |
input axr0,
  ?: f7 ^8 g0 x7 C1 G, U2 `' R2 }$ }) X$ [6 g$ @/ `1 k
output mcasp_afsr,
; R3 X# f2 V& H2 |# routput mcasp_ahclkr,* c" d' ?7 {) g( V- G, Z4 _; g
output mcasp_aclkr,2 t1 R8 M# l7 ~3 A& J
output axr1,$ J9 p5 E& \+ t, Y5 P1 \! l
assign mcasp_afsr = mcasp_afsx;0 F. V* S$ J9 f, S0 Y2 D* V
assign mcasp_aclkr = mcasp_aclkx;
# F4 ~4 V( T! Z! [- t1 C5 F9 Tassign mcasp_ahclkr = mcasp_ahclkx;
! T) X' y9 x- J2 B" g  A/ a5 vassign axr1 = axr0;
" v3 m" J$ o# w' [2 \
) y, R/ o( U" R+ I
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
2 O- @2 Y2 [# t0 g9 F
static void McASPI2SConfigure(void)
1 _, Q3 H& [6 k{
, A' s' |2 y& q( X7 pMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
8 N3 A* z! L. b2 Z4 n5 pMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
; a! F' Z# e9 [" Y7 e6 B, h! ^McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
" ~5 ~' `- e$ ?7 u% L9 bMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */+ m# }4 I0 w2 L( ^2 H1 D" y
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,1 B( H1 O. X0 H9 j" Z8 |) c
MCASP_RX_MODE_DMA);% M$ ?; {0 N  L3 e# [5 W, W
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
4 i) C# e& F7 ^7 P( I7 tMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */* p+ O  ~& ~6 T- a/ E0 L& W
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, , f  r3 H9 A- d& Y  {% `! V, Y- `. b
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
$ K2 C- S3 ?" r- X9 z( M: D3 u4 GMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, 1 b& y' H4 K+ K* z3 j+ P
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */4 U: u: n  ?! g) |  j& ]
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);3 h& |3 D' Q7 k" A
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); * C( C; X0 Z6 ~1 W. d, Y+ ~
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
& l; [' s, w, ?& j$ t+ U0x00, 0xFF);
/* configure the clock for transmitter */' S5 o6 B0 f# m  y  e
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);1 A: s, p2 \. `5 }0 {9 N  C
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); . q" R% ?! R4 m8 z% ]* n* t7 u( A5 k, g
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
. E( y5 }4 R$ z; G5 y# _1 l, x0x00, 0xFF);
. E1 p( D! q: l; ~' \- m: X8 i0 F
+ `7 X4 b! F, A/ X/* Enable synchronization of RX and TX sections */
1 [$ J6 \8 a2 T0 H7 F8 L1 ]McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
0 B! O: j- v( j' b6 N& H/ A# c4 MMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);9 e. Y, D% f8 {! P* U+ u$ j' M
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*: F! Y) Y9 Y7 e. @
** Set the serializers, Currently only one serializer is set as
6 W1 e$ Y6 N1 ?; i3 K! l/ J3 f** transmitter and one serializer as receiver.( ~5 V" X0 C0 [' A: m( y
*/: v/ c/ l; J+ k9 T# ]1 D% C
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);- N& l  o: N# j* ~3 U$ |
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*8 v' g( Z* S4 |; C# l0 X; e8 Q
** Configure the McASP pins
, }9 I" t! V2 c** Input - Frame Sync, Clock and Serializer Rx
! h4 o: N- V9 y2 y1 D2 P& i  D** Output - Serializer Tx is connected to the input of the codec 5 D8 b; {5 M: U2 e7 O
*/
% C! F8 s9 [( |' V& C' a' u" WMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);" p% X0 K9 h; x% \5 \
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
- w7 }6 i+ S' q6 Z" D; U* oMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
0 F) I+ h- j6 A7 d. Q3 o) F( ?# u+ u| MCASP_PIN_ACLKX
9 v) b6 Z% n4 }5 z0 e| MCASP_PIN_AHCLKX7 Y- c7 N& }2 o, c2 P0 Y/ U
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */. z" @# M1 p/ n* o6 z3 c
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
5 g- |  ~3 g5 @6 }# q| MCASP_TX_CLKFAIL
0 J) \4 B$ ]. Y3 |) R| MCASP_TX_SYNCERROR
7 g+ Q7 Y- N: |: K- U% ?| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR ! }) n0 \+ e9 V! b* [2 d$ B+ r' b
| MCASP_RX_CLKFAIL
' P" q) x% {5 d7 P$ t- b| MCASP_RX_SYNCERROR
. s5 I$ q: W: [6 k, C| MCASP_RX_OVERRUN);7 F  z' |1 t. e" l
}
static void I2SDataTxRxActivate(void); h: Z3 H5 s' F" ^6 d# c; Q9 k
{: U2 t- @% B% P
/* Start the clocks */1 k7 H* q3 H. v7 i* c4 x! F
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);  H; Q% j  k* t; Q0 G
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */6 ^8 T4 L+ c# t" v
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,+ m. {9 A# p& i  @
EDMA3_TRIG_MODE_EVENT);
9 N% i2 R5 h$ u# K) o/ [EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
1 n* s; h7 B. P! F* T6 Q5 v7 T' lEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
& _: I7 R$ I& J8 LMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
. V  a2 F3 E% \: h8 D. yMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
9 [9 u, t0 e5 d( ]! T- V: f) @6 ?" qwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
* z7 D& E: H" q. i+ nMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);. K; h9 F3 M* S  v6 e
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);" `5 V) j8 O1 {
}

6 }7 i$ n$ T8 @/ q% v
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

# j7 Q' [- c! J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-12 22:01 , Processed in 0.038647 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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