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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10005|回复: 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,
  J4 i+ R* S+ w* o. J* Sinput mcasp_ahclkx,
: X) ~' E% M. A1 b% ainput mcasp_aclkx,; Y8 a2 M: O  i9 C
input axr0,
9 x5 _9 r- W7 a6 S# ^2 X" D. o" s( M
output mcasp_afsr,6 B- y7 w2 ]# M+ D0 U% e7 U* S
output mcasp_ahclkr,( o: M- r( U* U4 Z
output mcasp_aclkr,- K1 V$ ~$ q! m: F
output axr1,! m8 Y  r) U% j2 J5 @$ M
assign mcasp_afsr = mcasp_afsx;$ R! q/ A* U. A( S% @$ T
assign mcasp_aclkr = mcasp_aclkx;& d- o& u- Q$ F1 O  M/ r
assign mcasp_ahclkr = mcasp_ahclkx;
& Q5 |3 |* c; Nassign axr1 = axr0;
& U  X- C7 [) T
( a8 {. P$ p  o* C  ^4 g2 |
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

9 {' ?" G% }6 I" l1 H' o9 o$ K( d) H
static void McASPI2SConfigure(void)
) _% e% k+ c/ _5 W* I3 N{
3 s" R( ~! [$ D5 WMcASPRxReset(SOC_MCASP_0_CTRL_REGS);7 q3 ]1 u8 w4 g7 e7 }3 \
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
( k5 g' n+ f; B, K/ n! P" yMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);6 Q- }' |# |" \5 l# c" l
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
; U  A: t* q( T, m/ J2 QMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,; D$ ]$ ^1 u4 G/ L/ `
MCASP_RX_MODE_DMA);
6 a- q% E6 r$ s; NMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,8 V, m: L/ L9 n) C7 b: D
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
- e" ?( t0 C+ N+ x, JMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,   M' @- P' F. t. i+ S
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
$ k1 L3 J# U! J2 Z; A  AMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, # M8 w- p) a: N7 D4 y
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
) {/ D5 L$ d4 H3 BMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
9 C9 i3 N/ F$ C- `3 K+ [/ gMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); + z+ ^% J8 k% P. D$ \4 e
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,2 ?: l6 i- r+ q' O/ J( H. w: D  j
0x00, 0xFF);
/* configure the clock for transmitter */4 n' E% |7 q% c
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
8 r& U- J' f# Q. |) wMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
# b" }# H# l) x0 DMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,2 v- R1 o9 y8 ?( m
0x00, 0xFF);
' f8 ]# y0 q1 D1 Z3 s$ u; d3 p0 s- [( X2 b$ ~- |
/* Enable synchronization of RX and TX sections */
' R) V/ g% d7 B) j7 A5 |  v- FMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
: F9 c/ Y! o5 ?4 f* sMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);) S4 h2 W4 J4 B; Y* ?1 ?* R* D: Z
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
+ \# n. a+ W; ?* ^4 D3 F, o0 Z( R- J** Set the serializers, Currently only one serializer is set as3 ]% H! r' j3 v" o: v
** transmitter and one serializer as receiver.0 R% Q4 @5 S9 l' F5 K; v3 x
*/7 r# C& J, V$ h  {6 y
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);/ u- |9 i; G) A: `, E
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
6 |' |$ c' |6 V7 c- X+ l** Configure the McASP pins
9 ]- l4 O6 e! m6 t8 z" A' G7 R2 |** Input - Frame Sync, Clock and Serializer Rx- V: T. j8 r1 z4 x& P
** Output - Serializer Tx is connected to the input of the codec
7 i% U' g6 P6 }: }/ W*/
) D% u7 v+ F  oMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
) y7 f# p6 ~  e: C" cMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
* r- C( f" S% ~8 MMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
2 T. V' h/ \/ i! r8 t9 v8 {; n| MCASP_PIN_ACLKX# b7 ]- }% T3 O& T1 D4 m
| MCASP_PIN_AHCLKX
. s: b, s9 g  L/ D| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP *// K, G2 L4 F; h! s0 y
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
3 u8 i$ x- s2 I3 v# z! i8 G| MCASP_TX_CLKFAIL
& n! H6 S' N/ H4 t" J; j* ^| MCASP_TX_SYNCERROR
3 i$ Q5 c6 @* s/ V& c0 g| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
: |+ M% V& y" P% L/ Y! l| MCASP_RX_CLKFAIL
( |& s/ Q2 Z# c  J2 H# g2 Q| MCASP_RX_SYNCERROR & d! w/ M. t0 Y& [& ~
| MCASP_RX_OVERRUN);6 B: _! X2 F+ M$ d* ^
}
static void I2SDataTxRxActivate(void)
2 Q8 r4 }! o! ^& n" V' g# s{% c! |6 [" L2 j4 [4 n
/* Start the clocks */. m# t" r1 x" B# R2 `. B  D% T8 P; F
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);6 B; Q1 c& i9 ^4 c  B
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
! H/ ?. _3 }$ h9 @EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
! w+ R# S+ S/ D0 v$ R  j! o4 D! F% G' dEDMA3_TRIG_MODE_EVENT);
7 E0 K- G/ v% {/ S) l3 oEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, ! _! `7 O3 H8 s; V
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
9 R$ e; ^+ S( O9 Q' a( d2 {McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);. v) Z0 S% K, W5 ^
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */" E0 h  C& I* |" n
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */: M' x& X& a0 V( [: `
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);8 P/ I8 R- L" z9 ]+ Z9 M
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);+ e* w# j2 l: `" e3 Y. l, X5 a$ ]
}
  Y$ ?) \; Y( h& d2 M
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
3 ^1 r8 c" k& U8 R# n  B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-26 09:40 , Processed in 0.044626 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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