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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11793|回复: 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,, N8 m$ A& l4 Q0 P3 b& i
input mcasp_ahclkx,
+ h) @/ A4 d* }input mcasp_aclkx,$ j' S$ @. u6 Q3 o
input axr0,
3 V& S) {) B! `% b2 k
4 Z: G3 {1 Q) K6 {" [, @output mcasp_afsr,
. b8 u" Q8 O0 A3 G3 Q) B1 r, Ioutput mcasp_ahclkr,
' e; j6 N- [& B# ]4 v5 qoutput mcasp_aclkr,+ Z  d4 W! l4 B# ^0 d
output axr1,
, g  U/ \# x* j% G! b
assign mcasp_afsr = mcasp_afsx;
7 u) c3 n6 P8 }) K+ p( Rassign mcasp_aclkr = mcasp_aclkx;
; h1 i& Y' S! R1 O- massign mcasp_ahclkr = mcasp_ahclkx;
1 k" ^: ?7 t) G% l1 k# j0 oassign axr1 = axr0;
7 D! R/ M. ^, Z  \' D2 U( ?: L8 _
: z1 l: T/ k' X
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

' Z+ b4 F9 c7 ?4 ]2 n
static void McASPI2SConfigure(void)
2 B* \4 V8 d( m( O6 L9 u5 E{0 L# v/ g' `, k
McASPRxReset(SOC_MCASP_0_CTRL_REGS);6 E0 {; P7 F" Q% W, Q+ t
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */9 N% O' z5 ~/ y/ g0 p4 V
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
6 J2 X3 P3 d2 J5 {- ]McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */0 G0 w3 c% {5 D, o4 E# D+ D) S% t
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
0 p6 t! o8 b0 X& @8 |0 ?1 j5 qMCASP_RX_MODE_DMA);8 p, J. |& F" \- f  g* E+ _* O
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
) h; Y: B. _, g1 S- U5 @& {MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
  r6 n/ A0 M" q. b& M' \) HMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
4 }% P% e# l  o8 B; w% E# q! gMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
: Y) X4 v( l: G1 E  G" _McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
4 U; x& f. Q+ S8 U: Q+ PMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */2 G$ T" w9 x- E. N3 Q
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);* j# V$ x9 S$ B) D, U5 C( c
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);   c. V6 S- o3 s2 R5 O! V& J
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
0 a' I! _. r3 n& z0x00, 0xFF);
/* configure the clock for transmitter */
4 \! f) V" U7 E6 T6 V; DMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
( M0 n( s8 s- uMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); 5 b6 t: I. ~# [: b. e) S
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,' P7 I; H& j: D3 c
0x00, 0xFF);
3 [5 g0 l" @; y% j) [
- r4 e+ h6 q8 d) O/* Enable synchronization of RX and TX sections */
. q. ~& N1 b; R- P/ kMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
& x# H; u/ n$ N0 c0 x9 z' mMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
, L0 Y* ?; J* E" CMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
% K  X4 [3 w( z# K1 z$ w** Set the serializers, Currently only one serializer is set as
$ p% H$ W- x( L9 Z** transmitter and one serializer as receiver.; v; y- U% C7 K( a- U2 V/ X" o( P
*/8 i- d2 O; E( l! `4 x% H
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);1 G/ R& a# m# {0 g- ~
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*( x" j+ r$ R6 L1 A# p. s
** Configure the McASP pins 6 X- O% n/ v) Q  ^1 ?
** Input - Frame Sync, Clock and Serializer Rx
" |) ^$ K; C* Y& t1 p2 j4 ?9 \3 y" s** Output - Serializer Tx is connected to the input of the codec
9 [+ ]5 C1 ]8 J# A6 V  c*/
2 v! N5 O9 [4 Q+ o( X: ?  IMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);) F1 A+ K) ?) u
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
; X' g7 I! j. |8 D( l. E2 yMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
' `9 j5 {! F! {! p  g| MCASP_PIN_ACLKX
( C+ o) K/ h$ a/ O| MCASP_PIN_AHCLKX
; F. \% J0 w4 P| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
" M' L0 F6 d3 E) M' w1 t" t9 [McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR 8 w6 _+ O9 N+ s1 q* N
| MCASP_TX_CLKFAIL
1 N, W- G0 K9 f- C| MCASP_TX_SYNCERROR
: r6 Y& a6 h: d! t3 [0 P| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
% a( e- X! N+ N" Z, [| MCASP_RX_CLKFAIL
, [. S9 \- j& o5 d. v: v| MCASP_RX_SYNCERROR ) Y8 _6 I6 @5 A) v
| MCASP_RX_OVERRUN);
3 \( j5 G5 ?$ E}
static void I2SDataTxRxActivate(void)
7 |' R% Z- R: \  V) h{0 \. ]  x% y: S& `% q* N4 n
/* Start the clocks */
8 s  ^& q' t" e# YMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);+ k7 y+ y; t4 J- n9 ^/ o
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
4 i, F2 X: J7 L: vEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,9 I0 E1 p) _; x5 Y
EDMA3_TRIG_MODE_EVENT);* R! d1 p# Q+ k, ]- K
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, / [& Y) Z) R8 G$ L' J
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
$ ?8 l) B2 Z/ ]2 ?) A' VMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
& R) q2 d' ]4 E. f7 q1 G5 M# ]McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
/ E6 M6 w- k% a* {while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
9 X2 i  g/ f$ Y, aMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);
( i" Q% b3 W3 _( tMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);: H2 M1 v. w$ d. l/ h$ ^9 m: X& G
}
) J% G- j, a( O
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

: r- m- r+ H1 `9 y6 q+ X' J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-14 13:50 , Processed in 0.039157 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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