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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8326|回复: 0
打印 上一主题 下一主题

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1211

积分

金牌会员

Rank: 6Rank: 6

积分
1211
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,
. T* D7 Q( ^9 Cinput mcasp_ahclkx,% Q7 N4 b/ T& o  R+ ?" b9 p* `
input mcasp_aclkx,7 Z: F  g! @( F$ Y; t; P% U! A
input axr0,! v/ A7 \( p8 ~. W7 f0 z

" u- a3 |. Y4 h. q: q% xoutput mcasp_afsr,7 }2 O' W# n" X
output mcasp_ahclkr,
- u0 `0 G2 C3 s( N4 J% Doutput mcasp_aclkr,) {. i0 j/ I4 i6 w6 M6 H8 n
output axr1,! S; Q! v& O! z  B* Z/ a9 _! a6 B
assign mcasp_afsr = mcasp_afsx;( [0 d1 W7 m- z, Y
assign mcasp_aclkr = mcasp_aclkx;) q6 W7 C! r# `2 y5 a( D- z
assign mcasp_ahclkr = mcasp_ahclkx;/ J# z$ ^% H% a* W1 Z( g
assign axr1 = axr0;

+ R. g# L' \3 |- ~
  r' Z, ?: p9 z7 w4 V5 c9 T
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
* i; y; P8 f8 W- G' k. H. N
static void McASPI2SConfigure(void)' z9 q5 g' ^1 T; Q+ j
{" d1 K( m( p% U% W9 y5 W
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
* ~9 @) |4 _9 Y8 p% k, R! S; ]McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
3 u' t/ t( |! L0 |; rMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);7 M0 L2 K$ }8 I0 c# r, p. {/ g1 v
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */+ p' A; m2 c7 Y! t* Y8 R& n
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,* f! p0 }: S7 i) f
MCASP_RX_MODE_DMA);$ u& y6 R2 g6 b- Q/ b
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
% V0 n5 b% x7 s5 @2 J3 ]MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
: p4 {" }9 g9 J+ l& UMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, * y3 A# Z' t$ ?4 t* v9 `2 s% s6 F
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
2 q! J' e8 H5 |1 r# OMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
/ a5 [  H  b6 I7 A0 sMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
1 o; M3 S% h  MMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
' [9 n! A. P) h3 g% ?) H* }, m) l2 aMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
# z" x$ I/ `0 [McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
+ _! O2 T# H: J! G0x00, 0xFF);
/* configure the clock for transmitter */2 B' M& `! X# x; A7 V
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
1 p. C, z  P/ K" l5 y  A* c, pMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
+ t% B& w4 A+ ^: \9 J! t) j* i9 e/ XMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,# [2 w  W, K) p
0x00, 0xFF);
+ w0 f8 B% `" ~# F9 Y! P4 s
1 j& v. o; G8 M! R& N6 F+ G/* Enable synchronization of RX and TX sections */ . E! Z, E, Z# g' [# Q& o- Y
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */9 ^  E2 W* }' R' Z8 j& v. C
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);" d; A6 x0 \4 y* V& \: v8 l
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*/ v( Z# }- t8 d
** Set the serializers, Currently only one serializer is set as
' b# g. M; X; p$ i- s** transmitter and one serializer as receiver.% s8 B/ y4 Q; W) t; ^
*/
6 {3 ?6 h4 O# P& c( q8 H% {! \1 sMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);; _5 @- [% E6 b% z, O
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*7 C- o" ]- y, m; J: |5 z
** Configure the McASP pins
8 h' g0 _+ |- @; {** Input - Frame Sync, Clock and Serializer Rx
( N; }* @6 d. p. s2 s. \" C** Output - Serializer Tx is connected to the input of the codec
6 L3 m& A6 Z4 w# H6 c*/
0 ^5 t4 C1 O2 D+ t; jMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);4 D! S, R6 G" A7 l) C4 ~' k) X
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));. a  ?! {! ~  r( Q
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
3 \6 K, b4 o1 X( x' }# }, A| MCASP_PIN_ACLKX& N) w+ z& j5 }
| MCASP_PIN_AHCLKX
5 R  w7 C7 r' p: q. b; v8 }| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */; Z5 \) M; `! H# }6 d
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR 7 U: e/ Z& h3 y* Q; p
| MCASP_TX_CLKFAIL , y' h0 s8 t: ^
| MCASP_TX_SYNCERROR* l8 B8 f; _: ^8 W7 E2 V
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR ) P: J& B1 g+ E5 G6 J. A5 ?' [7 _
| MCASP_RX_CLKFAIL
- W8 t5 C' N. c/ ^7 R# ^- {' P| MCASP_RX_SYNCERROR . v+ p/ {: b$ ^) b3 a
| MCASP_RX_OVERRUN);
& s- K! F& T/ ~) Q0 u" m}
static void I2SDataTxRxActivate(void)
3 K& G7 K9 S. Z( m{
1 H1 X0 B% p5 f$ W& V7 A8 {9 g/* Start the clocks */
1 \$ {9 Y# p' ^% }6 @+ ^% J2 v! `# fMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);  B$ Z* d: U' v) }* w+ U9 @
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */- i- M0 U0 K( X, c4 m' r) ?
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,2 z" O; U! N& W$ G+ E& [7 o9 O
EDMA3_TRIG_MODE_EVENT);
8 ?. ~3 e0 s/ nEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 4 u2 M$ @' ^3 ?( Q% Y/ F
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
1 R  y( y' M+ O2 U% ^8 F2 L/ AMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);) C8 V( P# ^2 n) q  d
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
  a" x) J: ?' }  ?9 cwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */+ c* f8 r/ V6 s& w# v% t/ T3 H
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
$ c4 `" y7 ^5 @; w9 A8 wMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);
# {4 C* {6 O- y  B9 h" S* Q( W4 s6 X}

9 k. ]/ K! m9 _- B* p& g
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

) Y0 r( S9 ?9 Q5 \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-18 18:08 , Processed in 0.038223 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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