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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12108|回复: 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,4 u* |- `+ U3 |2 A+ S
input mcasp_ahclkx,9 h# p4 n: X4 o5 u+ n
input mcasp_aclkx,- w- \9 k, ?9 [  b; S; J0 S. |4 [
input axr0,: Q5 @: B5 f6 j2 ]) Q7 R- f

- J0 C2 N8 ]1 h9 |2 ioutput mcasp_afsr,3 f6 x9 U" k% l: j
output mcasp_ahclkr,
* K1 n3 l- x) V0 S0 n, @& ?output mcasp_aclkr,* m" x" W7 r( p) I  l4 E( f' h
output axr1,7 }0 L6 c* @) B* ?
assign mcasp_afsr = mcasp_afsx;
, U( h: [6 P& h0 c0 R# ?1 i5 Dassign mcasp_aclkr = mcasp_aclkx;. W6 o, N5 ^3 Z" c! n( F4 Y5 h' |$ [
assign mcasp_ahclkr = mcasp_ahclkx;! {/ f; [. }9 x3 T
assign axr1 = axr0;
$ J+ B  p+ V* K/ P, t. c  J# D
0 u: R) m% ~: o! d: O% ~  x+ y  A2 t
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

, G7 N) l0 Q+ G
static void McASPI2SConfigure(void)
/ [, F, m; l7 m{" H6 S) w& a; d: J, u' K/ R. b
McASPRxReset(SOC_MCASP_0_CTRL_REGS);! t9 E5 f5 `% x- I: o% S
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
: x5 v0 {& u( c% {McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
" _/ g8 l4 h6 M' N  M8 y* R/ E4 S5 D* }McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
2 V- l$ X9 l% v5 m9 X5 W7 A. {McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
1 T7 B$ t! s# b( G! p0 XMCASP_RX_MODE_DMA);
4 Y; I: [# b/ z1 d( P, I- _McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,( c7 @" T, N/ I" t7 Q* a; k
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */: h. Y! S8 ?/ Q1 q
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, 5 q4 d0 j8 k% ~$ k& r+ I( W( m
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
1 ?2 T* {3 J  J9 O) HMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, : D/ j  I1 J% m' ]# t
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
4 _( ?5 R9 C2 j1 X; U9 }6 SMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
' g; h  l) N! h. m# z0 KMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
% z: P4 q5 j6 }+ ]7 P4 eMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,1 r  @' @9 m+ Q# v( I
0x00, 0xFF);
/* configure the clock for transmitter */; I! l' G% u0 ^& ~2 a
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
3 L+ x3 E8 E7 f& v# m, kMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
8 Z# T5 K; k) Y4 uMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
' C+ Z. [& n. d+ \+ U0x00, 0xFF);
6 F. ^' ?0 q/ q$ T) Q/ v8 d8 k2 _( J& v
/* Enable synchronization of RX and TX sections */
3 K  M1 X, `7 f& L& [McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
/ c  d! d1 q" K7 s& K- s- F9 fMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
' N/ s0 Z, ?9 {% C! |McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*; }4 x, {/ {7 T! m. I
** Set the serializers, Currently only one serializer is set as! v$ S( U, ?0 G- N' B5 t
** transmitter and one serializer as receiver.
% \; x$ |4 k, q+ W% I*/
. I  L1 _1 Z) n6 N* S3 p% ~9 G  ZMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);* P$ h1 z# Q6 P) [( [! {
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
2 `5 h$ h, L2 u) n8 c$ m& z** Configure the McASP pins
2 a) C/ J/ L( |& b+ ~** Input - Frame Sync, Clock and Serializer Rx
( U  g/ Y! m' n2 ~* R% ]2 z** Output - Serializer Tx is connected to the input of the codec
- V" \& k$ R9 e( W! U*/
+ o5 r9 y* c  A8 E( ~- [' p8 RMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
% a6 O1 Q/ x) _0 \/ yMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
$ \% P2 B$ S/ O6 n9 [McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
! B) L7 l% W  r2 ^7 m0 d* ?; w| MCASP_PIN_ACLKX* g) K; d# ?# x; w9 k$ f' e; k0 R
| MCASP_PIN_AHCLKX) N- b/ C  q4 [7 ~; Y/ r, \
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */+ O9 n  L& ?8 b$ `& J# R' V- S
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
9 z( e" j4 G# \$ T: E4 q* c| MCASP_TX_CLKFAIL - z  X) _! X8 Z( D
| MCASP_TX_SYNCERROR
  Z% Z1 P6 t; T# w| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
0 z, j+ ~! D6 P4 u| MCASP_RX_CLKFAIL+ A( t' a( d7 I- `
| MCASP_RX_SYNCERROR
+ u/ S/ j* o1 }7 v$ c| MCASP_RX_OVERRUN);
5 d( L) X+ Z* t  S}
static void I2SDataTxRxActivate(void)* X4 l$ M. u7 Z4 m% _6 p3 s
{4 S, w9 ^; r# Z3 [, _; i9 O
/* Start the clocks */7 B+ |$ X0 X; @1 Z- a  B
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);( t& ~+ t9 \  M% t4 |3 m
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
9 r9 ]0 \4 ~/ D  gEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,; Z2 q, |# V* C5 I" B0 V
EDMA3_TRIG_MODE_EVENT);9 o9 O& x# c. x( C1 ?5 b
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
* Q, s9 B! {, I0 X& {EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */# G9 Q$ s3 i  F+ L
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);2 f, |! K$ L( z* I* S+ h
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */& ^# E( _) w- _5 P! b4 E* V
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */1 {( m# J/ L$ r$ Q* C& \
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);, M" x7 j& y- c- \5 D, [9 k* R
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);- n$ E0 x/ ^! H2 V6 V, f2 o& p
}

& m: H% [; O' |# x
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

+ _$ G4 I  h( i; b: R* ~: @
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-28 16:22 , Processed in 0.040756 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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