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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11843|回复: 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,- x4 f( W* N/ y" @- E/ L
input mcasp_ahclkx,  H1 H$ _/ n& k- u- t! H
input mcasp_aclkx,
: x7 D. V% \/ q5 E4 binput axr0,% y2 D0 f" j7 g1 f8 |, S( D

, o3 y$ c' D% z( Koutput mcasp_afsr,
4 f- c$ N" b  P+ j. h: `output mcasp_ahclkr,
/ y" i: p- ~9 N5 u- @output mcasp_aclkr,$ x! x& q  `' T: k) d$ x2 E
output axr1,$ U1 o( V2 a8 R6 `% w0 @* ^
assign mcasp_afsr = mcasp_afsx;9 `* H9 C& L4 Q1 ?0 k* y- j  m1 L
assign mcasp_aclkr = mcasp_aclkx;( u: W0 n: p( y
assign mcasp_ahclkr = mcasp_ahclkx;6 W  @( u: b( x* y# z0 l
assign axr1 = axr0;

2 d+ C6 v" o( M7 a. Y6 B" ^% E6 f0 r2 T- s3 M
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
# h, g: e: Z. ]/ z! r, g
static void McASPI2SConfigure(void)
# o( v" I3 t$ ]% w) o{
3 f/ _) d+ [2 r) V5 O' I# C  PMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
  s  m9 v$ C2 E; `7 A" ^3 E$ aMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
" ~: [  H# a7 B. E3 I9 BMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);# b( I+ n- M# _' r
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */# v5 s( h& H/ Y3 i
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
' g* {$ }$ t+ v9 D2 y9 X2 q1 JMCASP_RX_MODE_DMA);
- l& H+ T; c5 }7 u* B- D, aMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,( R; j' S  f  H$ u! L% _
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */- e$ }' ^, m$ D# t
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, 5 _; q7 _; B( e" E% [6 n/ r
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
  ]8 x# B5 H% ?, @0 |* G( \McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
4 V/ }4 c! q4 G- w3 M+ _  ?MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */% F0 r" D6 _( p: H& f0 M4 ^$ k
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);& u% [" d0 f! f/ N
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
( n1 U5 H3 G5 j5 Z. G* lMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,- ~- q1 U1 x% ^  d9 m+ H+ f
0x00, 0xFF);
/* configure the clock for transmitter */0 Y: y3 J0 v! f2 T! s/ V9 u
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);( f- p$ S1 ~8 l" g
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); ( L7 m6 Q! u! t9 C) K
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
. s& D7 S1 Q% x% e: |9 T0x00, 0xFF);
& w  v3 t6 _9 c" a/ A) i; e, r
- _& F% J% l7 t' V: K1 G8 X/* Enable synchronization of RX and TX sections */ . G2 R, d, i8 y
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
4 r) ]# \4 L" N2 R* eMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);8 Y9 S' ^/ E: f6 H  F# H- K$ a
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*$ \5 y, C" ?5 O- L2 V2 w1 I
** Set the serializers, Currently only one serializer is set as+ \2 D& l. `$ Z" c, {! i3 S
** transmitter and one serializer as receiver.* _+ K" |2 G% ~( e# `2 ?+ m
*/0 s1 V& m( [0 a6 b2 K0 k$ @
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
1 I1 \' |0 l1 `6 XMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*2 T5 O2 w& |' h' H& h! X
** Configure the McASP pins
0 W+ [% Q# X4 u1 \** Input - Frame Sync, Clock and Serializer Rx
2 v% w( ]  v  e( m) L- b6 v** Output - Serializer Tx is connected to the input of the codec 4 x8 E& x% R  r9 o8 d# n' V* d" N/ j& a
*/- s8 \, J0 ^5 h4 c' y& x, A
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);4 H" U! K& ?, m
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));* f: j& X+ q+ n; _- y) a# c
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
9 D- {, G  }2 c  C& D/ s" }' u2 u| MCASP_PIN_ACLKX2 j; f6 \- N% {2 k0 Q* t& [
| MCASP_PIN_AHCLKX9 L+ Q) S0 R5 @5 F& \+ X' Y  z
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
6 J; i& C1 W, b! T2 @McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR 2 T! C7 y/ _, S0 y4 S' A* [, R
| MCASP_TX_CLKFAIL
* ^4 v4 s, O" [! H" o+ l| MCASP_TX_SYNCERROR
& u1 y& X& J5 k0 I" ~| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
5 t5 g" ]1 d& A- V3 H: K+ @6 z$ d| MCASP_RX_CLKFAIL, w0 T1 Y# n! U
| MCASP_RX_SYNCERROR / ?3 p+ U' F$ T
| MCASP_RX_OVERRUN);- |0 c' k" k8 P" e, m8 m% ?
}
static void I2SDataTxRxActivate(void)
  `! y: t* c6 c: `( Z' J{
% L( o: N0 {- Z  }/ J* [/* Start the clocks *// p- G3 |. y" [( a4 _
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
* b, n4 V. ]' u$ C5 E: MMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
; f6 V9 B6 q% c2 DEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,- \0 Q$ s! D9 ^3 R
EDMA3_TRIG_MODE_EVENT);
. \1 f: P" f& o. D. aEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
8 a: M9 T6 z; E4 t( X( I8 yEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */  s* a+ H: _7 z$ _7 O
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
# ^, b& _/ v8 w/ }, O9 d' OMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */+ S, x# c3 u- g' ~. C
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
, k! i% m# H: x+ g5 fMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);
4 v6 f* o) Q4 h. n. WMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);3 S- I% D+ O/ ^* Y/ r5 C! ?
}

! n# @. T  M7 A. d+ X, B4 x
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
' w2 Y- K* Y% k" D3 r2 R" _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-16 07:40 , Processed in 0.041784 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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