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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10007|回复: 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,
5 i+ L' I" r0 dinput mcasp_ahclkx,
- a7 E+ J) q% }6 Uinput mcasp_aclkx,; _* ]" \# H3 L. S9 k
input axr0,
; v  }/ F6 |$ V: A4 f4 |6 `; W2 U* {" r! [1 `! S4 g6 U
output mcasp_afsr,4 m! D7 B7 B8 _4 o- |, E2 j9 Q2 t
output mcasp_ahclkr,$ m: R' t& m5 c8 L: q6 J
output mcasp_aclkr,8 a! K2 |! ~, v/ v, F2 C
output axr1,
: t0 O/ {" L$ V! i. f% t
assign mcasp_afsr = mcasp_afsx;- ?& ^7 C/ T6 _/ ~( z9 F- G
assign mcasp_aclkr = mcasp_aclkx;9 |3 s% \) a9 a# }; q/ V
assign mcasp_ahclkr = mcasp_ahclkx;
9 e% K; \4 W5 F& @: rassign axr1 = axr0;
5 h' e$ ?% n7 w& d4 X1 m

0 ^' P+ t7 H& d
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
* B5 r8 r; |2 j# [  ^% D: Y
static void McASPI2SConfigure(void)
* s0 P. T7 p1 ]* n; R3 ?5 w+ J) Q{0 ^7 F) ^, c6 Y! O9 X& D1 P
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
  t, p" a& g# VMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */% ^9 b" J* p+ s, M: n8 {% _9 Z
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);% p$ J# L; e% z" r
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
( r! O6 d) P. l2 d, }4 pMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
; L2 s0 k" M2 ]* _- O1 d# z) Z6 uMCASP_RX_MODE_DMA);
- e, f# i/ x1 \& N9 \McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
9 B) e. Z+ A  ?- K7 e: \1 u! g8 iMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */! p7 i9 u7 r. Y( ?7 v# g. z
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, & n9 g% y2 O# a- i/ P- c. b. H
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);1 f" S% E8 k/ b; ?- S( ~+ t* I/ F% y+ m
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, + `$ P! _: k( Z& d. |& m  ?
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */. L; ~! h+ K( P+ z
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);3 v- t3 T" y8 ~- e, [
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
# H3 B; ?( t4 G& vMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,' N& A( @% D8 ?. O* y& [5 v
0x00, 0xFF);
/* configure the clock for transmitter */9 s  g! i% U  T5 z  Q" [7 I
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);6 u- Y3 l! F. M+ p/ n& z- f
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
" F/ V4 f) J' p8 \% ]' EMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
( H2 s- e, v3 q$ l6 I' x2 v0x00, 0xFF);
- j/ h1 G' B; g3 f7 t, w* t6 J0 Q+ D  h1 J( ]/ L" N6 l
/* Enable synchronization of RX and TX sections */
& G, q# W% a7 ?- j* dMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */8 w/ d9 @6 t2 a. m# V% w. @; }& Z
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);: g2 R1 Y9 _/ ]8 P
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*5 Q# R$ _- a% u9 j
** Set the serializers, Currently only one serializer is set as" b, ~5 ^3 y4 @; \
** transmitter and one serializer as receiver.: r6 |5 g- Q6 G$ E: H- f
*/
) I( S0 A* E% n0 S% W( w5 |- vMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);+ O5 ~& Y: `7 y: _/ q( F0 _( y
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*7 O2 x1 u' F& W2 b7 J; ^. r8 L
** Configure the McASP pins 4 Z$ }1 `) s' _3 I; y% G; @  K% F
** Input - Frame Sync, Clock and Serializer Rx7 M' D7 Y- f5 l0 S
** Output - Serializer Tx is connected to the input of the codec ' `, J, y5 E4 t4 {0 A9 Z# W6 d* H. Z
*/
/ m' \( G9 L$ E7 j) mMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
  @. D% n1 N3 B: ~McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
# _& s3 j9 g* u' ~! j$ h8 U3 fMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
, D. O- k' ^2 @. g9 F( R| MCASP_PIN_ACLKX  e5 ^: W' p' }7 R- g- O
| MCASP_PIN_AHCLKX
1 S1 M& j0 o% {8 N2 p| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
: R1 \/ O! e( C- o2 |McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR 9 e/ R5 c3 s" ~  q8 K# R; i' X. p
| MCASP_TX_CLKFAIL % S1 F+ U2 O% A# @' h" a/ @
| MCASP_TX_SYNCERROR* Y( D1 E7 k, B; c; a. j) w2 Y+ S. x
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR 5 C* V% c7 k. ]
| MCASP_RX_CLKFAIL
$ r7 k2 N$ J- b, L/ B! f0 [| MCASP_RX_SYNCERROR 7 E. u% h8 \4 V  T- l; u
| MCASP_RX_OVERRUN);
- @- r) R( P& A' s% f}
static void I2SDataTxRxActivate(void)5 J- x6 s' y' f9 R3 X
{
  w4 }  t7 r% E* v% x9 R& M. w/* Start the clocks */( k9 \% d8 x# B* E3 y$ O
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);2 |  F3 H, Q( K
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
0 `, s; o. k2 P" S( \0 fEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
) U+ Q, P$ n% QEDMA3_TRIG_MODE_EVENT);% h( c+ V$ O8 y: M2 V
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 5 _& J  n/ n$ \( v) y5 F
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */( K' M6 R4 T/ q$ a  @$ X! h
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);5 `& z, t. ?: l& Z
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
4 t4 h" `4 `- X, G' Kwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
  ]2 ?3 j$ H0 U  XMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);8 r# r+ b  M7 f0 N0 k" Y
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);! U' Q$ @7 m# Z' v7 ?9 D
}
6 q$ J  ^& F6 K# M! e
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

! I8 y! P6 k# P* G7 Z8 h3 j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-26 10:11 , Processed in 0.039595 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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