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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9562|回复: 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,0 R9 ^/ f; e, d; D0 e/ K: d/ }
input mcasp_ahclkx,! D6 o% a: d2 Q( l- R" l
input mcasp_aclkx,
& s8 A" y- o* e" r; |input axr0,2 P8 b& y8 v4 \- m- o' |8 R

$ K  A* R+ q, c( }output mcasp_afsr,5 m. ]( @: d" Z+ n$ q- ^, a
output mcasp_ahclkr,
7 T( `2 _  i! g" ]output mcasp_aclkr,
: S8 `6 p7 \  V* q" ~output axr1,$ Y- k$ K) M* ~2 |/ ^" N
assign mcasp_afsr = mcasp_afsx;% ?* u# `' z- U) i$ |& [
assign mcasp_aclkr = mcasp_aclkx;
  m, W9 l. H7 s5 p4 yassign mcasp_ahclkr = mcasp_ahclkx;
3 l3 `7 z) a0 hassign axr1 = axr0;
5 G) P' _" M% n! r# y( m( i

2 N7 O, e+ Q2 z; T. N% X* y# c3 b$ h
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
) }, }% h9 C9 W1 s  |- j( d$ ^
static void McASPI2SConfigure(void)
1 r  i' z9 T7 p. Z% @$ `- H* }{
  u' N. N. ?% v5 |/ i. nMcASPRxReset(SOC_MCASP_0_CTRL_REGS);1 ^5 ]8 s- v% j. N' j( d/ ?& P
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */+ U  l- a( O1 n9 s# i/ r$ G
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
  t; {5 ^& [+ A, SMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */4 _8 k# v. y: n6 S& {# p7 t2 G
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
8 v8 U: {* Y7 \1 M3 _7 lMCASP_RX_MODE_DMA);
7 E3 B9 ]. N/ I& Q# V  |0 o( V) ?McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
$ L* g! i. T1 A# R( F5 \: B9 LMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */+ x8 B3 i' O% g- x; n: D
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, $ Z& O1 n/ f; r; F3 Y* ~* s. j
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
$ }3 i& d8 s+ ?& W4 Q9 KMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
2 l# u$ d" z) o. x* K; ~( ?MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */$ K$ u+ _( w' p$ Q6 Z7 n
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
/ |- F0 `( _* cMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
) S/ O3 ~  Y: A2 gMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,2 ~1 z- \0 A- @1 ?8 N
0x00, 0xFF);
/* configure the clock for transmitter */4 }! T) a+ w6 Y; K( j
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);/ I; R/ o* \0 H  k" R) [, n
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
6 y: R+ m  m! z3 {8 R; z& Y! s3 JMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,7 r( v- a- K/ _6 q: M
0x00, 0xFF);0 S) i* i7 V  W1 C9 @! M5 p

' L# p* C$ e- b  }5 c; J1 S/* Enable synchronization of RX and TX sections */
  L6 `$ M  j3 E: DMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */. t2 ~5 H: ^  k* F
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
* e) H) s8 P  b6 DMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*8 n' q+ \: z) R7 \
** Set the serializers, Currently only one serializer is set as
2 V1 `6 S1 w+ c- O8 V! [** transmitter and one serializer as receiver.% u+ L( U9 q# x& t, P  {* q7 P
*/0 Z# s9 H2 N: I- Q% _5 r7 L
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
. F, S5 u# q$ H2 P5 Q- x! `McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*+ A+ |. _# I* M/ E. b+ ?
** Configure the McASP pins : z% b1 c. f0 S  f
** Input - Frame Sync, Clock and Serializer Rx
1 U) Q+ s7 [( @3 W" P7 p* m; f** Output - Serializer Tx is connected to the input of the codec 7 k0 J  p$ w: }* ?% M5 Y1 h
*/7 O: g9 x6 _3 R3 S4 c, N, i- S
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);6 F# O5 H4 M9 A+ O# V) L9 O4 A
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));0 U# x. o" M7 v7 J
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX% e% k+ J9 h/ j# G/ m( W$ e
| MCASP_PIN_ACLKX
# g( r! A2 o$ [7 L3 ]) ~; z7 A3 B) M| MCASP_PIN_AHCLKX
# q8 r6 W! M- q# W9 c' |) M9 u+ U| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
, o3 k0 y3 B( F/ m3 e7 f) j& MMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR 5 S- U! h/ b1 Y5 O/ ~
| MCASP_TX_CLKFAIL ) ^: Q: X& s( @5 s) G
| MCASP_TX_SYNCERROR/ f5 f) m, b1 q. l8 g; e3 j
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
8 x) c7 C0 w3 i3 o. v+ Z9 g| MCASP_RX_CLKFAIL
# T" e7 N' I( X8 J: Q. e% ]| MCASP_RX_SYNCERROR " Q& r0 }1 I3 z9 t$ X' U$ z
| MCASP_RX_OVERRUN);
' m7 U' }; r& j+ v( h4 d( v/ R}
static void I2SDataTxRxActivate(void)" }' f& B, @& U$ G  _
{
7 X. U. h. `1 h; p* ?/* Start the clocks */
6 Z3 f$ m2 f- H$ O) V5 ]1 L1 QMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);3 k: e& Z! ?+ ^- O4 J
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */% t0 q! n1 c1 J( A+ E  d
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,4 ~; ?# k; Y. O! o& z
EDMA3_TRIG_MODE_EVENT);
, Y' v$ u; s6 n) tEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
6 d$ \1 u% [6 j7 a. Z$ {5 ]EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
. [3 [& B$ E& g  |3 AMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
& r$ I' v  v" I# RMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */' v$ H) T1 T( Z
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */! r4 ~0 m; s( N3 _+ F
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
) ?7 L6 W" `9 dMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);! e$ h  C2 x2 U9 v% o( c
}

: E. S3 m8 r, N
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

2 j" x% c% d  {+ r1 F- m
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-13 23:54 , Processed in 0.044088 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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