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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8587|回复: 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,
" ?8 r* C$ Y) _0 B7 hinput mcasp_ahclkx,- Y1 A* v( d- `5 c
input mcasp_aclkx,
% G, U  {5 a; s) V0 Q$ }input axr0,
) ~! K3 p& D1 a; I. D" \2 B9 \7 K6 @) z5 f, T
output mcasp_afsr,
# R" Y+ Y. p* f/ q5 C* Poutput mcasp_ahclkr,2 {0 Y; T8 e8 ^5 |, D3 G7 h4 j
output mcasp_aclkr,1 c  |) U/ _$ Y) w% L5 t' n) t
output axr1,
# X& j1 [& G% e: Y9 {
assign mcasp_afsr = mcasp_afsx;
' d) M* |" G7 G6 f( K) |* K  c' gassign mcasp_aclkr = mcasp_aclkx;% ?5 u+ N3 w4 e8 {$ R. F" G" A6 h& Q
assign mcasp_ahclkr = mcasp_ahclkx;. ~( ]; f+ v# {# \  e+ i
assign axr1 = axr0;
: _, T- N( P* f4 F
9 p2 ]- s9 ?% t5 ~% i8 c1 _
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

$ g) _( s  O+ m; A# I- V' u: ]1 F
static void McASPI2SConfigure(void)
* Z1 B* u" [4 L& x{( c9 x  {. b4 I- o: W0 K7 E
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
: P' @* O# J' hMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */$ Q) {" ^1 f/ E+ c0 Q
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);" r9 k5 C8 p3 u* ]* Q
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
& W- E; K; o! Y. t" K# t/ L& uMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
" H0 x7 \# g6 t' F3 VMCASP_RX_MODE_DMA);% a; A$ P4 p; U
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
+ p) m1 ]& v) k) D- h4 Q( MMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */5 _' q: D# P$ p5 P9 ^- r; _# J: [
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
5 P3 j  h9 |# \: QMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
+ T* f9 p/ v+ f. l. x$ G& p% WMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, : j' T( l) N8 u9 L9 m- o% O1 J4 O
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
) L5 p' s8 S8 Z% n2 p/ x1 y! UMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);0 j5 Q0 U+ n. E/ J$ [7 z. O0 L) _2 A& G* Q
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);   a" d1 F1 i& G: X! R
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
% z: y8 B0 p% e: m0x00, 0xFF);
/* configure the clock for transmitter */
! N  y  e( N* {6 V( ?McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
2 X% D- V, J* m/ T  k0 \McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); : N7 e# I* P) @8 e$ X6 q
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
, F5 \3 x# `5 v0x00, 0xFF);
: e' G- T/ N* u& @& C4 u  _
7 u9 S+ _- x1 I) [' ~# z  X/* Enable synchronization of RX and TX sections */
  M3 T% U8 K: `2 N( r' GMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */! q. I* T3 G( X$ I% D
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);) p& K0 l; x0 u7 `
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
2 V, {$ b6 N% P$ u, A8 m! @** Set the serializers, Currently only one serializer is set as
; y- H  l) f/ r3 M** transmitter and one serializer as receiver." s# L6 h& N! R0 A$ B5 a. V
*/4 v$ A* x; ?; [8 @" j( \
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
' r! T% C7 B, a. `6 X* }McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*( R# x% t+ N1 }
** Configure the McASP pins
9 ^' a: z$ p; S# ~' \6 s- x! C( c** Input - Frame Sync, Clock and Serializer Rx
5 @& u) N# }! U* N** Output - Serializer Tx is connected to the input of the codec , [( W3 ?0 K/ s1 n5 x
*/
7 A+ P+ a- F8 z( ]+ i% ~0 RMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);. x, s7 _) P7 o& R
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
2 N, R5 `, Y% a% d7 @4 r( gMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX# \% ~' G( [8 G7 P8 r" ^
| MCASP_PIN_ACLKX! J6 b& T" O1 W$ V
| MCASP_PIN_AHCLKX
% R) e( h1 k6 |+ O| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */# k: r7 b3 c! a1 U. g; ^9 V( j
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
9 a( Z8 T" }8 v" G| MCASP_TX_CLKFAIL
9 t; _0 h! J! M1 Q| MCASP_TX_SYNCERROR% f1 V6 L6 r2 [+ ]5 S0 r( z! W: o: U
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR , V5 ~& q$ d4 {; K" v/ P$ K1 r
| MCASP_RX_CLKFAIL
/ w& B) p+ i+ ?" U+ y| MCASP_RX_SYNCERROR 8 U7 k, @2 q3 U6 _! g3 _- V
| MCASP_RX_OVERRUN);2 W, `. s* _3 A# s4 H+ x; c' A' P
}
static void I2SDataTxRxActivate(void)
0 F% }; m. g$ o6 K8 {( Q7 @6 Q{( w" M+ r) q. I0 D
/* Start the clocks */
4 F4 m. j) V3 }# FMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);$ X, [* B3 l, o# U1 S
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */' }& a) Z! m6 g0 J& S# r. j
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,& ?5 j6 k4 N) C
EDMA3_TRIG_MODE_EVENT);& _5 E5 A9 h$ ~9 L; G0 t0 k
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
; A$ N: w7 Z1 A* W! ~: qEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */( t' l; m1 o, Q4 G8 a
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
1 ~3 c6 V+ @8 y+ K  w0 A' PMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero *// [9 A6 y% p. z6 U8 K! ~/ T
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */7 E% x1 {5 @. i! Y' P
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
, D3 \2 P% d. X, k- f. i- A! _McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
+ x$ k( f9 j! [, _}

5 |; j2 V1 S# f; N1 a- T' j$ f+ L$ R
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

: d/ k# L  V- b9 {1 \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-28 04:41 , Processed in 0.054980 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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