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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10112|回复: 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,# M! |" i3 z4 q7 {+ E
input mcasp_ahclkx,- Z2 V# y  b; o; V
input mcasp_aclkx,
0 \' V1 a$ i( ?0 \; T$ }input axr0,' ^% K0 V6 b3 P" ]# G  \
$ I* P# k  o, ]; p- p6 n( }
output mcasp_afsr,
3 _5 _2 ]# f9 U+ v# P1 Uoutput mcasp_ahclkr,- a3 k2 r2 {3 ]! Y6 @
output mcasp_aclkr,
' W3 E+ c1 f# w' s+ D/ e2 P* \# p9 ooutput axr1,8 b# \% ]7 C; j/ v  a8 @
assign mcasp_afsr = mcasp_afsx;
( b" c* N5 q8 c: {0 L; qassign mcasp_aclkr = mcasp_aclkx;( z0 q. y  U" p1 K& Z
assign mcasp_ahclkr = mcasp_ahclkx;3 I9 H2 S  c; Q; v  A4 }
assign axr1 = axr0;
7 C" |% g" O8 ]/ l

5 F7 o( |# j) {) v
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
0 @0 u7 a' `2 \: V1 N
static void McASPI2SConfigure(void)
4 F9 I# F' `& ]{5 {! m$ P3 ~+ _
McASPRxReset(SOC_MCASP_0_CTRL_REGS);/ ~8 G% Y9 ~6 g8 `% S1 c
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
5 O0 @; K; w% e1 Q3 gMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);7 y" u5 T& i$ F2 f; l3 j
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
4 Z% J3 l1 c$ Y1 {5 vMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
* j9 r  ^* O0 e  u& X3 w, d1 |% mMCASP_RX_MODE_DMA);9 }' u7 c* C& F
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
0 b* ?8 H& @5 O" u3 O/ y9 s9 NMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */) x* [5 w0 ~) s, u
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
: R) G' D  ]9 Y, g) J+ RMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);8 U5 f4 p3 `1 E9 U7 ~, I
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, $ K$ n' y) u/ f* L
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */4 \$ y7 b8 M7 x4 o8 F* _( P- i5 {
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);/ C" @$ Y- g4 u1 G: N7 j* `
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 5 v3 Q- Z* B* A, E& o5 |1 M1 \% q5 A
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,! F) x3 L% \. x: z! z, G4 I
0x00, 0xFF);
/* configure the clock for transmitter */6 a3 m2 M! E; e8 l$ K. s
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);" e+ R3 T$ z! j- c# z
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); 8 W0 g9 ]' g% I& L* S! [
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
6 e* ~( [9 J2 c  v: J; F0x00, 0xFF);
4 V+ e( i  z2 H6 y5 `# `) d0 b# Z
9 i' T; D* t" R7 m( c$ a/* Enable synchronization of RX and TX sections */
! H( u  Y! M3 R! K; k: F6 z. BMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
1 V& {9 o( g+ U2 DMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
2 p" m9 z/ ^& p" {0 aMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*" M5 n- ]$ X6 s4 W5 R! F$ `( b
** Set the serializers, Currently only one serializer is set as. M3 R: R, `2 D, _6 ^& W8 Q& m4 M
** transmitter and one serializer as receiver.8 e- d4 U! p9 s$ O; a# l! f
*/
$ s3 |5 K8 k" Z3 Y, m/ ]/ Y1 @+ WMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);9 t0 w+ {  m# J% {, |$ p! o
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
3 h( }$ W" P7 P! t! i2 r** Configure the McASP pins
" R( O+ {$ L- H/ z1 }# g3 R** Input - Frame Sync, Clock and Serializer Rx" E" S1 M( W# P2 D- Y* I
** Output - Serializer Tx is connected to the input of the codec # R7 r2 _+ I3 N; o, @* N; W# Q
*/
, v, @) w& U! E, UMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);. F. a! K  S5 X0 `4 Y
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
& T  X8 l4 G3 {0 e7 Y: EMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX; p, i6 B/ e- x( H2 ^# L. o* c
| MCASP_PIN_ACLKX
& g2 `" ]7 k8 {" ~" }' f| MCASP_PIN_AHCLKX0 K3 A" @1 e4 P4 j2 m0 H3 W
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
' J% g* F* |* x& _6 w4 g, q" zMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR ) s4 |# X" [- r3 v, x2 a
| MCASP_TX_CLKFAIL
( c! Y8 Y& }2 g. ~  z- O| MCASP_TX_SYNCERROR
+ d7 q; @5 @) O; \| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
* R6 ?) d! C3 O6 H; }| MCASP_RX_CLKFAIL6 L' {. t# t6 @, e2 L& r
| MCASP_RX_SYNCERROR & e( t; W! H7 W+ c
| MCASP_RX_OVERRUN);
! ?. d( N) a% P/ h$ u0 o}
static void I2SDataTxRxActivate(void)
# {5 l7 |3 L5 D{7 }% g: v8 ]8 R) P+ m3 |
/* Start the clocks */
/ M" x" o; K( C$ r7 V% g' BMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);2 f7 U3 `  x8 `5 `- z& J" {" Q
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */% c$ I3 Z; O) v6 R" H- D
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,* `. h. e1 [7 Z1 P
EDMA3_TRIG_MODE_EVENT);
+ Y6 s  R8 |& `, OEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
2 w: S0 Q7 q7 k; O0 s& N& QEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */$ N9 S1 N* b7 X. p. G
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);" Z, j2 W7 L0 @6 [
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */, v0 y+ t: u, i1 f/ o7 h/ X& \
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */7 W. k8 G" `; Y4 `2 N" _
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
* j8 ^- j5 V! f3 X& s- P. K; U; QMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);
5 I. o6 J5 E  }& w1 }- W}

8 ~$ [1 e+ R3 e* g3 N9 ^* u% a
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
6 M( S" d& g. s  {0 B2 F+ X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-29 03:55 , Processed in 0.089668 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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