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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13346|回复: 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,; l% o, L) z4 M. k) g( M7 ?' V$ g
input mcasp_ahclkx,
# q6 q* w9 X! K8 K# ^- s2 Ninput mcasp_aclkx,
' [- `( K' N' l* N' \input axr0,/ F( i1 w: ~0 ?( I0 Q+ V
2 p% X4 ~- G7 Y9 m
output mcasp_afsr,
( T# B- ~$ o3 G( E3 M, D! e1 r' @output mcasp_ahclkr,
6 @7 n( ~5 x$ h1 w$ ioutput mcasp_aclkr,
, k; J1 I5 s% f& G, x  moutput axr1,7 q' w  p, [: o* S6 J$ f
assign mcasp_afsr = mcasp_afsx;) l: n: l& G$ ?; U% D" a
assign mcasp_aclkr = mcasp_aclkx;
8 I6 v$ u1 X, P( E( K1 X: Qassign mcasp_ahclkr = mcasp_ahclkx;
% i8 Q6 X# h, @& i) l! `6 N; [assign axr1 = axr0;
3 F7 m2 @' n# n# W4 W  A1 h4 V- E! W2 n# u
4 z4 n" y* h& N
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

. v5 d, V) K1 x6 b
static void McASPI2SConfigure(void); m' }9 i+ I- o& R1 G# I0 L
{
% I# J* z" C% ~6 J" a: wMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
- O0 h# F6 Q; s/ H0 P, d5 ?McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */" {  h( p: {& p  |. ~6 q; v
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
: y/ Z9 m8 ?2 P) fMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */! R" q; ]$ |# X5 |$ B+ [
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
4 E; L% D: Z) h) b9 AMCASP_RX_MODE_DMA);
/ }4 v2 s6 Z; S# O& kMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,) S, ~2 ?- |% V0 N
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
; Y7 ^+ {- ]. N$ b# k; y+ rMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, 3 c) @4 T$ d1 d
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);5 l- D* n, x7 Y% G% a" f
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
) l" H" ?/ g3 K1 xMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */$ h% Y% m! `2 A8 l6 Y7 D. j
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
% _. k) U. l8 F: I- fMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
% Q) M" [* D  z! p/ l6 [1 Y; jMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,# H/ H' x3 k  }
0x00, 0xFF);
/* configure the clock for transmitter */' ~9 u" @; d- A* J2 p' O
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
. ~4 E! _' e; Z% z' }/ o/ KMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); ( Q3 t' l4 f4 @" r4 r! X
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,$ I$ B5 q0 x5 T% @; m
0x00, 0xFF);7 i' H; G2 C4 @2 U
1 n% N, K3 M1 T/ r( _; \- _
/* Enable synchronization of RX and TX sections */
5 @* F0 b. y. E. QMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots *// H# N, w8 ]4 H7 S" V9 |2 K6 X( O
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);, n! L- y5 I  E4 ], j; n
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
- j$ c* q; l; L: k! c** Set the serializers, Currently only one serializer is set as
0 p2 C; s7 W9 Q; Y! A. _** transmitter and one serializer as receiver.$ I2 r; m) e3 g. @  b, w2 C6 b
*/
' |+ L4 P$ t: R% RMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
9 @3 I' I2 W, gMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*' X8 C" G+ V) Y5 d' E0 J
** Configure the McASP pins 3 d% e" h' t9 G7 l% d
** Input - Frame Sync, Clock and Serializer Rx, _5 V' z! W0 J' d1 j7 ]7 @) \
** Output - Serializer Tx is connected to the input of the codec
( z' c  j* p, x8 i*/
1 T7 T5 @% Z4 L+ m5 h. F) RMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);! Q" c) O, I0 M; v  g
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
8 \7 d, A0 ^$ ]8 }McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
  f* z! q& m0 Z) [| MCASP_PIN_ACLKX
* _/ ~. b: `* F; I+ t| MCASP_PIN_AHCLKX
8 @: n9 n1 V" K+ || MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */4 \( P) [) ]! t4 g- e
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
* ~, _0 W0 j! z2 w9 S# \! m- L3 Y| MCASP_TX_CLKFAIL 6 j  e- _4 p2 X7 d0 }" @
| MCASP_TX_SYNCERROR
' z' ~# s7 _* || MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR " i1 \6 n4 z- \  g4 Y
| MCASP_RX_CLKFAIL
: M; G  k# E$ e' Y. y& {| MCASP_RX_SYNCERROR
8 |+ x# b7 b4 i| MCASP_RX_OVERRUN);. {# ^  x+ }/ P
}
static void I2SDataTxRxActivate(void)1 J1 {  E. e) |; U* u  T+ A
{$ c! r% B7 F8 N8 I
/* Start the clocks */
) f. u8 ~% ~( f+ s" ^McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
" x5 q# A2 ^* _& qMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */+ @$ S" i/ @: q6 r) ]9 ^
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,# b' u" `% K6 [5 r/ a# u
EDMA3_TRIG_MODE_EVENT);
! K4 X, h8 Z& uEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 5 Y" j* o; J6 m
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */  B( K) g9 x# c5 B0 I
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
6 s) |5 C% }5 E! NMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
% v7 R5 d$ ~) G4 x$ b( r# k5 a: U: Kwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */7 o( ~& V# E# J7 H
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
7 p' R6 L& c5 VMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);$ \5 X5 v+ Y  I9 i1 u/ i# t
}

( Y5 o  }4 H- `
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
/ r! R+ w7 S0 ]8 ?/ z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-10-4 14:13 , Processed in 0.040785 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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