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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11490|回复: 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 V, Z9 S2 T4 Y6 ?
input mcasp_ahclkx,
- q( G4 T5 z, @# Y6 s9 |input mcasp_aclkx,
* i0 ]4 Q- Q+ s8 @input axr0,
+ G7 W& F: d# k8 ?2 u
0 c( t/ L7 w/ a3 zoutput mcasp_afsr,
- s  W* \% {' f% h5 j" soutput mcasp_ahclkr,1 S' O* e/ g9 a/ X2 k0 b. j# Z. q
output mcasp_aclkr,7 c) g) i- V2 F+ g7 j
output axr1,
, Y; {% y, D" l, s/ f( }
assign mcasp_afsr = mcasp_afsx;
* ^  H: M" @- n5 o) G, V' tassign mcasp_aclkr = mcasp_aclkx;
+ t. q5 S  P, U# m9 C* passign mcasp_ahclkr = mcasp_ahclkx;  U5 k4 i0 Z, K4 l6 w
assign axr1 = axr0;

" s7 K9 y9 _( G8 z3 S2 c( e, Q3 T$ b
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
) t0 H  a" z* t4 M5 t+ `, V+ Y
static void McASPI2SConfigure(void)
" m; p& L- {: W, ?  T1 Y5 D{+ @, M. N( W' [: D4 i- E  ~
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
# @+ [: X! O& ~3 qMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
/ }9 F2 A! r: C4 ]7 l' hMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
  }: H6 H8 W0 N3 s0 U1 ?McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */# X& `8 R! F" R- Y! }6 }8 l
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
0 P) T; L. r; a" fMCASP_RX_MODE_DMA);2 P4 @1 U2 m' ~5 y+ e
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,1 Y6 J* G8 \( G2 g; P0 S& P
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
  p' \+ ~2 d6 x0 }McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
. e) y* m" r* Z* q" Q' k8 X! U9 e- N% `MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
1 h7 B- r3 O# T  c! f! {McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
* a8 s6 _% }$ z1 p2 ZMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */  M/ [1 k8 a3 x
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);* V7 Z! A6 W( h3 j* v- ~# y+ c
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); $ v8 t" A( f8 ?! Y2 r) e* _
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
/ W+ O$ ~) ^6 Q& v9 L" B* l; G: y0x00, 0xFF);
/* configure the clock for transmitter */. g" ^% k& R0 U; |  {0 S7 S. v! U
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
7 F  o. ?: k/ @+ pMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
2 g. c" H" S" j! ]2 m6 X: jMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
) a1 u7 Q; V% |/ ]0x00, 0xFF);
! @- _& w& z5 _# K+ k# [/ M# Y2 z, X7 X0 T5 x
/* Enable synchronization of RX and TX sections */
9 {/ \* `0 l; ]! z( V2 n. I0 i9 W& yMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
) z5 R/ |2 q- Q1 z0 D' ]5 o& d6 n0 a' _McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
6 j4 R* K# Y+ ^3 m) }McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*$ J# a$ H  K# R7 w2 k9 F7 o
** Set the serializers, Currently only one serializer is set as
- U* j$ m: E7 I: m% Z** transmitter and one serializer as receiver.* D5 Z7 q  g, Q7 p- u" u, R
*/
8 Z$ V# ~0 X) y: j% MMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);; o- \5 k: T! {
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*6 C: z- D3 |  S0 q0 c5 X# t) W/ ~6 P7 x, i
** Configure the McASP pins
6 N  E. @: V7 T4 n% n4 g2 G** Input - Frame Sync, Clock and Serializer Rx
/ E6 Z& [$ \0 ?3 l. W; V- m** Output - Serializer Tx is connected to the input of the codec
+ n. @; r- W* _*/
) @$ K& |( B, @$ {5 VMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
8 k0 a- q, O: B/ xMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
6 p8 M0 W, v2 h! R" T: JMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
4 h2 y5 B- L+ y+ ~! i- U; y| MCASP_PIN_ACLKX* \/ C3 e" X: |  V: u
| MCASP_PIN_AHCLKX( F% R) E" e: ]; ?1 u
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
. X0 o$ D( n$ P* `3 d2 F2 P9 ]McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR ' x5 c% e. T2 Y7 Q/ \: f/ W
| MCASP_TX_CLKFAIL
$ F9 |9 f9 y% Y7 w$ R| MCASP_TX_SYNCERROR$ Z1 W8 h2 a0 J  n3 m
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR . [* f3 ]/ \  {5 a" \  j
| MCASP_RX_CLKFAIL
: C& M; U: |, j2 |2 Q0 o2 F| MCASP_RX_SYNCERROR 3 l" g2 {, R9 J% [
| MCASP_RX_OVERRUN);4 r5 Q' ~8 J, D/ [
}
static void I2SDataTxRxActivate(void): Z) L4 U1 r. T2 T1 x- N
{4 @% z8 d$ @. K: y% Q+ I& [
/* Start the clocks */
" N6 l( R2 o/ d+ f3 s+ F1 _2 ~# ZMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);2 L6 v# u" q0 _, v/ ~  J0 H
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
# Q8 M! w4 S, o4 u  I; A7 y+ MEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX," r8 L" W6 T- @0 R4 W3 p, T
EDMA3_TRIG_MODE_EVENT);
/ I: b/ W$ q+ m* o: u3 y) XEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 6 F; `+ z/ g7 U1 ]+ {
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */: U% h) ^* R; E
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
$ R- u8 |- I/ s/ ?* {3 vMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */6 s5 A3 j; _2 E, h- S1 I. n5 J; N( w
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
! `, ~. `) x! N% _/ c- rMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);
8 v+ p' \7 x( }8 v- Y2 x+ P& cMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);6 W4 ^; ~( B2 z+ u$ S1 ^& `
}

5 K( }" \7 y, g/ I1 p
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
7 E5 |, C1 H8 y, G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-7 04:22 , Processed in 0.039206 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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