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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8750|回复: 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," V" N7 T3 d+ p3 {
input mcasp_ahclkx,
: S. k/ R" Z; I$ h2 Ninput mcasp_aclkx,; v% J0 N& R2 h' O) w1 Q
input axr0,
. o) ?, H+ h) A2 I" W, L  Q* {/ Y+ H# j* e
output mcasp_afsr,; h) R: _8 J2 n# }  _, [
output mcasp_ahclkr,
# Y* o) h5 r& f+ p; ^; e3 Poutput mcasp_aclkr,: B# Y. N# t9 H- W( [0 [  O
output axr1,
& M, F5 a. k# ?
assign mcasp_afsr = mcasp_afsx;
0 S8 ^4 L# V* @! Z  T" g  I5 M7 Qassign mcasp_aclkr = mcasp_aclkx;
) `; X/ }2 H6 @  q8 |* Jassign mcasp_ahclkr = mcasp_ahclkx;: t, Q% E+ b8 V7 J5 j; \
assign axr1 = axr0;
6 y$ v6 g. B+ Y6 ?8 @9 g1 H  _

- l( |/ l2 |, U, a
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
, i) B- @, Z6 j6 _
static void McASPI2SConfigure(void)8 }( [/ Z' v6 T  D' Y
{9 c- h- ?; K) b  Y5 q: b% r" t+ w
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
" i; G3 M5 u( i; K- V5 K# E8 A. R* AMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */+ d. @; ]$ M2 v' v8 z
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);) Q; z+ D# a& |4 j7 n# v
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
8 A1 l8 W: ~4 I/ \* KMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
- y' M& v& O: g# \; vMCASP_RX_MODE_DMA);/ `: {4 ^9 |8 D, b, E( O3 \9 }
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
* z. {3 k; v. O* v9 ~0 b  t' lMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
5 H) n9 g3 K. q; w+ q0 w. M+ HMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
+ `7 l% `$ X1 l/ Q  t+ |* Z/ UMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
! \. [8 c+ N0 o/ s( o+ X" M; ?: rMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, - Q; y! D5 u" k5 U
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */$ A( v/ p3 Q/ `4 f
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
& ]& W  B* ]6 ~$ ?! c, q" e7 TMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 5 G3 J0 }, K; e: A( m7 `( _
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
/ c9 o- r% t0 j) x/ a# T) n. c2 d$ f+ G0 t0x00, 0xFF);
/* configure the clock for transmitter */
; @' T' J$ |* R( o6 E* Q, g! cMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);. H' c9 n% a- @4 c
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
6 Y! h3 H  i! lMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
  l; V2 q. A: |1 |( T; s; [0x00, 0xFF);
' U. g; r% j0 \( S& P
1 _" l9 c% n9 @" r1 K& j/* Enable synchronization of RX and TX sections */
) s. \* e# I/ R8 b% f! @' tMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
! l& n' c! g- q. [McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);9 j2 M+ N0 J% ^, P
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*' w- t3 B: ]+ O  j) ?3 ^
** Set the serializers, Currently only one serializer is set as
0 Y% D/ J  b, F( d( r, e2 C& P** transmitter and one serializer as receiver.
$ X6 F% f6 p! ~+ o) D9 v" z1 ^*/
/ M' n' a0 m5 x3 s7 u3 `McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);/ @3 f6 N' Y: }) m1 l- i
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
+ y* X$ L* `! A! `7 S** Configure the McASP pins
0 {0 n6 k$ F$ [8 U9 t7 g* ~+ h** Input - Frame Sync, Clock and Serializer Rx
" L/ k+ h4 X/ n2 @$ V** Output - Serializer Tx is connected to the input of the codec
1 h' R# K8 t' c*/( ]" \) {; S8 R
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
; k: }+ w1 R1 w- N1 H$ eMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));" D9 l* k0 ]3 j! B' @" |5 w
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX+ L& g. H  B- n6 r$ ~2 `1 {; f, j2 \
| MCASP_PIN_ACLKX. s& e2 H+ |+ o! D+ J9 v3 S3 F
| MCASP_PIN_AHCLKX! S/ w  c* V7 E9 a9 L; Q
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
) i+ [6 c( R2 j0 x# I- c% nMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR / o6 q! p- Q& ?; L% l
| MCASP_TX_CLKFAIL
$ p- q% l- k" i; N7 Q| MCASP_TX_SYNCERROR# b& q- v$ F$ Y7 A( i$ m
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR 3 q3 r) q, F: ]" l+ g& A0 Y/ o
| MCASP_RX_CLKFAIL
. P$ |: n. {+ K% b' k: P| MCASP_RX_SYNCERROR
$ F' e, ^6 ?: D+ m| MCASP_RX_OVERRUN);1 ]8 R, x0 P" Y# L$ F
}
static void I2SDataTxRxActivate(void)( E$ u9 }. _% w( V. j+ ?
{
) T! r  k& ^# [6 s- L/* Start the clocks */) W  [0 T3 O0 f
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
1 U% q' m* {  Z' j+ ^- tMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */1 c& N/ Q; b3 w3 _4 R, m& t; x/ r
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
) {* M0 m/ o( A6 }3 LEDMA3_TRIG_MODE_EVENT);* }' L0 Z1 `6 A9 i' Z0 T
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
1 `8 Q% _( E( s( g, A/ V8 U. H2 Z1 m, G: QEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */1 G* w! T) U  r4 X; w, i
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
2 V: a3 K6 w0 u. \McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
: y' u& `' V; N8 ^7 ewhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */3 r5 Q5 V' {$ C" M  I3 Y4 V
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
  P/ p/ O( t0 z4 VMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);/ M9 F0 m  R* e3 Y8 R( B
}
. V# f" ?9 d9 q+ N
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
' d: Q' {3 Q- X4 J. W' s$ _, Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-4 03:11 , Processed in 0.037637 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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