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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10131|回复: 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,* a* Y* H  \- G; f. ]5 {& G+ H
input mcasp_ahclkx,
) q2 y' C. \8 A% N6 W1 B% yinput mcasp_aclkx,4 d5 a+ M9 u& m2 q. a- ]$ \
input axr0,; I6 I1 h% F  o- u; a
% J4 d3 Y- [0 J0 H
output mcasp_afsr,
' P1 w/ `' Y9 N1 houtput mcasp_ahclkr,0 m, R: `3 O; Y) r& I
output mcasp_aclkr,
( N& ]' O3 I% Y! Z3 W* A. @7 Qoutput axr1,' K3 u6 T- G" J/ W; E
assign mcasp_afsr = mcasp_afsx;
; b) r' J; `: i* T& gassign mcasp_aclkr = mcasp_aclkx;( _8 v1 {) ~$ t/ i+ {4 e# A
assign mcasp_ahclkr = mcasp_ahclkx;
, {- Y: z% ~5 s4 c. rassign axr1 = axr0;
, ?2 y  q/ s: `* u7 p2 Z# Y

: }: i- k- o* ?, q3 D( `
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
# @( G. K0 ]4 I2 X: W) v8 _4 M
static void McASPI2SConfigure(void)
* Z8 Q) k- S& D( \, T8 {2 o{
  ]' B! P/ _8 x4 R& y) [, dMcASPRxReset(SOC_MCASP_0_CTRL_REGS);2 L4 Y* }8 k' n  E% H8 b
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */8 y3 \7 P$ W5 ]/ T! m- J( q
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
! z% v2 b7 E* f/ z' M3 fMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */5 N& C6 ~; w6 J2 y$ J- k
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
' X& i3 `& v7 dMCASP_RX_MODE_DMA);0 r+ {: Z, H( D0 S8 j  a! M0 l# {
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
8 @5 Z' X; P3 n$ _% q; PMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */& a1 U5 W5 D  z; f  ^. f/ d" G2 Y
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
3 [8 J( }: p6 xMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);. H, \0 W( v7 T' l; N
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
- Q7 a4 ~4 h% mMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
; X  _* P! j5 ]6 wMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);7 R* h- U8 H3 k8 _* ]! ?
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
3 ?( M1 C) S4 h5 p, AMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,! Q  q4 g0 D7 z
0x00, 0xFF);
/* configure the clock for transmitter */
2 g5 Y' {  z2 L5 A' s: q+ d+ JMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);8 Y& X; z" U$ y) t. ]$ s
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
* |. @3 ]) H( e) ~7 Y2 fMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
2 K5 n# @0 @# A- a; _0x00, 0xFF);
2 \; c' Z! }9 q5 M  Z! z; S
0 P, U5 b. M4 Y/ p) n/* Enable synchronization of RX and TX sections */
+ |) H6 L6 u2 ~0 d- iMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
0 y9 h& E+ n: QMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);  b  t  |" r4 F& @4 X1 M
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*  N" w6 Z8 ?7 A$ d; z5 e9 {9 g0 \$ G
** Set the serializers, Currently only one serializer is set as* a  k* t* N$ y3 j8 x
** transmitter and one serializer as receiver.9 H" O( Q8 Q* G: S6 o2 @) Z  p/ {
*/: U% n, S% C& {- `
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
7 Y/ I+ G: Q& f; IMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*% l# t" F& g; g) i# m1 Y; m4 N
** Configure the McASP pins " @& i# j9 h9 c5 R3 p8 J8 k1 L
** Input - Frame Sync, Clock and Serializer Rx- V7 t' M$ y( I# G1 d- b$ h6 ~
** Output - Serializer Tx is connected to the input of the codec * Z" v- M) Z2 W. [0 |& q
*/4 w4 V( B0 O. y9 B) s+ ]* f, G
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
: H6 J; X7 X  d, i( @McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
( m& u& j% |' {9 @McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
% J3 f* j# q0 M| MCASP_PIN_ACLKX
4 P* m: c- y/ i- j0 G$ [6 h| MCASP_PIN_AHCLKX; ~4 H6 n4 k; J7 m  I' a8 b9 n
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
5 g# X3 B8 H% k6 d. Z7 G, ^2 o4 J# WMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR 3 @( P7 D* |& P& _" l* @# |& _
| MCASP_TX_CLKFAIL 8 S7 k& v7 B$ @
| MCASP_TX_SYNCERROR
. X1 B, _  U; L( \' W3 C| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
$ |% h. V( G+ Z; T3 B. b. K2 K$ p| MCASP_RX_CLKFAIL
6 n4 s. H" D$ ?/ F2 K: g2 o: Q| MCASP_RX_SYNCERROR ; y" T. }' ^- u8 o! f2 j1 {" c# d
| MCASP_RX_OVERRUN);
2 H, s/ H* g! \}
static void I2SDataTxRxActivate(void)
) ]" [- }- |# g3 z$ d# N7 m# H0 \{
2 o* Y# o# {1 o. }/* Start the clocks */& z" P3 _# [5 V# u9 j
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
! i4 p  L& b# p2 a8 NMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
' h& P9 A" [0 L& W# {0 QEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
" w0 W  k6 ]6 z/ sEDMA3_TRIG_MODE_EVENT);3 o6 a+ @; o% u- M/ r/ Y* r
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
2 T9 @- E: ?. h$ LEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
' Y3 b/ K) k) P# I; ^# f. V+ hMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);2 D8 D) s" D) C6 _5 j4 p3 Y, h
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */# h3 p- |2 D% T* L
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */% ^+ ~. K4 l- f4 V9 }
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
$ k3 p: \! v3 g! o7 HMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);& b+ j' T" l+ X2 _8 Y' S, W* b  @
}

6 v& Y; v- c5 ?( n# H4 {) |
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
* J! T, x/ c4 C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-29 17:54 , Processed in 0.039765 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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