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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1214

积分

金牌会员

Rank: 6Rank: 6

积分
1214
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,
" L! ]" _% t$ ~/ V- _  V# ginput mcasp_ahclkx,1 ]# W$ N* `; O- [# g
input mcasp_aclkx,6 L' l1 ?" l9 X
input axr0,
4 l3 Z2 k2 @% G$ n$ ]' M; h+ i1 Z* Y2 ?- i  p1 Y
output mcasp_afsr,
! M) J$ t/ \" a9 c& H) woutput mcasp_ahclkr,9 Y; I4 H- ~1 R! J$ S( T4 d7 ^# f' r
output mcasp_aclkr,) f+ v9 ?( R" [; S+ S
output axr1,
9 S+ f5 k) e. {4 V$ L  F
assign mcasp_afsr = mcasp_afsx;/ n7 o9 a' w, H0 u' U" x2 r6 e
assign mcasp_aclkr = mcasp_aclkx;
3 J5 I, Z7 F7 |7 ]) i/ p# _/ _assign mcasp_ahclkr = mcasp_ahclkx;
' I! Y) A7 `& U0 {' H# passign axr1 = axr0;
6 f1 P  e7 T7 N2 O' _% P. n
0 B- P% ^) a5 l# K' N
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

. r. J$ ?0 b/ _% y" ]+ C0 I
static void McASPI2SConfigure(void)' G! |: }. v; ]2 R7 f  `/ A
{
: {$ d7 c4 v, [McASPRxReset(SOC_MCASP_0_CTRL_REGS);. m! _- w) v. i9 Y2 S! U5 m
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
& ~* w3 K" G0 T0 y) uMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
7 Y* H4 E7 t3 j& o( w9 DMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */" N8 S; ~* Z3 t  S/ a
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,9 Z# y  b; L* ]: J) y7 D. L
MCASP_RX_MODE_DMA);) f2 d- P- ~/ T4 R% c& F
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,. s* E0 Q- S  V8 n
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots *// ^1 \! l) p$ S, a3 r
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
- g. e& _+ W- d+ r: D; I  E' XMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
8 w5 @3 D1 o' \- j4 yMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, , Q$ V) n/ G# r$ W0 c& T
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */% C% F' b* z$ h& H7 O
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);# d6 q" H6 ]" _) q& @$ i* U4 K7 f
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
. ~2 Y  D0 s4 D5 b6 [McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,4 T. p% F0 m; ^' u' m1 d
0x00, 0xFF);
/* configure the clock for transmitter */
) m) n$ A1 `+ }- b7 I! G& T) L6 oMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);: c; l( L6 t7 e1 Y' ?
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); ' @5 Z8 V& l' Z
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
$ E% U; D" |- `( d- F0x00, 0xFF);# k3 s" B5 _1 C- D
% ^6 l7 k$ a1 c6 {# S
/* Enable synchronization of RX and TX sections */
+ l) B4 `# N+ v" aMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */: \. s& `8 e- L1 h
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);+ M/ b6 @* M! P. b) E7 M2 b
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
9 W1 E1 p9 O7 d3 Q** Set the serializers, Currently only one serializer is set as0 Q- x% Y. D6 u5 ~, F& r
** transmitter and one serializer as receiver.! P, v( t7 f2 M9 x
*/
$ h5 N( b2 |# H; x* `% gMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
1 T, f0 l$ A. I0 y4 TMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*7 x. o1 k) t. p( P& m  x: n
** Configure the McASP pins 3 B& W' Q  w& o1 C% y3 S2 p
** Input - Frame Sync, Clock and Serializer Rx
4 |% B" r! R% }3 b) E  n4 S$ u** Output - Serializer Tx is connected to the input of the codec   O. @8 S$ _) B1 w7 I
*/  T7 p# |/ ?& ^4 H, P: J4 [7 ^
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
; C  a- @/ ^& G) sMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
8 c/ E5 I# b: l: P8 S$ e/ UMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX* |, k% I! h' |! W- g. S7 r
| MCASP_PIN_ACLKX
" D7 F. n7 ^! M9 K% ?4 M4 p| MCASP_PIN_AHCLKX
8 y9 f* {) c; D) U6 || MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
9 m# J5 j8 U$ Y5 a. jMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
! O" t! ~; a& Y$ |, E) y  i| MCASP_TX_CLKFAIL 7 K9 y9 q  O% o
| MCASP_TX_SYNCERROR
: u: `) z6 a/ D7 k2 [! T| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
- W; v9 ]6 j3 M+ o# P+ L# N) O| MCASP_RX_CLKFAIL
# q9 Q& r4 T! j0 p9 ~2 R. Y8 n5 c" @| MCASP_RX_SYNCERROR / n% h  R$ A% ^' i) F
| MCASP_RX_OVERRUN);
' `6 i. X3 X+ t1 q! N' y}
static void I2SDataTxRxActivate(void)* s- M, Y# q4 x
{; b% L, z3 J6 u0 J* v
/* Start the clocks */
1 E3 R/ H4 S% }  C: i3 f; kMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
$ q6 s. Z7 j7 [$ w6 K' I" \McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */2 V8 J( a3 D+ |) Q7 k" U8 M6 P
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
5 u3 R. Q3 N* |! O6 H2 W' T8 xEDMA3_TRIG_MODE_EVENT);6 `' X1 X0 P" t) M5 B- ~$ s% D) X
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 3 @0 F8 U( h# f4 {9 Y6 p2 d
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
/ n3 B) Q5 Z8 h8 _/ qMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);& g7 b9 P0 s) \* C* v2 r
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */' T9 E$ |+ r! x% V/ O; X, l; b7 [
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */, T: i. f. ~- t/ k9 e5 Q7 l
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);$ W3 V, m* ]5 q4 _& V
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
( y  ?" F" I0 A0 p* i' F7 p}
  q% Y0 i  b7 H. y9 e3 Y
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
. l$ l$ f$ {5 H4 B  l/ a& t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-25 21:19 , Processed in 0.039413 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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