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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1215

积分

金牌会员

Rank: 6Rank: 6

积分
1215
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,. G; I  [3 A( H) I1 u  p
input mcasp_ahclkx,
2 T+ j+ j( X9 w( G4 Kinput mcasp_aclkx,
- o8 w3 m# V9 Y# v& _/ @- dinput axr0,
& M+ x) l7 T9 K6 }3 q) p/ q
' C( I: Z2 V% J4 s1 @4 T* Eoutput mcasp_afsr,3 `, D* @8 b5 ?7 W: `+ r
output mcasp_ahclkr,6 l+ ^/ L; p" Z# Q" b; q6 ^
output mcasp_aclkr,: e6 A/ a) D7 Q& D5 s& P
output axr1,- V5 F+ W! u0 y, r  Z$ @
assign mcasp_afsr = mcasp_afsx;
+ Y: O; G6 {( j; q/ C7 p( h3 f0 Z/ Passign mcasp_aclkr = mcasp_aclkx;
8 ]5 }7 {0 p3 jassign mcasp_ahclkr = mcasp_ahclkx;
3 v9 X8 ^- n, u% W! ]* Y* }assign axr1 = axr0;
: j5 ]1 }; z' \; H( `  P
& G) n5 B# \: Y) I( V
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
  d5 v7 Q; V. x! x( g' \5 q
static void McASPI2SConfigure(void)
' E+ }! I2 I0 j  o1 Z* {{% n( B2 |3 q% \  ~& _
McASPRxReset(SOC_MCASP_0_CTRL_REGS);0 ^2 G4 ~3 S7 N1 f
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */8 Y- ?) S. i7 O
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);# X( t; N) C5 R' F5 f* j9 a$ ]
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */6 I, R( U" W5 D. ?$ e0 I' E
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
5 y$ G' l' _# j3 c2 eMCASP_RX_MODE_DMA);9 c: R& T* j# L8 D5 B/ Y( @
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
: {0 Y. V3 Z9 O/ K1 Z- QMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
# U  p2 i9 q8 i8 r- iMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
0 }+ h: }$ L, t% W& LMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);, k8 t& D3 ?* o3 }( {9 h1 r
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, 8 t6 k4 _/ {) d- D3 g6 C7 ]
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */3 ], z  C8 B- y) ]+ ?8 ~- x
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
  o, l: y  m4 u% l/ lMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 9 E5 V" C) o' a* B, \
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
; W: P, `# ~# ?! W0x00, 0xFF);
/* configure the clock for transmitter */9 ~2 ]- U2 A; u' d  M/ w5 j
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);6 a4 z$ ~/ w  B/ S" p) `. |; \
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
( [% j& c0 l5 @, WMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,! R  o3 b% o4 N7 s
0x00, 0xFF);' F( p" \& X3 }8 B! l; H9 j3 C
* s/ ?8 s6 K& A! C( `* }
/* Enable synchronization of RX and TX sections */
( I2 W3 y) }0 Y3 W$ C. p% lMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots *// u; u7 p) z7 t7 k/ I) }% r
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);' N+ n2 f: r3 }0 M8 [; d" [9 m' x  n
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*' z+ Y: k, v( H7 Y9 ^' B7 r
** Set the serializers, Currently only one serializer is set as1 j: d% c9 j3 ~+ d. |$ s
** transmitter and one serializer as receiver.; s$ L. Q( z% N1 u/ S  {
*/, q- L: ~' j3 a7 \
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
5 J* @- i8 x5 ?7 d) g, L( E5 V4 LMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*: E" u6 R- t* R0 a
** Configure the McASP pins % F, n4 [* s- Y6 i
** Input - Frame Sync, Clock and Serializer Rx4 p  ^& g" j% a; O- D
** Output - Serializer Tx is connected to the input of the codec
% h+ z* B# P8 ?6 c% a( O*/* \) _2 X% r$ }4 \' H
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
7 y. v8 w+ [& h: MMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
9 z6 `/ f7 Y- t) n9 C! g0 h3 X9 h! VMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
$ ~+ M% p$ Q+ Z+ C| MCASP_PIN_ACLKX! P, m( L4 {5 b3 ]' Z( J
| MCASP_PIN_AHCLKX' N5 S4 v& a7 S- y; H4 q0 u
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */2 R$ f8 j! o- }2 i
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
* ~% t4 y, {9 h+ d) P% P& C* v| MCASP_TX_CLKFAIL
# z* q3 U. P) h) I- ]' d| MCASP_TX_SYNCERROR( D# r) p  u  A. V
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
9 Z* @: G# L8 q& B- J8 w' n| MCASP_RX_CLKFAIL
  `/ f. J: A; W5 Q8 ~7 @| MCASP_RX_SYNCERROR
/ q+ Z: k# U# N# k1 e, W. D' b- Z5 x| MCASP_RX_OVERRUN);
) m* m, s1 z6 ]; X1 Q}
static void I2SDataTxRxActivate(void)7 J4 I* [" s7 v; n
{3 _* L. M8 l, a& m2 z, b
/* Start the clocks */5 n5 t2 ?/ W$ v7 n
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
( J4 J& k6 b$ V( B( t6 XMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
3 T1 T  |; L& P9 n3 d2 b/ \2 y& ~. v! HEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
9 `; J6 n( ^, F: V9 Q8 e0 ?EDMA3_TRIG_MODE_EVENT);5 _5 Y+ ^. {9 C' ~
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,   W8 B7 a( W" k7 R6 B4 q
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */! Q4 N& b  B% j. T# s* [# l! C8 C
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);& L; P9 p$ [; v
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */1 u* X7 S* m  w# p
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */. f9 z1 g, ]9 M8 Q4 K" ~9 |* Q
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
& |4 W. Z! {. }4 K: z4 VMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);
* y: r3 H+ M+ U. t: a5 t}

1 z6 v' L% f' i& M/ s
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
2 h/ R7 }6 R, s' c! s
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-29 12:19 , Processed in 0.040513 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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