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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11789|回复: 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,
1 \. w5 p( n$ _" {6 J/ Finput mcasp_ahclkx,  u7 I, H5 T7 q! I+ C! O$ J- Z
input mcasp_aclkx,6 P- {0 b4 H3 L# A2 l. d# r3 |
input axr0,
+ j) K3 Z7 O0 j5 \, V! g: C# D0 q+ x, _
output mcasp_afsr,
& ^- w! S8 X& o5 |: H* m5 koutput mcasp_ahclkr,% \0 [& X9 Z! d1 X( q
output mcasp_aclkr,
8 S2 L  n% y- voutput axr1,
- ?( E) Z* a0 a/ i# e
assign mcasp_afsr = mcasp_afsx;, k* i5 e* C8 B; n+ V
assign mcasp_aclkr = mcasp_aclkx;
: o9 t$ B$ z% B( sassign mcasp_ahclkr = mcasp_ahclkx;
( f) }2 e0 e, V$ Jassign axr1 = axr0;

8 M" d6 G$ |3 F+ M+ u4 r6 ^! Z0 j% W( t- J# ~0 T
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

4 ^# B9 p  |( b7 @" m
static void McASPI2SConfigure(void)
. M1 G5 [9 M: `$ T  |3 Q{
" |. j5 P- |4 E. E* Z% s* H( e8 }McASPRxReset(SOC_MCASP_0_CTRL_REGS);. z2 j) m3 W+ ]  P/ H' f0 J
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */: r: m$ J- x/ W& \& H  S2 ~
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);5 W4 H; I) G! M$ _' o- Q
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
1 j1 t# j5 v3 Q# lMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,2 T2 r, C( p- T$ A/ a8 M. T& [
MCASP_RX_MODE_DMA);1 c6 M. y; J9 d6 R( F
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
6 g% O1 u1 j# T  i9 P1 KMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
; u  I+ s$ ]& u1 ?4 }2 A: Y1 i% hMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, , A; K2 z1 t0 B# l- t
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
+ I$ E. u! A6 i6 w" o; t+ L# n( lMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
: F8 |# a4 ]0 K& j8 iMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */% i/ k7 R. b2 m' U6 q1 ~* q
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);- a( X/ J! O) ^0 A
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
- W8 M, {3 R. {. m. ^McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,5 Q) W( l) a4 a  B/ `
0x00, 0xFF);
/* configure the clock for transmitter */
" v+ V$ |# ]2 Q7 W' P* `1 a% m$ \McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);. \" c, J, ?: @+ c7 n$ G7 H
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
; z+ p: u  _2 T2 r# l+ FMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
. w/ n& ?9 I; f% X0x00, 0xFF);
- _6 L- N  ^7 K8 o4 j8 `# g) h4 Z) ~9 X7 a1 W) j# ~8 x
/* Enable synchronization of RX and TX sections */ 3 A& A  B+ |2 ?) s* O; \, y
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */* q5 z$ U6 }4 s' o
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);. f9 U$ ~% J7 e: v+ W4 t' c. H
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
& N7 L, L8 ^( w& ^) W1 d1 A** Set the serializers, Currently only one serializer is set as2 _; k+ b* P! G
** transmitter and one serializer as receiver.
( @* f. J: _* I*/' L/ ?/ {7 o6 h+ H. E/ w4 }0 r: s
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
" h' m6 ~5 H7 q  F, FMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
: }: W1 K" z: a! p4 T** Configure the McASP pins
' t; m% B. C+ _2 j4 e** Input - Frame Sync, Clock and Serializer Rx: o! }0 Y+ }) u$ x0 x
** Output - Serializer Tx is connected to the input of the codec $ }8 i) F4 {" m! ~
*/
# D+ A1 R3 |1 M$ b. l+ ZMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);  J) |4 X" |6 ^4 Z. F( l; g; Y. l
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));5 M  X  H- }4 r" V$ `, X- ?5 q
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
1 \( C. o, ?8 @. N! o| MCASP_PIN_ACLKX# b0 d( v/ F7 k. X- u8 x, q  I; E
| MCASP_PIN_AHCLKX8 T7 P3 l3 _/ R/ j3 f% \, O8 v8 u
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
+ F; w! w# t. B- ^McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
# ^0 j8 T5 G* \2 y6 _. X| MCASP_TX_CLKFAIL
, b+ M+ X: O* _5 F| MCASP_TX_SYNCERROR* t$ b( ?+ @0 D7 I1 ]/ D8 ]/ N
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR $ K2 H7 Y/ k! ~( s) b7 Q3 x
| MCASP_RX_CLKFAIL
$ D4 \* S6 ]! G4 D* i" G6 c. p| MCASP_RX_SYNCERROR   G' c5 e0 K: c3 a1 p
| MCASP_RX_OVERRUN);  R6 U( c6 V! Y8 \$ Y, W
}
static void I2SDataTxRxActivate(void)
: i) N  F, w: F9 X0 p# q{9 w3 G: z' W4 v0 t
/* Start the clocks */
9 T2 S% |* X5 HMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
% Q$ [  k2 e% t  M# \1 {McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */7 q$ W7 a% _( L# T, R" k9 l# c
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,1 }3 J3 ?- t/ X) r; A) q; p1 t
EDMA3_TRIG_MODE_EVENT);' i, _7 @4 M. h8 w- m8 o7 ]5 s. t
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, % a7 h% ?+ i3 g4 y( s
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
- A% ?6 B* ~! e" rMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
- j. o- m/ G+ v- j# a# Z4 qMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */  f* S1 h7 v9 p" }" B
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
3 o5 q: I# L  y2 m1 E5 T% R7 zMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);
4 [% w3 y# ^. M" R  HMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);* D% D3 g9 _2 D+ y: Z0 k' r6 ?) O
}

- f8 O# H1 {9 @$ D6 U: s$ s; W
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
7 g: p3 r& Q! u$ d9 D. F: i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-14 10:54 , Processed in 0.040601 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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