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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10473|回复: 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,7 Q5 e; X+ n" c% M3 U
input mcasp_ahclkx,
- m1 W/ g: `9 G9 \# finput mcasp_aclkx,9 C2 B+ D6 k( k
input axr0,
+ d: ]) b% E1 U1 R) W  s8 ]
% K, }! ~4 r  v' Y# moutput mcasp_afsr,  I. I! N  ]  H  b7 b/ q# W1 H' D2 ?4 k3 i
output mcasp_ahclkr,
1 T& w# Y7 }; qoutput mcasp_aclkr,
& q3 H8 L0 \& E7 [6 {' ]. O% e  p% ?output axr1,4 C9 U9 p7 Y4 p
assign mcasp_afsr = mcasp_afsx;
, P: v& |: l0 K# b9 r9 J5 O+ ~% Jassign mcasp_aclkr = mcasp_aclkx;; x! r' k( Z# w
assign mcasp_ahclkr = mcasp_ahclkx;6 w1 M. o9 f1 ]* P/ A: F7 L* C$ y& M
assign axr1 = axr0;

* Q8 H( J! c: J- W
2 Y) G5 x- D8 n, N( p
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

/ m8 k+ C. F. ~" R: D, @. S
static void McASPI2SConfigure(void)
, b1 o9 X+ `) f9 k. e3 Y; v8 u& Q{
: l1 K9 J/ f, G6 `' i! rMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
& M, n9 D. A- p, ]- R9 m$ KMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */" l/ B) w& l( u' k5 ~
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/ M4 J! v: Q2 _$ f6 A( j+ nMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */" B. x! L4 z: f9 x" a
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
7 R( _( w' f+ `3 Q8 yMCASP_RX_MODE_DMA);
3 Z5 Y7 V* }5 P) d$ Z) o8 q4 @: DMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,6 i: e5 Q' v6 a, `9 x9 y7 u0 c
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
) _" X+ J( S7 A! N; K  _8 ]McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
- h( L/ E2 D8 _  d' KMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);/ `7 X# v) U# ]+ m, j  T
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, 0 y' p1 O0 n7 w' t5 [
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
- b8 A3 Q6 r0 F/ U, }McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);( R4 F( J  q# S8 b) }3 f0 ?
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); ; [' S' t. ]2 D& O2 z. g
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,! a% G$ y' y0 p0 s& R& N( R
0x00, 0xFF);
/* configure the clock for transmitter */
3 a' K/ \4 _9 g2 w  k* KMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
& c3 i3 h5 F' i. d% U9 |( W- K" L0 TMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
7 w# c; V2 @8 n% ~! e0 `4 SMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,+ ~/ J& F" I- ]# T, X
0x00, 0xFF);2 l2 y1 Y" g. s% f

2 h) e/ p$ U' p/ |/* Enable synchronization of RX and TX sections */
1 z: k, u% t1 Z8 M9 B8 FMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
8 u0 y! j4 L! Z  i* e; hMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);% A5 b8 U0 s! u7 Q" M$ ^& ?/ A
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
" Z8 ?6 G7 Z; J! \** Set the serializers, Currently only one serializer is set as
% R  K1 K$ E! k9 _- M! d1 V** transmitter and one serializer as receiver.
9 T  x( w0 e0 S9 Z0 n' F*/
! l6 B0 M' y6 N. Z9 ^. H6 q* a3 SMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
4 ]% Z' E: S; eMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
3 k& z8 {! n* U2 ^9 ^** Configure the McASP pins . p; }/ p' I+ n! q, X
** Input - Frame Sync, Clock and Serializer Rx
- r2 O+ K$ C) ]* R$ s  f** Output - Serializer Tx is connected to the input of the codec ' l8 k' h! U; x4 a' P
*/
5 G) e9 i! `, h( A, {McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);, O% Z4 P) @* Y
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));+ ?- @, D, }4 L: d* w0 U4 O
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX6 R) d+ q0 M" |2 y
| MCASP_PIN_ACLKX, @) b& F+ h5 w
| MCASP_PIN_AHCLKX
* r6 k- P# t/ x, n' ?| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
- _4 W; ^7 L7 G8 g' r) X( FMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
( C( T$ o+ y8 K/ `4 n+ i( B| MCASP_TX_CLKFAIL , Y6 c- }. P( o, l
| MCASP_TX_SYNCERROR6 I1 b% @" _+ S4 `' l% t2 ~
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
5 \3 `" d2 [. v  `8 h5 B| MCASP_RX_CLKFAIL/ b8 j$ X: G8 y* f1 D0 Y5 i, n* q
| MCASP_RX_SYNCERROR
7 C( n! E0 H: m3 l5 j# ]| MCASP_RX_OVERRUN);
( t& N. f6 T$ \- M# g" r  f}
static void I2SDataTxRxActivate(void)
* l0 u* `' b4 x. k. u{' M7 ?+ t8 S# R/ E2 R8 T
/* Start the clocks */
: R- o( |- z* k, vMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);$ B6 R" f6 h0 R. e
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
2 o5 Q& L5 y9 W- V, X& ~% q. B5 \EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,! M) [* D! v1 b, G1 n" b6 y
EDMA3_TRIG_MODE_EVENT);
7 E9 [' u- y% O2 OEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, . \9 A6 e1 o  h7 W) o/ d/ \
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
( N1 P/ e4 }) o) H( x$ g1 S1 b5 ?McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
& i( X2 Z( m( s, A2 ]2 C. GMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
, k0 s& e# ?; L6 Xwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */) d: G% H4 ^+ }6 y
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);( w8 g( M# A  i/ b% p9 j
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
6 @# `9 S. K/ ], ~) a# N( K}

% P) e7 F+ M" ]$ u/ U+ e$ G
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

  r& V8 o: R5 m. [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-7 18:11 , Processed in 0.041797 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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