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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1215

积分

金牌会员

Rank: 6Rank: 6

积分
1215
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,- n' y0 D/ r. T8 j& m
input mcasp_ahclkx,  d3 a. ]* ?# Z/ U' y! T. p( K. A! N# P
input mcasp_aclkx,, ]* ~9 p$ a# D9 n, O
input axr0,
4 g/ a6 Q% k4 p5 W& ?9 ]' V
2 u1 `9 ]: t+ ~) B* k3 Qoutput mcasp_afsr,
( ^) S) N8 g( N; A9 J7 aoutput mcasp_ahclkr,
, V! U: I, @3 k) d$ T$ Houtput mcasp_aclkr,
: S' p& B7 _3 Boutput axr1,
5 M  E5 E8 c) @. l* N
assign mcasp_afsr = mcasp_afsx;2 M) r/ U; C/ {3 i- f  m
assign mcasp_aclkr = mcasp_aclkx;
. v7 y  G* a/ p& e' massign mcasp_ahclkr = mcasp_ahclkx;8 s5 S! u8 o0 @" b; B9 @
assign axr1 = axr0;

. S2 D& ?2 H$ F8 ], x' f, c* ~6 q. M( E% f) Q) q
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
+ n" m/ F# q: L; ]7 T4 `0 r
static void McASPI2SConfigure(void)
; d2 e' R8 _8 F+ G; N) D{
! d0 k) H8 m4 h- r9 _  e! M$ VMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
7 R3 o% w/ J2 K& fMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
/ r( V& {; w4 g* p! cMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
# k/ B3 A- P8 Y+ DMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */* V' W# S( c" {
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
+ j! F3 A! B- G6 @" b4 q; p; w6 yMCASP_RX_MODE_DMA);% ^6 z7 c$ J. e/ ]' w
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,0 k9 y  M- x7 C, u4 a3 W! O1 v
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */2 \7 K0 U; m2 Y: P
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
+ X# W6 y5 Q9 x" cMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
4 f4 l4 A6 Z. B; s1 J9 FMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
% f' y, Z- V: p7 {6 C2 W' H; v" a, GMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */% L6 E, m! k/ @" v6 f% ^6 i
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
& G$ h: \5 ?1 o; I! u7 @$ hMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); & o8 {. J. `3 V
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
. L' @% O# c2 ~9 W( p0x00, 0xFF);
/* configure the clock for transmitter */
' l9 n& y5 g2 l% X3 \. f' UMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
" i/ L! R9 X& QMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); . q( e2 J3 J5 _) b
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
% n5 f' T) O6 r: }" F0x00, 0xFF);$ f% }6 z% M0 ?7 p0 d
/ X; l1 y' s8 @& ~' X! |$ ^
/* Enable synchronization of RX and TX sections */ / I, @" ~' N9 S2 C3 @
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
/ |$ Q' o* D) ]. I8 [' PMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);0 E& b/ E8 E* n9 K4 v
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*. R5 H, Z& Q5 J0 K. H7 u0 W
** Set the serializers, Currently only one serializer is set as
3 a0 s) G+ K5 S+ p" D' L4 c3 B** transmitter and one serializer as receiver.
9 @2 O1 z2 ?: ~( A$ x. E*/, J% H9 Z% _! g
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
# C1 I3 ^5 x* w; CMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*! @; c9 b7 e& B7 S/ }6 @
** Configure the McASP pins
& M+ `/ f! v! E% T8 W. D** Input - Frame Sync, Clock and Serializer Rx) \5 k$ T9 g) }2 r/ ~) c1 G( q
** Output - Serializer Tx is connected to the input of the codec 4 H% ]5 N" h0 n/ h. N& |: D
*/4 n: U. _: P& c7 R, o( B% G
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
9 @* F% I: Z: x% wMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));  w3 O& @4 U) g( k. k9 _1 @
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
6 u0 w# A0 o3 e* `/ y/ {5 S| MCASP_PIN_ACLKX
. |; i/ q  _6 Q2 O' i| MCASP_PIN_AHCLKX
9 g- x5 Q1 R+ ^1 Q) J| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */4 b7 S3 Q/ |: O, V) c
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
2 t& w, e: d% N: M| MCASP_TX_CLKFAIL ! R3 ?7 w7 [8 z
| MCASP_TX_SYNCERROR; R7 B& X* ?  c' E
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR # J' X) ^+ w; |2 T1 f6 r
| MCASP_RX_CLKFAIL( A9 W7 T! }+ v
| MCASP_RX_SYNCERROR
: `! k' L+ j1 c) P# I| MCASP_RX_OVERRUN);/ h0 c- L6 \. t, Q5 o0 J/ O
}
static void I2SDataTxRxActivate(void)
6 L; c( g" X1 Z{6 C* E% O, p" F' f; X0 h
/* Start the clocks */
% W/ {! v. u5 V+ I, z! d6 D& }McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);( a. x& p8 s8 C& }, h, S
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */0 j9 I$ e1 U! Y! E  T1 \
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
) t* ~2 b! X! K8 W5 @" WEDMA3_TRIG_MODE_EVENT);) w8 T- N" ~  J( ]1 c
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, # g" l* g+ U5 q  d% @8 u
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
; g( ?( r$ z; p7 f( J1 r; w$ SMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);; f* b8 e: T0 w( m; \% H: {
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
1 M7 ^. b% @, |while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */# u# m; _5 N8 Y* A0 x
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);* @' N1 X% g; Y: S
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
& ~3 M, g9 h1 V* J}
0 W/ z' d0 j  h8 I0 \  ]& T4 }
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
8 Q  _4 w" L* Q, X: |" R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-30 15:59 , Processed in 0.039491 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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