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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12130|回复: 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,* @- Q5 w3 }' z7 E7 |. Y/ p1 M1 p
input mcasp_ahclkx,* [0 y% z0 Y8 M0 x9 D8 @
input mcasp_aclkx,
: S, Z  T) L4 R  W& q- ^input axr0,
- v) f( ~9 O% P( @6 Y% e, e, z; R1 M/ X, i4 v/ o8 j1 i
output mcasp_afsr,
0 q1 i% [, p, Y1 s1 noutput mcasp_ahclkr,
- q& M, ~, Z0 Y, p# q! i* U1 Voutput mcasp_aclkr,  d8 x( K5 y# C8 q/ o  _* D
output axr1,& Z$ S% l/ T1 R9 Z( o
assign mcasp_afsr = mcasp_afsx;
: v( @* b( W0 s; F; o/ j. W( C9 ]assign mcasp_aclkr = mcasp_aclkx;. Q5 U9 v9 G! ~, n2 l- |9 Q9 ]8 J
assign mcasp_ahclkr = mcasp_ahclkx;
9 p+ B2 p3 o8 i! ~$ Q+ r8 s. Massign axr1 = axr0;
8 l& ^6 ~5 F9 I/ x. Z
# R! p/ c. Q, N9 T6 F
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

0 Q- w2 U$ P1 y: K
static void McASPI2SConfigure(void)# P& h! L/ m: o& G3 O( m
{+ R, [2 l9 V1 l% u: f2 V) I
McASPRxReset(SOC_MCASP_0_CTRL_REGS);1 q# h8 i1 p4 z& k
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
) d1 y! G6 S$ T# d3 ?' dMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
& T8 V5 J8 ?- L' y' EMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
4 `" V" X# T% j, I  ZMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,. c( y( q9 c" L8 c/ ?% o+ a; s% x0 u4 H
MCASP_RX_MODE_DMA);
+ \* [3 k( I: T! ]' M% {McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
$ K( c/ ^) T% S: d1 o5 FMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
& Y( H. ?6 l  W0 ]McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, ! r7 g) e& N& Z
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
& _" U: j% {$ b* O; IMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
: T0 S# \5 K" Q; R) ^4 sMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
- W, |: W2 O' D, }0 h+ @$ {McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
5 e  U9 I5 Q! zMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); . r+ q: \3 Q5 x3 ~. ?9 c
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
) M/ D$ s* c4 q+ Z0x00, 0xFF);
/* configure the clock for transmitter */  k7 K* Y3 @7 ?$ Z! S0 g
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);2 Q0 D, w* u4 Q* k' l9 A
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
6 w  y) P7 N0 b: q& r) EMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
- s; T3 k" k, Y/ z4 m$ y+ Y1 ?0x00, 0xFF);
% S( l$ P2 U0 @6 s: D. ?/ ^6 _  l; |% I7 X
/* Enable synchronization of RX and TX sections */ $ T6 j7 v! A) _4 c
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
4 I5 a0 Q( X1 s; F6 f  Q8 |( PMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);0 ]' y% K7 ^* `- w6 D
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
, R* h9 ~" E2 A** Set the serializers, Currently only one serializer is set as
3 I' C. W$ L1 }** transmitter and one serializer as receiver.
) {* T8 B' \# a. ?, J, G$ R* t  o8 m*/9 r+ x# A2 ^  j/ D6 Q
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
% V* v6 b. Q) n0 u, F. c/ U+ lMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
& p& X$ ~, X0 ?% v** Configure the McASP pins
1 ]" S. b% @. t: ?* M** Input - Frame Sync, Clock and Serializer Rx# P$ |5 D8 o0 |. s
** Output - Serializer Tx is connected to the input of the codec $ |8 F3 m5 d$ }4 a( K
*/' M  @& [/ f) @% n1 [
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
+ _2 x& N0 b/ v$ W" oMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
# D7 f3 @& {& [, @1 vMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
0 ?- _  p/ \& j| MCASP_PIN_ACLKX
% T8 E& L$ ^% D2 g- i% R" O$ a| MCASP_PIN_AHCLKX
9 B% l# O8 ?$ T9 r| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */5 C9 |* L1 e" G- W5 l# ~- C
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
: m" [$ B: S5 H1 {| MCASP_TX_CLKFAIL
( [: ?# I  f- X9 M3 D+ V( F| MCASP_TX_SYNCERROR/ b: s! U" R2 b8 H
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
" W* f. Y5 g- j3 z7 o0 r3 J| MCASP_RX_CLKFAIL
* _' \7 T0 u0 q# G, ~; a/ B| MCASP_RX_SYNCERROR
; C5 C# T/ Z4 X) X9 O| MCASP_RX_OVERRUN);: h# L9 ~" L  O6 P
}
static void I2SDataTxRxActivate(void)
7 j$ r$ o5 _$ r. v4 _% p. T  c{8 I' g7 s. s9 O! Z  o4 N
/* Start the clocks */
0 j* T7 N+ d1 m* @1 P, h; Q4 iMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);4 F1 _. }# }1 f9 k) v/ T, u9 b
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
6 U% ^  Y$ j. o! a1 p+ D+ IEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,( n: f# J3 l' ~' l
EDMA3_TRIG_MODE_EVENT);' q5 \$ A: H+ o1 C- n
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 1 ^: G$ ~9 D9 V
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
% f1 S& W3 F) P- BMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
' I' {9 E# F4 ?5 xMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
0 P- m5 i1 j7 [: vwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */  ]0 G4 ~; T. E! W
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);- g+ E; v0 C: M% O) u& T
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);; B3 g! t# K3 C1 x+ t3 b
}

- j" Z" p# r2 ?
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

4 ]! L/ x! u8 L2 j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-29 16:13 , Processed in 0.039781 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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