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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1214

积分

金牌会员

Rank: 6Rank: 6

积分
1214
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,1 \$ t& b0 u. Q8 G5 `# x+ t
input mcasp_ahclkx,( h$ H* T' L  Z
input mcasp_aclkx,( k4 @: b3 Z: V. v( M1 K3 \5 k
input axr0,
, {5 O9 X! `3 q+ ?' H" D
. b& M6 y4 z  H/ \) d# Voutput mcasp_afsr,
3 k5 P) F- h* q. b; h, o; Coutput mcasp_ahclkr,
5 a. f1 m4 i, |& {- J7 a! Woutput mcasp_aclkr,( i' [& ]2 a+ Y- w& O4 i' v
output axr1,' k$ {; Q; ^0 K+ D7 q! B( Y0 |( @
assign mcasp_afsr = mcasp_afsx;% A' L4 V  C, w) Y" f
assign mcasp_aclkr = mcasp_aclkx;* w( D/ i9 y' d3 Z3 H/ v# N3 L' e
assign mcasp_ahclkr = mcasp_ahclkx;+ D/ `" V2 d6 ~7 y3 x
assign axr1 = axr0;
8 m$ h( f: y! ^* ?5 N
+ f& U, a) T# J8 j! W3 z  d
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

# V" o3 {" `+ K+ V, b5 P
static void McASPI2SConfigure(void)8 U% o  d1 q5 L& t: q0 J
{6 A5 m, u% R, U( G# P* V' U  P- _# |
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
7 {. x9 E; o0 A- z5 l$ V) A' mMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
8 L/ e( h* o6 [+ y0 mMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);" Z, u: s1 ^& Y$ }' @5 `
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
. w( V6 T; l6 g4 c/ OMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
9 x. H2 Y+ M6 f" R9 I& r! mMCASP_RX_MODE_DMA);. \. h- [; ^/ \: z* Z
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
, s0 E& G6 m5 f% U- F& L! e  |0 cMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */7 \: @) `% p! Z; c
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, 8 z7 e2 w7 [: d. A& R5 v# }
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
; T& t% i3 h% F( a6 MMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
6 y* ?" E" u. |3 nMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
) F5 H$ x" _$ gMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);, X' u3 G) n6 Z& @8 G
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 2 `( T$ c* X; Z8 n2 Z& q( B
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,1 a1 |; {! q% w8 O
0x00, 0xFF);
/* configure the clock for transmitter *// f2 L! G9 g! x6 }% k% S+ v8 `
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);# p4 t' g: T. l& N% H% \
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); 2 |& O* c! h8 m" l8 i
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
* p: ^2 T6 v9 @# E0 p1 d0x00, 0xFF);4 J1 P8 L1 Y4 M& v+ G- V

$ ^1 _" i8 H6 N& [* b, _- [/* Enable synchronization of RX and TX sections */ 7 u! l: \1 ]+ V/ _  A+ E
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
' P2 N9 l1 R* h) g" c3 }McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);0 G. |& s" }3 Y1 {
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*# K& E# O8 _  e; g  t2 O5 |2 V8 N+ d
** Set the serializers, Currently only one serializer is set as) \" F- q+ c1 y- w9 R! x% ^
** transmitter and one serializer as receiver.& g8 j  J* Q/ B" `% W' Z$ X
*/
9 Q* ~3 B0 w! @& ]: `( z+ I. cMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);& T6 X% g8 E' J! m( b. K
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
. _$ I/ S: A  O! r. X& h** Configure the McASP pins
) B: I" F) O, B4 g** Input - Frame Sync, Clock and Serializer Rx
: a) A. D! }, K. ]$ h( l** Output - Serializer Tx is connected to the input of the codec
/ p+ x7 B3 J2 t% m' f*/
4 r; Q3 T) t; Y& a% u' Q* L3 Q: @McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);5 N- F; {# R1 i; O- Z  Q, |
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));" k' ^2 }0 z: k
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX$ @9 o6 o0 w! ]  W0 Y. l
| MCASP_PIN_ACLKX- |: ^( M$ Y2 }1 @! S4 n! A
| MCASP_PIN_AHCLKX
/ Y6 p$ N' j% v  E* |9 ]# l# h, h6 S| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */- D8 Z+ C9 W* V/ v- O  a3 M
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR : b* E6 t, E, M& w
| MCASP_TX_CLKFAIL
& s# }& U7 c/ a! c" N( a$ `- j| MCASP_TX_SYNCERROR
* m- g2 V1 }: o  f5 K| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR 6 B3 A/ R- i6 L8 B) j
| MCASP_RX_CLKFAIL
: C) J9 @' \: q5 G  G* i| MCASP_RX_SYNCERROR ! Z; p# |. E& M5 R
| MCASP_RX_OVERRUN);
" h) B9 }4 \7 q, \- {}
static void I2SDataTxRxActivate(void)( D, h) ^& h# g1 i
{' {. O6 h, h5 L7 W. f) U
/* Start the clocks */
4 v& A* x, |  E/ W( xMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
; ^  Z7 u+ g, ?- k; H7 O& ]0 AMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
6 o' }# z, V) xEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
: }4 c6 t4 X+ E+ _5 g& OEDMA3_TRIG_MODE_EVENT);) [7 b( i" g( O3 B- }
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
+ R) i  ?+ k: P: ^5 N7 ZEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */( R  ~0 c5 ]1 {( C. ~
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
# o- V/ f) D: @; _  e. y) [( NMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
; }0 d8 E& v2 M; kwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
$ K/ a! H( g6 W) n3 G( R% h, iMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);
6 f. B- |1 I) d  y: i( v" ~0 x! wMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);
+ L8 z- c* W2 u" [( L, P}
$ t3 W" j2 I2 a
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
5 c% M6 c' J9 I( i! d' o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-28 18:03 , Processed in 0.040330 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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