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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10252|回复: 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,; v, r6 _; F$ q. M$ p; _- w; }, C7 ^7 P3 g
input mcasp_ahclkx,- m! K7 _* n+ {( h. J' i7 \
input mcasp_aclkx,
& E1 Z) K2 i" K: D7 b  rinput axr0,8 }, S' Y3 m# I: j. C3 n" W+ F
" u2 u& [0 u$ W# f2 w9 y9 g0 `- n1 ]: ~
output mcasp_afsr,7 n8 V  B! j5 {: Y/ C; D/ L, e/ u8 A& X
output mcasp_ahclkr,
6 C4 O4 j+ X( G# l5 K' z6 ioutput mcasp_aclkr,, _; g3 y2 p( C) {
output axr1,
- _' E3 c. j, D- R+ c
assign mcasp_afsr = mcasp_afsx;$ W' G* a6 I5 i1 d& t
assign mcasp_aclkr = mcasp_aclkx;9 h1 g* w0 w; k" I# ^
assign mcasp_ahclkr = mcasp_ahclkx;
2 L; _% E) L( lassign axr1 = axr0;

, J5 k7 y& v( R1 x  {
/ n  j9 \' \* \  U! a" ?( N- C9 P
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
& y  j' ~5 ^% W
static void McASPI2SConfigure(void)
( P' g% [! ]7 y& }, b: ~; D: H9 u$ b{
4 ^5 f: h0 Q6 ]4 jMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
! {0 v: p2 s8 R# W$ {; r! UMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */$ H2 O9 _( _3 H5 S' i: y7 S) M, \* T) S/ S
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
( z& M& G& q# w# d3 [" C' rMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
- {" O8 D% h. S& H. h3 O3 Z+ rMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE," u. O' l0 Z+ ]  T! `2 n
MCASP_RX_MODE_DMA);5 N. }9 Q! ~" ?( X$ ^
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,: w2 G7 G( n; O3 y' [/ V/ t" f
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots *// n+ t8 d- `' A) U
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
7 a" V( ^! f5 cMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);) k: H3 J9 y% S, u0 Z; N
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
  z; H& K. r3 ~! T& cMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */" C4 k9 G5 I9 L) V7 ?
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
7 S9 _3 ~8 L8 ?" g+ a5 l/ M- pMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
7 s$ R8 g, {3 FMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
7 H4 d. k+ t5 o1 h6 ^4 N0x00, 0xFF);
/* configure the clock for transmitter */
4 }  N! b+ D; S5 FMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);1 O2 T8 [( a% K+ M. Y0 }. o6 L" s
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
& q; s  E: H2 z  c5 ^McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,9 }4 i  u; r( d
0x00, 0xFF);
+ y& o! j9 p  h; a( U3 r
* X5 V0 C/ w+ h/ [/* Enable synchronization of RX and TX sections */ 6 \5 K5 {! `0 I2 `$ e
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
7 P& N4 W$ P/ s: P, xMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
+ A. t1 b5 j' [McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
# a) f$ L- Y* c; ~, U/ O** Set the serializers, Currently only one serializer is set as5 z! r9 K- `% ^; C4 I- G8 H
** transmitter and one serializer as receiver.
4 a! f7 ]: h# J) M: x*/: W  G4 K/ n) Q7 ?# ?
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);" X" x+ C8 V( o! N0 X; X3 q
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*# X% }$ X/ F# g1 `- x
** Configure the McASP pins ; e1 K, n0 F2 X# I- P" Y' d3 ?
** Input - Frame Sync, Clock and Serializer Rx
8 l9 m6 @$ Q/ q) N5 O* ]** Output - Serializer Tx is connected to the input of the codec $ a, f& W' d. k, ?2 `) q
*/; j: O0 q2 Z" {- N- Y( q! x* O
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
5 N) w0 \& K/ O/ `+ ^McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));" h: U( k, j- u2 V2 g) F
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
! n) `6 Y' Y- d. G. x| MCASP_PIN_ACLKX" Z* M( N7 c9 Y4 {! ^! N; V$ K
| MCASP_PIN_AHCLKX
! T$ [% w6 S) E' Y2 C| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */' D1 ~) v) Y/ K! O0 D4 }/ L
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
4 v& L: z+ a* a. o9 W| MCASP_TX_CLKFAIL
9 J" \, G5 t  m' ^$ m' I0 H: r- }| MCASP_TX_SYNCERROR* c# Q6 H) Z( ?! W
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
- z, n( K# p1 f6 p: Y) g| MCASP_RX_CLKFAIL5 k- s( Q5 K" K) z9 {) D! Q7 B3 X
| MCASP_RX_SYNCERROR
2 i) k3 k* `# w2 V| MCASP_RX_OVERRUN);
! l& ]$ P* O- y1 z) g8 x0 ?4 ~}
static void I2SDataTxRxActivate(void)
  m5 b4 O7 g1 I( Y) a+ \{
1 F' r& f8 Y2 c' ?/* Start the clocks */
/ G7 q' M% L  f* ?$ K9 @, W1 _McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);* V( n4 i3 Y# [. B/ `6 T0 S$ W- i
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
* p$ A0 e$ S# O6 ^: Z1 r# L% iEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
4 Q, }' V/ @8 B0 o1 I8 \1 W) FEDMA3_TRIG_MODE_EVENT);9 a- R' D: m9 l4 \+ {# J
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 1 D. ^& T6 u7 t, y* f/ o
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
( Y2 d( Y, S7 `  lMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);$ c8 U9 s9 ]+ X! H5 P! m
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
; N4 b2 d$ e# H: W' Bwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
( M  {: `+ N( @" uMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);2 C6 m+ u9 Z& b3 d* J6 {
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
3 B) w" [2 y' p/ w}
4 ^5 c8 `$ Z; S8 E; f( Q1 H# ^
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

: m/ R" m9 {; g. L( ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-1 20:52 , Processed in 0.046966 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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