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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1216

积分

金牌会员

Rank: 6Rank: 6

积分
1216
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx," i2 U7 ]" Z; ?' ?3 U. M* M, e
input mcasp_ahclkx,
# r1 }' _. |" }; y# g- q1 U: oinput mcasp_aclkx,& `2 u4 y7 K$ G9 i- M  K9 _
input axr0,, A! d7 k) O' o$ Y, S* e, P4 k

4 ^, Z- V! k3 k4 Toutput mcasp_afsr,
6 \2 |, A( z0 _. ?output mcasp_ahclkr,* s6 g5 _- Q4 q( k6 c+ A
output mcasp_aclkr,. |/ U1 W3 }3 U  h- y# a* S
output axr1,
7 `0 o* Z" F7 `
assign mcasp_afsr = mcasp_afsx;) `+ m( t9 V! q
assign mcasp_aclkr = mcasp_aclkx;
" H. X8 o% T: O) n+ l8 b) ]assign mcasp_ahclkr = mcasp_ahclkx;
9 ]  k) R6 i" L6 D* K: D% }/ Lassign axr1 = axr0;

; p) h9 N* R! L# @
! Z: l) C& ^+ B( \' e3 x1 C
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
& f6 d) \0 Y8 d3 Y5 J" q
static void McASPI2SConfigure(void)
* t7 F& {% b; J. }{% `0 L7 ~+ B* ]: ^- s0 L" G
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
, Y2 \1 @) I( ^2 G' s) _+ \8 FMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
* d; E' j( j3 e4 NMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
' s- @/ i3 o1 g- n" E( tMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
& I& s: @) C3 c4 G* z, L, X1 BMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,7 {2 Q9 E1 y( u3 G1 L/ X7 }# @
MCASP_RX_MODE_DMA);
6 T& F5 ~9 c* ?5 B8 M1 h; ]; gMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,3 e5 E. t, |# r' s
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots *// {% ^2 U! I2 U$ D" n9 Q+ b. K
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, 4 G5 B! u, ?/ e, U6 }  L
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
) ~5 ?: O* Q/ F% F/ _+ ?' f; Y% ^McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, # q9 ?& k5 f4 L! o9 {
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
/ c$ r% a! N$ nMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);: f* R9 L: u0 Q. C; S. Q9 H& d
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 6 g# J/ C- H$ d  J6 H2 u
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,4 Q. x4 l/ y( t7 J. P, r
0x00, 0xFF);
/* configure the clock for transmitter */
) L+ r0 |5 D# R. M) d; r0 c# V$ pMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);$ p- S4 n6 q  Q: f& o
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); 7 B3 F0 v6 x$ A% e% p
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
9 q2 ?8 @% B! C* q0 ^4 M* u) v( [  \0x00, 0xFF);# j: S: x/ m* Z8 t. p2 p, j

- D+ y9 x- L; T. F7 {6 P/* Enable synchronization of RX and TX sections */ 3 p5 v( @7 b8 C8 S- @/ x. c8 {* W+ p8 F
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
1 X" {3 o, r" e8 ?0 S; h; kMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
1 e) U4 W0 _: n5 R9 k3 M: y1 j  hMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
. g, L% |+ z; x; _7 h' d** Set the serializers, Currently only one serializer is set as- F% ?+ G! z0 b0 U1 x% z
** transmitter and one serializer as receiver.* T9 q% }9 N2 D6 T: }3 @8 F# X
*/
6 x/ w2 O/ M' {/ B# @McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);4 p+ T% W, g$ g% N% M' h8 U. G
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*  Z( L# Z" x/ D0 e
** Configure the McASP pins
$ o6 e4 ?* E6 ^* U* r** Input - Frame Sync, Clock and Serializer Rx
4 L' G1 Q4 I9 w5 M7 u! C0 E** Output - Serializer Tx is connected to the input of the codec
4 p% ]+ ~/ N4 y* [*/& ?: V* F1 c+ p; \# C, C
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);) k: V( p" C8 N3 H
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
& V, h0 }& P0 h# wMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX0 ^6 N  |* z; ?7 @: P# ^. x
| MCASP_PIN_ACLKX
5 N$ p1 p4 V" L, g: [6 M+ K| MCASP_PIN_AHCLKX
5 e. X" `$ P0 g; r% u, F| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
5 a% H4 D; p% b" D) J6 JMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR   c8 s# K& L$ _: b8 X
| MCASP_TX_CLKFAIL 6 u# E6 ]( I( B5 t0 a
| MCASP_TX_SYNCERROR
1 v& B5 s  X: e* }* M" b6 t5 l  r| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR ' x7 [# w$ F5 H8 R/ _
| MCASP_RX_CLKFAIL
& n8 `$ j' y0 `3 N| MCASP_RX_SYNCERROR
3 _. W; _+ B8 [) S& ^& Z1 t| MCASP_RX_OVERRUN);* `) m: v+ ?$ D. z9 x# W
}
static void I2SDataTxRxActivate(void)6 n( f5 b3 G* a3 z8 U4 `
{2 I; x' F# a1 p) `# ~. \0 k; h; T
/* Start the clocks */
0 S- i% \& s! T4 j7 @$ lMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
/ t( i2 o! K2 W3 VMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
1 D# q  h7 E, f8 f6 C- n/ J% }EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
+ l, n( Y/ ~+ v+ r* OEDMA3_TRIG_MODE_EVENT);% }  S9 l3 a. D+ Y- D0 _3 P
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, ; j4 o4 G3 }9 u5 |$ T
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
, m7 v( [& S2 o" E0 [  t, g9 ZMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
9 a. f/ p5 b& d3 wMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
9 C% K; ]! k* S: \. \5 Iwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
2 _  H% V) z; B) k; T# ~McASPRxEnable(SOC_MCASP_0_CTRL_REGS);/ H- c/ H, p7 [0 W4 n* S, s
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
6 j& T+ f7 X! [7 \& A6 h* l}

/ b# N  _0 V) A% E3 `- p9 \% S1 D3 p
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

- a' w& n; m7 W% `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-31 02:43 , Processed in 0.041455 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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