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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11047|回复: 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,
) e, ~. u: v9 f" x1 A% Cinput mcasp_ahclkx,( H9 C( O) f. Y, r5 G. ^
input mcasp_aclkx,
4 O. a4 d( l( L: O' Einput axr0,4 T7 v/ Y$ A& I1 r
# g+ ^$ N& P+ ~
output mcasp_afsr,
, J  e9 h3 i" _6 A' d4 Houtput mcasp_ahclkr,
& I% R) _. |: ~output mcasp_aclkr,
7 Q- @1 y; W3 Y& Q3 `. Routput axr1,
* }8 O8 k; Z6 W, C& b! o. T
assign mcasp_afsr = mcasp_afsx;* _+ f, _6 a8 l3 d/ h
assign mcasp_aclkr = mcasp_aclkx;( @2 o# x1 R# j) I  ^$ R0 F
assign mcasp_ahclkr = mcasp_ahclkx;% q4 P  A) E, Y2 F; B
assign axr1 = axr0;
9 [8 l  S$ j. S2 H5 v
5 i4 j4 x. d7 ~" u2 _
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
+ j9 T6 X$ k# N2 J
static void McASPI2SConfigure(void)
: T% {& b9 g+ [& p+ g{
1 t6 @5 @' ?7 x' rMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
5 b3 g) y/ |8 Y! G1 ?McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */, o; l# k; {* t. \( L
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
- \8 M4 h; x( s7 iMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */% z" R: f# @* E! I5 L
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,! [% P0 H  z" }# _" m
MCASP_RX_MODE_DMA);8 Z7 E" c$ ^1 U1 Z! Z/ B4 L: Y) u: \
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,9 x2 G0 b& \* R  A: G
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */, {" A2 E0 r, j! U9 v, I
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
& E8 c4 U' k. R% bMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);# _* n6 O& w- p5 r+ W4 {
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, ( m9 y) H) m8 K: l, ?' S0 c
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */, p9 c0 e/ E5 h# i1 _; E2 c& i. }
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
) r8 Y& m: e2 [' I6 }" }McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
8 [- R* ?& O  g0 s7 }% A5 W: F; Y: sMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,7 D2 m: ~% g. G) [
0x00, 0xFF);
/* configure the clock for transmitter */# [  c0 x, A6 v+ w' ~, d! j. n# @, H
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
" }; ~1 M2 o" E3 OMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); 9 n% B3 [0 i; q
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
& s6 s& N4 C& `* Z+ y8 ~2 B0x00, 0xFF);9 e& W# ~! T5 q
4 x1 a# L' n5 N* z& b' A2 O# [- S
/* Enable synchronization of RX and TX sections */
: g1 t1 G  @% f# x8 F: i7 ~2 G  dMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
$ c- m7 b; I7 vMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
1 j5 U& ]( q0 F5 VMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
1 j1 s/ k+ r3 I** Set the serializers, Currently only one serializer is set as
; T1 q' T# i9 T: J3 k* Q  I** transmitter and one serializer as receiver.
$ L6 x. V' C# d9 E; [& s9 A*/
  k" j/ z; t, A/ t3 G- ~8 JMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
, o  v4 ]# ~! L# XMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
& c* \/ Q' r1 S** Configure the McASP pins ) c& H; t9 }' M# Q
** Input - Frame Sync, Clock and Serializer Rx( w' q; g+ Q8 x- D% U* t
** Output - Serializer Tx is connected to the input of the codec ( U3 \; J/ k; k) ?# R' I' a& T' ^
*/
% s- |$ n) Q7 W. [* VMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);% H# {0 f, m$ u1 A. p+ _5 ^0 ~
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
4 Z( k0 s! ?5 H% l1 F, V) {McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX& E1 W7 t7 A% f
| MCASP_PIN_ACLKX
( I( L3 o: q+ f& Z  [| MCASP_PIN_AHCLKX
$ V! j' `- ?# _! t| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */# a; _& ^9 _$ L/ R5 f& P
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
- m' c9 ?5 Z2 q| MCASP_TX_CLKFAIL
$ J( e" F+ i5 T: {  @| MCASP_TX_SYNCERROR8 [# t3 f9 ~8 {/ a
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
& C& u! z2 r, W% U9 x; ~* L7 l9 V2 K- H| MCASP_RX_CLKFAIL
6 z" s( I2 k2 B1 k% u| MCASP_RX_SYNCERROR $ }5 Y( L+ k; D: ]% ~
| MCASP_RX_OVERRUN);# N2 S4 t; i0 h# e% ]: o
}
static void I2SDataTxRxActivate(void)
$ y5 m+ T3 l( y{/ h5 m5 L; q+ {8 S2 @5 j! p
/* Start the clocks */
( d2 u- O1 w. _+ q# K7 ?McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);9 ]2 P8 m! {3 S/ e0 k! k. |# a4 @
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */  l0 M3 j  K% W* J* T6 R
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
9 x1 y' ?' _* Z6 z! `6 t4 JEDMA3_TRIG_MODE_EVENT);' Q. e1 Q* \) g9 @9 E* l
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
3 K, V# v( P& S, NEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
3 u2 f. w. k% t- F' I9 }McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);+ D# @8 V8 M4 [1 |$ z  J
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */" n' F) s0 B; W) \$ M, Y
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
8 F: l* M1 e- |  z2 ^& uMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);, c0 g8 n2 F) s  x  q( p: \
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);# X2 P& @! M3 y- L
}
- F0 E+ r) y5 u- N5 A+ ~
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
, a2 U( ~) L5 g: B3 A. C' c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-23 02:56 , Processed in 0.046201 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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