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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11723|回复: 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,0 C% ~: `" z% o/ S* w9 R
input mcasp_ahclkx,
6 t$ h+ L% W. c: Finput mcasp_aclkx," U" z+ z; [  a
input axr0,
* ^2 O; |" k2 ?) C6 i. z6 C: V8 a6 G4 ~: G6 z/ s
output mcasp_afsr,. N9 L' G1 J0 {6 F0 z+ g
output mcasp_ahclkr,: S) M) h. j; K9 M' v5 \9 c
output mcasp_aclkr,/ o; N$ q9 h8 @% Y
output axr1,
( J! S& J( V4 k, B! R0 w# d0 G
assign mcasp_afsr = mcasp_afsx;; {5 {* X2 A% _7 l
assign mcasp_aclkr = mcasp_aclkx;0 @' M2 A9 w$ z% ]& G- ~# Q
assign mcasp_ahclkr = mcasp_ahclkx;
, q3 A) C# e6 s" L& b7 v# oassign axr1 = axr0;

5 \# W8 y8 Q+ j2 B' W8 _% W( B% f8 R, ]/ F6 ^) o
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

7 i8 x8 a7 F' @6 X+ z# k6 G( \
static void McASPI2SConfigure(void)
0 X$ s9 v/ F7 F6 L) j{! W* x0 Y4 m9 u/ W5 J+ K
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
2 v3 o+ j2 p+ A. i+ ]" \3 uMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
9 N0 Z$ j; s: |3 [McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
; _' R/ U3 T% @McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */9 q. N$ y, o& B) u2 ?
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,! }$ g; I/ ^* r7 o* V3 E/ V, u
MCASP_RX_MODE_DMA);
  t7 K8 @' \/ M, F0 ~6 T* BMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
" g$ e# D/ f( Q' i- qMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */% m4 w/ p! r" D' ^) K) Z
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, : e% h9 S7 ^; _4 [1 Y3 }9 `6 i( N( S
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
! Q# v) m  O+ F; @  U- sMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
' E, z- \. j9 e# {MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
6 P/ }1 D, J/ qMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
7 r' Q4 P1 M3 }" Q& VMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 7 f& o- ~, r! B# ]1 H" u5 x; R& V/ L  i
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
( J: r7 t7 f( O/ R0x00, 0xFF);
/* configure the clock for transmitter */
$ W5 D$ r" {: n7 GMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);' C  E2 r, k- z3 s
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
& ~; F6 N0 n0 _: }9 w" mMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
% e4 n3 U/ p4 z0x00, 0xFF);7 q0 }' D8 \$ Y1 b* K

2 w% U2 s/ h+ a* `/* Enable synchronization of RX and TX sections */
$ b0 s0 N% d% E* V4 s2 a7 IMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
7 a: n- t4 b0 CMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);; u. a4 W# q. n) h' j+ `* L
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
6 }$ {3 }# \1 v** Set the serializers, Currently only one serializer is set as
6 L# J+ L9 N# B. x0 J** transmitter and one serializer as receiver.
/ `( }  J9 k$ y*/
$ x5 ~$ l  D6 J4 i8 WMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);/ v# F) V! Q3 U  ^, v
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*. ]0 i+ w" T2 @8 C' G- Q  s0 A1 b
** Configure the McASP pins
9 \9 }4 T; H4 J** Input - Frame Sync, Clock and Serializer Rx5 `$ S' E& z! o2 F/ A2 V. Q
** Output - Serializer Tx is connected to the input of the codec
5 ?/ Z9 _5 F- @4 R7 x3 g8 F' ^' f*/
( P6 w5 A+ k: F* S6 IMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
) C( N4 c5 [; n9 g" XMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));/ c) w3 v( q& h3 }4 B- U: t
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
) D  L$ c- [+ H| MCASP_PIN_ACLKX
- `1 h4 o( F, ?& d7 u$ u| MCASP_PIN_AHCLKX* O8 H/ m0 S. Z
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
9 m; t: F5 L! c8 @McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR ; f  i. B5 [. H1 v# k
| MCASP_TX_CLKFAIL
& P) i& i) U& Y: {- H! i, @: v| MCASP_TX_SYNCERROR6 V2 a* G; w9 |! ^- |
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR 9 P; i; G4 I% F# X0 B5 l- t
| MCASP_RX_CLKFAIL: f9 `* \- \- G5 y
| MCASP_RX_SYNCERROR 9 ?' h+ G% G5 @$ i* r1 T! W( {
| MCASP_RX_OVERRUN);" s3 x# k7 I& ^2 C4 I$ M
}
static void I2SDataTxRxActivate(void)5 o: \) t2 N4 `
{% m( e7 Q2 H- v( Y9 d! _2 A3 p2 ~
/* Start the clocks */; y8 d/ n! Z+ C& K5 d7 P
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
8 Y* s5 ^) N2 }5 M/ C' a0 _/ ~McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
7 j2 x4 B, T) @; ^EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,, i. Y/ ]& s8 ~8 t& e6 s" E" x
EDMA3_TRIG_MODE_EVENT);
" g" Y: `; T0 }/ N5 GEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, * U  c( A6 W6 V' E0 Z8 r
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
9 O. ^+ d7 G9 O6 hMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);, i% w. K8 _: s$ Q) H7 b6 p
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
8 N4 Y. n. S2 S$ x' Zwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
9 s+ B& _( o: g8 G( CMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);
  p. }0 R- \# [# RMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);
+ g( _: Z) j& G! c% A! e}
7 a6 P9 W. y! n$ C: v0 z4 Q
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
: c2 H' P5 X( w0 t) |5 o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-12 15:13 , Processed in 0.045262 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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