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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8940|回复: 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,* }! J6 r( u" i, N" [; A6 @4 L- c
input mcasp_ahclkx,
- J2 D, o+ M8 w6 R8 t* vinput mcasp_aclkx,6 a% R) C6 Q0 ?/ o
input axr0,
3 n3 A. B3 C3 Z7 K. L2 y! |. f% C  G/ m! |5 A7 @1 t/ j
output mcasp_afsr,
& T6 f" P1 I$ z" H) U' ioutput mcasp_ahclkr,
' B/ m7 ^3 k$ r( y2 W) loutput mcasp_aclkr,9 U. C  N' s0 ~" F0 v  z
output axr1," l+ `6 k. M- B6 }& K, N$ m6 g
assign mcasp_afsr = mcasp_afsx;" I; b, F8 r3 ~, D* H  q) N: P
assign mcasp_aclkr = mcasp_aclkx;. i0 K9 c2 o$ k% ?) c) M( J$ K
assign mcasp_ahclkr = mcasp_ahclkx;9 c) s; Z* S0 s9 ~# E7 ]
assign axr1 = axr0;
1 W1 [, t9 F0 M8 D' A8 }

+ ^7 c; d4 v. e$ C) b+ I2 T
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
- [9 L: ~3 c. V2 H" I' X7 a5 f
static void McASPI2SConfigure(void)- \2 H  p4 S# g# v
{
8 a/ {- M7 X' s# n- p, X0 ^McASPRxReset(SOC_MCASP_0_CTRL_REGS);
2 {  T& Y: [* N+ J1 t! M; DMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
; h6 h& ~0 N+ o6 _/ r% w2 [McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);; b1 b# G$ q$ Q* ?
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
5 k. f4 r" S/ F7 ^+ [3 wMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,) X1 g. ]9 |/ B% E4 i, W
MCASP_RX_MODE_DMA);$ A9 V9 ?3 ?$ H1 {
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,$ g  t! \- c7 \: J$ L5 D7 }* Z2 H
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
) J6 S/ R1 o3 Z* ]& K# }McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
( G( \6 U1 c0 f0 w7 o# XMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
# R8 F2 q1 ]5 xMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
6 C* I$ j  u* v6 JMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
4 o1 Q3 }6 j1 B4 z- u! ~McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);" h' R" _# K1 F. d$ n, {, c
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
' t- I: i3 P- U, @McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
1 a$ I' P) U7 k. _. F0x00, 0xFF);
/* configure the clock for transmitter */
' s" B- q3 o7 F6 F4 A$ HMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);5 I! m: N7 B, Z; f6 K# {
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
. z9 t. f+ a6 G0 R& b% u8 HMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
; w7 z# Q4 J2 m/ c5 Y0 }/ {* ^, U0x00, 0xFF);
- Z5 M- n& e6 \6 @+ w: I: X; }
/ m4 q0 ^9 t( c7 T1 Z7 j/* Enable synchronization of RX and TX sections */ 9 S) F" J% d, V% O% v
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */7 ^% ], L; f& r/ c8 z  D
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
" Q; R# Q3 {- X- M# t" `. {McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*, d- K0 k% |5 D4 l7 Y
** Set the serializers, Currently only one serializer is set as
" Q# M- B0 E* V8 A0 P, H5 M* ?3 s3 ^** transmitter and one serializer as receiver.6 W$ p2 y- S4 O5 s( o
*/
2 Z# j9 B2 _0 s& u/ ?McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);6 ^4 U7 r6 V' D$ x" A) d
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
5 `9 n8 [0 x6 K. d( ^* X* e; a** Configure the McASP pins
( w* _' }& U0 S" L** Input - Frame Sync, Clock and Serializer Rx
: a. A; |* _( T) @** Output - Serializer Tx is connected to the input of the codec
6 b6 l& N) v  |6 h7 W*/# m4 c/ r. k: H$ V6 f  a2 u
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
% E! t/ |; \7 c9 o+ Z# p! x7 R, P, ]. RMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));" i/ J2 Y3 q  i1 C
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
8 Z# n" h" i6 f0 O0 f! s, @; a| MCASP_PIN_ACLKX
9 N) \  Y" ]/ r. J, A# G/ }| MCASP_PIN_AHCLKX* y9 Q; T* o: a: e7 M4 d
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */6 [4 l5 }6 q* b: m, A; J6 E
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR 0 Y4 K- x2 a' {# X) m5 j8 `
| MCASP_TX_CLKFAIL
( _  H  Z2 C3 `( Y| MCASP_TX_SYNCERROR
# H, D1 |( x; l8 u$ r| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
$ c4 X9 E4 S  w7 t- `1 A| MCASP_RX_CLKFAIL
" ^2 g4 z" G3 I4 i2 }| MCASP_RX_SYNCERROR ! p$ [( o, B* h: E9 [5 ]( e& H4 e7 n
| MCASP_RX_OVERRUN);
% L- F% ?: F$ N}
static void I2SDataTxRxActivate(void)3 B& R6 q% F7 I2 Y' K' e
{
4 V9 x, J$ K# S* a' g/* Start the clocks */
) R/ u3 X; n5 \2 p3 h/ G0 p- w  wMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);& c# O% ~1 M4 S8 F1 C8 s6 ~
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
  Z3 [" A5 [; N8 {EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,( V9 I; m( b  o) G, k$ A
EDMA3_TRIG_MODE_EVENT);
! F; m0 z. e) Z3 j; D. V- }/ NEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 9 b( n2 h( S& d6 ?0 J0 x1 J
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
! E4 u$ X) q- ]McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
+ m2 u0 w: x) G, U5 h- @# nMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */+ F9 ~8 F/ L8 n* ^8 x
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */4 S& t/ ?+ m" R) C. m1 y
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);$ G: q- R/ F3 t! Y
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
# w$ _5 m- x' N: q  `9 C0 v( w}
# B. I5 ?9 K3 a/ J4 o, ^
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

8 s# Z5 j& C$ h! S, w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-11 00:44 , Processed in 0.038646 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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