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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8845|回复: 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,
7 x+ V1 W$ Y- pinput mcasp_ahclkx,4 o% _1 J" ^6 q( ?; e& U5 i- J
input mcasp_aclkx,
- l! p" h9 |# @input axr0,
+ @! F- G; B4 ^1 Q( ^" }" c& O4 n$ d% K1 Z. y! ], f7 a: [
output mcasp_afsr,9 d& z% }- r, [- [$ e  S( n% a
output mcasp_ahclkr,
* D% O* A: }* [5 t$ E+ U: L6 Soutput mcasp_aclkr,6 p( W5 p2 N9 t+ P
output axr1,  d, @% V! n* ?- ]. L" \0 C' b+ `
assign mcasp_afsr = mcasp_afsx;
# j; \8 @; t7 N7 _' _assign mcasp_aclkr = mcasp_aclkx;/ i" }% S  _3 a" u7 V5 E
assign mcasp_ahclkr = mcasp_ahclkx;
! A( B7 N* w6 T( [3 z  Lassign axr1 = axr0;

. Z4 ~7 q7 X# @& a
) R! V* E; A- V$ }2 ?
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

$ B: c0 S6 @2 r
static void McASPI2SConfigure(void)
5 ]2 E2 N- |6 d! S8 V. p5 r{
  d. _0 C7 p8 |( O5 R# W3 a, `) uMcASPRxReset(SOC_MCASP_0_CTRL_REGS);. h6 g7 i  C( `9 p% n
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */4 S' o( m* b4 Z/ T8 t
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);1 `' d) d  q! \/ \, p# V/ W
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
( E- u5 u( z1 M$ wMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,& o* S; q4 {% n* b0 ^# _% ]
MCASP_RX_MODE_DMA);. C6 Y* }  C! i+ T. u9 y8 i, @
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,; p1 q5 _% f9 Y
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */9 C0 Z$ @( u1 h8 G
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, 7 R- g; n3 Q  ^. q" Q) z4 c% k
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);. l/ Y2 ?- Q/ N4 V# W" R5 @/ J7 k( X1 Q: L
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, 3 G8 h! Q* x  c! |, o
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
" S  P' [$ G, {, @7 `McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);2 X5 L. i5 f! ^4 W5 l% w
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
  t! t( \) a' ~1 k2 O' T$ f# ?McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
* B0 j9 L4 N5 ]/ v$ z0x00, 0xFF);
/* configure the clock for transmitter */
2 ^- e* O: ~0 S$ Q: |( C2 vMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);2 E/ u* i% l2 j- D
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
& Z9 T7 J/ j3 f& WMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
% Q4 G% }# L8 V2 |+ r7 t3 ]( e0x00, 0xFF);9 X( k# X" h# e
# U# h: v# u- q- a+ D; }
/* Enable synchronization of RX and TX sections */
2 y6 ~1 u$ y- I) N' rMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */# H4 x) F! o0 P7 `7 {: Y
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
' X2 m8 I" c' z& lMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
' r; k2 ^8 V+ y4 g; Y  q** Set the serializers, Currently only one serializer is set as
6 y0 M, M; f8 \& E: `- A1 V/ }** transmitter and one serializer as receiver.
' o' O/ B' f9 c6 e4 _* y*/( A3 f. E$ ~% K
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);& [6 H) I! S& E  H
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*0 L7 W6 v5 m! D( @! S
** Configure the McASP pins . @: S4 T9 W5 T& e+ Q3 z" Z
** Input - Frame Sync, Clock and Serializer Rx. Y+ n; N# b% n. Q0 N: _) P: q
** Output - Serializer Tx is connected to the input of the codec - x! B6 Q" Y: {
*/
- G9 ^6 D2 j+ `McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
- r" D2 C. s& f/ ~( `& g/ e0 |McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
- b: O* U/ G! j7 p5 yMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX, [4 v+ }- _+ j
| MCASP_PIN_ACLKX
: `) n* g, _9 [9 _| MCASP_PIN_AHCLKX
  b$ f* y; J- f9 Y( s# N6 P% G| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */9 {3 ~* U5 Z- e9 j* S" s- a# ~& ], q* \
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR * [0 |! C" j4 I2 \! u" i
| MCASP_TX_CLKFAIL
" Z* a/ P8 E" q. L- g' e6 w" z& M( _| MCASP_TX_SYNCERROR! I( ~! a' b+ a+ }4 Q* ~& Q( Q0 K
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR ' K) f7 b/ e7 l; Q7 {- A
| MCASP_RX_CLKFAIL4 @7 |9 C' q; ^7 E. _3 N& h5 E
| MCASP_RX_SYNCERROR
# o7 Z$ i5 k/ N) l, ~& f9 e| MCASP_RX_OVERRUN);# o  [: `6 @1 r- E
}
static void I2SDataTxRxActivate(void)
# Q' T6 Y, Z* L4 |  S2 v+ c4 ]! c" I- G{
/ ~  H) W# {  _9 J0 F. S1 l  G/* Start the clocks */
9 a( n# H& e% v9 iMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
# C& V/ ~* F6 H9 OMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */8 F1 j( S8 Q" S% ~2 x" Z1 E2 L
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,1 u. r' T; T; b$ v% t) ^/ {
EDMA3_TRIG_MODE_EVENT);# S3 z6 I2 x& n/ y
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, * \4 }" ]) l) w9 u7 Z( O8 u  o  w, s
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
- t* S4 }2 c' [) D8 nMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);7 y9 o' J! d; v5 G+ y4 O5 S4 i
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
% h: e) G! r$ D) s8 A' m/ z) cwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
: z: ~3 }  u) i2 O* O9 Y) P/ u# XMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);/ |6 x- z& f! q
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
( U& }/ O% m) p5 E3 S}
7 ]/ B2 y9 a. z
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
% Y$ k) o/ o- U0 R! r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-7 15:51 , Processed in 0.040069 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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