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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11522|回复: 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,
! q5 J! T8 y/ m5 @9 ^8 ~4 {input mcasp_ahclkx,
% O( a/ e( Z( @( T& _( zinput mcasp_aclkx,* ?; |7 F6 H- O8 L  n. y, c. _
input axr0,
' _2 Q/ f3 s' U; O/ C
) J, x1 T7 I/ doutput mcasp_afsr,
9 b1 E7 X  M1 l: {- J( Woutput mcasp_ahclkr,
9 d: ^% l- I# C% f4 d5 V. P  Youtput mcasp_aclkr,
* E/ }1 Z; Q# r1 u1 c' koutput axr1,  o+ s; D0 U) `
assign mcasp_afsr = mcasp_afsx;( e- R" N! w. B" M
assign mcasp_aclkr = mcasp_aclkx;
9 x8 t: `* I# Z) C7 @1 sassign mcasp_ahclkr = mcasp_ahclkx;
+ T. @' m9 b( G$ \assign axr1 = axr0;
* J, F# @  [& O0 N! C
$ m6 x9 q$ f, i6 y3 u
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

; C, o" J! p+ b" `5 u
static void McASPI2SConfigure(void)
$ U" ~7 H2 J& s! O{
7 Q2 l4 x5 W4 ?9 F1 M6 J! H2 RMcASPRxReset(SOC_MCASP_0_CTRL_REGS);6 i# {6 I9 B1 @, Q- _
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
- c' \3 b  A; cMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
) E0 ?0 @, v: p/ \McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */$ e, Q" }) W7 h) V: h  X
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,/ ~, g4 s1 v9 `3 T1 i) z
MCASP_RX_MODE_DMA);
% G" h5 \5 z1 u5 K$ v; sMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
! `2 ~+ l0 D% V% p9 HMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */1 |6 c2 V; S9 l0 `5 n- ?9 _
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, 6 M- G+ H$ `- Y
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);  W- L$ e& H" t! i& b
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, 5 i. Z9 p7 t6 B0 G7 D# }
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
, @$ I4 G5 y( ZMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);1 r* t; F1 p  Q5 f! D- j
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); * L/ K: L- ~" U$ z5 y/ F+ ~8 i
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
8 |  i2 k2 _1 g2 U4 [9 `7 K0x00, 0xFF);
/* configure the clock for transmitter */3 z, j. w* a2 N& ^0 V% M
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);2 u& ]- ^2 c; H; o. T% k
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); $ V% I5 r( E1 u: r# D
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
) A& r* q( _7 x8 D: e6 D$ N0x00, 0xFF);
: O) w( a' g, ~4 R0 I4 j$ D/ v& c- u0 Z
/* Enable synchronization of RX and TX sections */ $ D8 C7 F$ w- {: J6 g, v$ Z
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */3 Q0 r& N& t/ R( B; w
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
9 v, w9 v* O; \McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
6 w1 d3 ?# G4 F+ f# {% D5 s" Y** Set the serializers, Currently only one serializer is set as7 @" v. i5 x( _# i$ Z
** transmitter and one serializer as receiver.
. q1 V6 h# Q5 p0 x* `- j; l& w- n*/0 K2 V8 S2 \; T. X) m/ }. H% h
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);7 m" Q0 k' N. `1 T
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*2 x: ^- {3 n7 D, a% r4 m6 K
** Configure the McASP pins 1 r4 K7 }, `* _. Y+ I
** Input - Frame Sync, Clock and Serializer Rx7 A% p) l3 u, o( r$ M6 s
** Output - Serializer Tx is connected to the input of the codec * u4 P1 q8 ^' w) M6 n8 J' F
*/" Y. i3 z; m- n
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
. W3 C% S. h. [+ H. HMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));  ~: W1 W$ L" e9 I0 J
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX( d. t( }* _+ G7 R0 I9 ^
| MCASP_PIN_ACLKX9 ]( x( v0 Z+ E+ L) \
| MCASP_PIN_AHCLKX) Y2 D) r  v2 u% l& R6 D
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
% j: g; K+ L$ g( ^) T! j" V4 z7 AMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
# R4 z3 R; I/ t2 u' T7 B| MCASP_TX_CLKFAIL
" ?- T8 m' L3 t9 H' |/ P| MCASP_TX_SYNCERROR
. ]0 L; f4 |, X- A$ F; l/ D9 ]| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR 6 s9 Z0 |, I* q1 F
| MCASP_RX_CLKFAIL
" m5 F, L1 L# F| MCASP_RX_SYNCERROR 1 A3 B& e* D. J$ Y( y
| MCASP_RX_OVERRUN);
  O. a0 L, K( W6 D" F$ G* ~9 z$ O# k}
static void I2SDataTxRxActivate(void)
" n; z# J6 |. a  V{
* h+ o" i9 _% |% f* Q; v/ D, K/* Start the clocks */
, v/ S4 k3 S5 @7 }' N! {McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
+ Y5 \1 g" ]  l$ M8 CMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
" i. D$ \3 O9 n0 K+ rEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,% I: S+ Y# z" \; ]" ^# t1 n! A/ ?
EDMA3_TRIG_MODE_EVENT);- v* _0 w$ d# w
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, & I& C/ }7 K' O
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
1 T) S- I+ w" ]( T6 mMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
5 O' D2 M9 ^8 ~McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
0 g3 I/ s2 O' u9 E) b$ nwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
% T% N7 {; X5 U. VMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);. y7 i6 T/ Y4 C0 J' l+ T. c
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
3 u2 j+ |- |0 z1 Y}

# t. |( m. C5 V# j- g
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

' f9 @* b, Q5 w* l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-7 23:06 , Processed in 0.041190 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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