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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9964|回复: 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,4 w+ T# V& H7 l$ g- Z
input mcasp_ahclkx,
6 s5 d% j* f1 a  m4 n7 i, m+ ^input mcasp_aclkx,
9 `1 m: O- [) t- ~9 x0 Sinput axr0,
! B% H2 m, R2 X" S. U; j4 z  i5 k; y  c& @( ]5 l. I2 T% c2 |
output mcasp_afsr,6 c( j2 Q, f1 ~1 T7 ^
output mcasp_ahclkr,
+ n/ M. {& ^; [: w( k7 r$ Routput mcasp_aclkr,, U& f! W5 @4 I9 {8 [; D  ~
output axr1,
6 \  g; ~4 V/ }, G: M
assign mcasp_afsr = mcasp_afsx;
+ Z9 z; a  {5 \0 ?assign mcasp_aclkr = mcasp_aclkx;
  h5 l- U: F5 I% U+ {' `assign mcasp_ahclkr = mcasp_ahclkx;
4 N8 n% W: r% S" d4 k& Eassign axr1 = axr0;
2 ]/ W* h1 B* v7 n9 u( d  Q

1 M8 ^; W4 w9 \+ \
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

6 e3 q" c& e. U& J
static void McASPI2SConfigure(void)
5 l# `5 e- h( j* l8 y{
5 ?9 R+ G, ?' |  n  e6 e4 QMcASPRxReset(SOC_MCASP_0_CTRL_REGS);; G$ @; X8 ?/ K$ ~# ~4 P# E# ~, U
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */. u( T" d/ n0 `/ i8 ]9 z8 S4 t
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
: D0 }; v( R* zMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
8 s2 ^2 r7 J( N; P# wMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,# d6 C+ }; y0 e) x6 u
MCASP_RX_MODE_DMA);9 l6 d" d8 {0 d" v( l% Q/ d. ?
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
5 K: x- q; `! T0 N2 J/ m; qMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
/ e) O4 B6 v8 U! @: b( W; bMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
! r8 B6 h: A0 K- z8 x! u& aMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
# y* b: ]. }/ l# PMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
' C1 |: i1 U5 _9 V2 J( m% Y7 W  dMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
$ `; n. ]1 w3 z' i% n  G5 d# bMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);9 H" r& h- U( k+ R1 I( H5 j
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); ) I0 s7 `% W/ y. ]" i8 H' o
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
5 ]0 b$ k. w* o5 L; g2 s0x00, 0xFF);
/* configure the clock for transmitter */
3 j* A" c) @( ^! o* {$ W5 {' wMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);% t. p- n$ V. `6 H; @# [, `
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); ; {4 ^& G2 v/ i2 P0 x1 A
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,- @/ F' H+ T4 o( [8 }
0x00, 0xFF);
% N8 g% C& J! Q1 T. ?: b. f( ^3 `4 P& H1 p! V5 r5 T3 ^
/* Enable synchronization of RX and TX sections */ : G3 r4 l; Y; h5 U/ ~8 D
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
0 `' U( {4 v6 Y- NMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
$ Z$ N" |; Z# V+ K) nMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*0 s7 q9 ^3 C; }" H& s
** Set the serializers, Currently only one serializer is set as6 Q& {: s4 q* F4 t- @/ D
** transmitter and one serializer as receiver., A& l; l8 R  j" f' X
*/
: _. s1 \7 q1 P6 b- g0 I) eMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);% A, l2 x1 n  Y, I
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*9 L( Q# }' U7 y7 e4 _
** Configure the McASP pins * v1 u* n% Y% S
** Input - Frame Sync, Clock and Serializer Rx4 N; u3 W; p1 _/ L7 U
** Output - Serializer Tx is connected to the input of the codec
2 M4 w' j( j5 S  C* T*/
  u( t, C6 j; r: y/ p! O9 P2 kMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);" c. p- [$ q0 K$ P
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));& f1 b# \9 M" ]& X' Q7 P  |
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX- ^, F/ `: E/ b) g* N+ \
| MCASP_PIN_ACLKX
+ Y5 Q' T8 {# H0 Y0 C0 n| MCASP_PIN_AHCLKX' _6 b) W1 m( s3 P# n! E4 Q2 _: i8 Q
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
$ G! A- H+ U. Z) mMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
, ]" z( X" }( j| MCASP_TX_CLKFAIL
( \' j1 ~, B. n, c/ E' V" K| MCASP_TX_SYNCERROR" h5 [6 |7 B; k& ]% ?7 }
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR 7 X! {) o5 K) ^$ |3 _
| MCASP_RX_CLKFAIL3 E' t/ O9 }2 g  ^" k! @
| MCASP_RX_SYNCERROR $ F/ t; m' e2 S9 N: I9 k
| MCASP_RX_OVERRUN);
& u7 s% u+ @! y& Y1 ?1 }3 _}
static void I2SDataTxRxActivate(void)
( D, w4 d# ~% l. w' B{
2 T6 M9 }6 n. V  R7 u/* Start the clocks */
) f2 w1 [" Z, K* y* f1 V$ B1 VMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
4 ~0 T! X# @: T' ~9 S! oMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */) p" |! h; e8 Z' e; p4 `; q
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,3 o0 r6 i# J, ~4 L/ W
EDMA3_TRIG_MODE_EVENT);
3 k" E6 l- w, q  ~2 k2 [  VEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
( A' e, |1 r& sEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
  b! U- A3 g: \6 h! y+ nMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);8 O3 W$ L& E& y- k" u( v
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */9 y' h% K) n: F0 S5 `) N! B! T
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */" e; e# K) ^. A: p4 v, U' \9 r! w
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
9 A% p4 l% F( R' S! |5 [McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
& A  x+ B9 ~; h0 a}
) F5 H+ N5 C7 w( G/ O. |. H' k
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
" D( V/ m8 d. t8 v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-25 09:24 , Processed in 0.039305 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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