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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10443|回复: 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,4 g9 U7 c8 m: k9 |& H: I
input mcasp_ahclkx,
, I( i5 `( ?2 {) x6 ~input mcasp_aclkx,
; N$ i- U  Y* M/ U! @' ~6 minput axr0,
- C6 D6 F" N. M9 x1 s
1 ~6 W% Q- @0 @8 Noutput mcasp_afsr,
% C+ S) N1 [/ a+ Y. toutput mcasp_ahclkr,
% X2 D0 f1 |6 W  p+ f# |output mcasp_aclkr,
: v; Y7 P4 Z- Q% ?/ X7 n; O& Doutput axr1,
' b+ r* Y: H5 i5 c6 E, p2 A' C3 T0 Z
assign mcasp_afsr = mcasp_afsx;
: U1 \; w: o; z4 J+ \; ]assign mcasp_aclkr = mcasp_aclkx;
. O8 J" r+ z2 C0 [% passign mcasp_ahclkr = mcasp_ahclkx;1 O. }: z& t+ d( @- H6 G
assign axr1 = axr0;

4 d7 h8 H: K$ J$ ^- K/ G' S6 k6 Q! m  \, j0 s  D6 k
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
# {0 h8 e' k5 o1 F( F* n
static void McASPI2SConfigure(void)3 r. |; ]: i/ r) s/ d
{
% ~7 q0 L& T$ j5 F  G* E7 s. SMcASPRxReset(SOC_MCASP_0_CTRL_REGS);( ^( X9 e- f0 }$ e
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
$ K- Q8 w* Q6 o5 g8 XMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);+ Q6 @, q- f1 H# b$ q
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */1 i1 J0 n+ V% E0 U7 v
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,7 h) c0 M- d+ Y: Z# n; v
MCASP_RX_MODE_DMA);
: p# C/ D* ~# p8 u5 {+ H9 u3 WMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
, x" z2 N7 I1 f" |' EMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */' l: X& Q5 x2 t0 |$ t( H
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
& N$ m  h9 k* X: E) I5 `1 BMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
8 r# ~  B+ I! f* h6 E- dMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
! \0 u+ g8 ^; H6 K1 M0 jMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */* `( Z  U) r. b7 U" z
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);1 e" l9 I. f4 D  E+ e
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
" Y4 J' I5 \0 y; X+ q- o3 @McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
! B" S0 R# D. `& }$ X  V& d1 b0x00, 0xFF);
/* configure the clock for transmitter */% v2 S7 |7 Y- _4 d! ^% i4 ~
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);; [4 S& \2 _0 R9 c' B$ R
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
  u4 z" t8 G* VMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,1 _" D% ]0 L0 u  Q% T! d2 G% l) J! l
0x00, 0xFF);
$ b# @( m5 g7 x7 @+ v' |- B) p1 _8 ]2 c* _
/* Enable synchronization of RX and TX sections */ 2 U: ?' ?2 d) @) {
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */1 w& c- O6 a) h# V
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
+ O" L& U' C* ^4 o& n6 p- n. MMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*+ x! \" R4 s: l. u0 p
** Set the serializers, Currently only one serializer is set as4 T4 P, n4 F; J- E$ n
** transmitter and one serializer as receiver.
, h6 I& K7 |' p+ G- Q( {7 d# }8 L. q*/
. [! l  j' X; Y8 V* rMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
7 k6 a4 t) ]9 e6 }8 r& ^7 e9 F5 l+ ?McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
% ^0 N( ^: [7 G# D+ {. E5 h$ _- s** Configure the McASP pins ! o2 }9 p# A% R- E$ d- o$ f
** Input - Frame Sync, Clock and Serializer Rx
6 g* K3 Y0 a. h7 _6 R** Output - Serializer Tx is connected to the input of the codec
+ G; B+ I) |6 N+ Y* m*/
4 z2 X, `1 E1 kMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);: Q/ F" K8 F: ~+ n; ?4 w, e( v$ y
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));# N9 a" o0 ]# c; ?6 L6 l9 r  m
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
4 ~+ C- g1 Z; m: a! x. Q| MCASP_PIN_ACLKX6 C, M4 O( y9 v& t+ G
| MCASP_PIN_AHCLKX: @" V) B, v6 Q6 z- G
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
, v) n0 Z; ]* I" b( ]  d4 QMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
, e/ O8 i- Y0 D( ~" Z, k| MCASP_TX_CLKFAIL 2 J) [5 j+ y; `6 N  ^4 s
| MCASP_TX_SYNCERROR
2 D7 |. }" u0 {$ ~0 j| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR / @: ?/ |! S. T4 x0 Q! L
| MCASP_RX_CLKFAIL
5 q9 b7 O; k! `1 [0 @| MCASP_RX_SYNCERROR
7 _1 _# S  ^/ s) F4 x- k| MCASP_RX_OVERRUN);
" S; p' |/ M7 Q+ W; b}
static void I2SDataTxRxActivate(void). l  c1 s" C% p# I# r% b& i
{
1 M1 m8 H! b7 v$ V4 k) S# w6 T/* Start the clocks */# D' h' a$ C) W/ y6 \" @7 U3 E
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);/ c$ R! i* E- L  ~1 @- b5 I9 a! M$ p/ A
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */5 x& ^, N8 ^" O% Z
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,7 r) L. {/ F" \0 H1 o
EDMA3_TRIG_MODE_EVENT);  ]7 d# k9 h0 E: g* F) F
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 3 T: U- ]7 f/ h6 L5 _9 X- p
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
; d) p. T8 B8 a. L/ p$ QMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);6 h8 ]* G3 x; f" Y4 w) A7 d
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
( P* t4 H5 p! u- pwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
) e1 {% r/ a4 A: mMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);' ^+ Q) ~' q2 f3 R/ V
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
. H' @0 b- N' Z& {& F}
5 ~% T" [8 N% A* `
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
$ a' ]. Q- i9 }* x4 h$ ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-6 23:27 , Processed in 0.039597 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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