MCASP自环配置。 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9272|回复: 0
打印 上一主题 下一主题

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1213

积分

金牌会员

Rank: 6Rank: 6

积分
1213
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,) X5 g. ~7 K6 i+ e
input mcasp_ahclkx,
; t$ H3 V6 H2 f7 q% w5 T8 rinput mcasp_aclkx,- I" L0 C& u( s$ M+ M& W- y6 J0 W
input axr0,
5 i8 G, e+ h2 `5 ?$ n/ x- A
4 m( a. K! q' {* Doutput mcasp_afsr,
* I3 {+ r$ b/ d% boutput mcasp_ahclkr,- W  x/ f, d. e8 L
output mcasp_aclkr,1 A- Q! p$ D' ^) j
output axr1,6 s) u0 w& n7 j% n4 k2 [
assign mcasp_afsr = mcasp_afsx;
' |0 ^# l+ t& B- p& |assign mcasp_aclkr = mcasp_aclkx;4 l: i* p1 W6 L5 j& J7 W' S
assign mcasp_ahclkr = mcasp_ahclkx;
" }+ i, I/ w/ K+ m1 Rassign axr1 = axr0;

) z& _8 P- U# f/ o8 F: ]; p$ x7 \7 |/ A. y# m9 j) v
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

% r# u# N; ]$ _3 h/ z
static void McASPI2SConfigure(void)5 I' V. d3 B9 C. ^6 U% `' x: e; ?+ G
{
* K. D5 z# W- m1 @. G9 e3 EMcASPRxReset(SOC_MCASP_0_CTRL_REGS);; T* I! G; g1 r" [* Y! W6 E, h
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
% N/ t9 ]) T' Z& @McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);+ C3 B7 W6 J# L0 V
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */; A2 E0 L  e# \. c
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
, }$ d5 ^" C' UMCASP_RX_MODE_DMA);( p3 U! ^1 i  l- p! T( b" E
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,% ?; A- ]0 n+ h) l" G3 a
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
0 I9 {9 ]- E1 w! y2 GMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
! Q7 K0 A2 d5 Y! X2 p; [MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);3 h, X; l0 o; Z5 e; M. o# M+ t$ {. F
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
+ I7 N' n+ k) f& N( XMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */* ^! ^" n6 `+ S) U1 _
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);5 F: x9 a% _. k3 G
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); , h+ A/ }7 ?* ~9 t8 b
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
5 l8 y  n; f. _1 p- c5 M0x00, 0xFF);
/* configure the clock for transmitter */
6 K4 P  O2 z$ f# pMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
; U3 ?9 ?- e$ B2 yMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
% Y+ m1 y+ ^2 M# t4 ]0 W- z; HMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
- |) W0 w* @" Q/ S0x00, 0xFF);! L+ B) h  q0 P3 ^$ t
6 O+ o+ [- h; S; Z' V# x
/* Enable synchronization of RX and TX sections */
4 K' C) ?5 E! a, S; oMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */$ X2 a7 H/ ?7 H4 g( ?
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);3 |) I* T  l0 ?, T' a% ?: V
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*! [( E+ P1 I2 P% F* s  Z
** Set the serializers, Currently only one serializer is set as$ |( i! r! M' e, G* d* v
** transmitter and one serializer as receiver.
$ H6 D/ n2 g" O% K* z*/
5 Q* a# M0 s, G3 Q5 pMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
2 a5 j$ Y  g7 }4 V" J- ]% RMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*) M3 T, d) R$ W* F, C( y
** Configure the McASP pins 0 i" V% B7 @7 v# `# u
** Input - Frame Sync, Clock and Serializer Rx
1 z# f' U6 d5 o' o8 H** Output - Serializer Tx is connected to the input of the codec
2 @" _* c& L3 D+ V6 m*/$ o# m. @* N- w
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
% W, T+ W1 j2 C1 r: P7 w5 G8 f6 ^McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
; t# `5 \  J! V5 J  f+ SMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX+ j4 S) v  B" }8 u5 j! C& E! |; Z
| MCASP_PIN_ACLKX; ?3 P& i3 i$ ?. X  C4 x) B
| MCASP_PIN_AHCLKX  F$ P( p$ l8 ?! e
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */* Z; }1 G$ ^7 [! B4 a
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
5 h1 J( m  a( z+ m6 R3 b4 m7 S. w5 Y| MCASP_TX_CLKFAIL
6 I" Z% M/ w, S+ P1 l$ E; Q| MCASP_TX_SYNCERROR1 T: C# @% `( h9 A9 T& N
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR , F* q- D0 L6 U/ x6 I% E, R1 \
| MCASP_RX_CLKFAIL' P1 u0 t$ ]/ j( B* x/ Z/ ]. H* ^) [5 z1 Z) y
| MCASP_RX_SYNCERROR
5 e0 H/ b2 ], D* ]. }2 j- l| MCASP_RX_OVERRUN);
& g* V. o/ `; l}
static void I2SDataTxRxActivate(void)- A' `8 l( i+ e
{6 O4 y; ~' z9 v$ {7 Z" y/ O! r! G
/* Start the clocks */4 B8 K+ l9 a( j% }
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);% z) F3 W/ ~1 M3 o
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */0 c# Q" i5 I) y1 s
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,8 i$ g: `1 X: `0 r; l/ b1 U
EDMA3_TRIG_MODE_EVENT);! u" d4 s+ }$ t8 o
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 7 ^; Q3 Y9 O; R) e2 k% }8 G0 S
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
8 b1 t% w. v, Y  `9 ~+ m9 _4 fMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
" O, A- S+ q* \$ T, bMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */4 I) e% l( j+ T
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */& z+ u' }; s& N; g  i
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);* _+ e" j8 I2 r1 v/ k5 Z0 R* ]
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
% D7 P  [. W/ _+ I}

- O8 o) F: P% e2 c
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
/ `5 \8 k; V; j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-31 17:08 , Processed in 0.040151 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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