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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13334|回复: 0
打印 上一主题 下一主题

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1216

积分

金牌会员

Rank: 6Rank: 6

积分
1216
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,
4 @( ~' r1 ]: w; N! a' Tinput mcasp_ahclkx,
; ?: M; X# [0 N, [input mcasp_aclkx,, s/ ^/ O' M+ x7 [' U3 O
input axr0,* A& @) z$ A5 i5 j( Z) V% y

9 @# i6 |8 D& z( i3 l. S1 L; J# P+ coutput mcasp_afsr,3 ^7 @$ M5 c1 ^/ p: p0 h( ~* ~
output mcasp_ahclkr,* S9 _! a4 n- z% M* @  c$ A* f
output mcasp_aclkr,
4 K) L. m0 j, e2 T. Boutput axr1,
( w- L0 ^3 e4 b
assign mcasp_afsr = mcasp_afsx;5 g0 N7 n1 V" d
assign mcasp_aclkr = mcasp_aclkx;
  m7 U( D# R; o) |, nassign mcasp_ahclkr = mcasp_ahclkx;
; Q5 S/ ]3 J' T% S" Q, g, c3 K2 \' H. Cassign axr1 = axr0;

/ f9 j, r; P, A0 i# G. Q2 C* T" h
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
8 G  {; l% h8 `# Y. @* ]& l$ F" V
static void McASPI2SConfigure(void), h' K# `6 v1 R0 v' n* n, K  I9 `
{
+ J; B, C+ F( ]6 R8 sMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
% o2 x0 N( e5 ^- l1 @) bMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
* }4 B! w8 t5 V0 b9 C" nMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
% {  W8 O8 n" W! L1 w) {McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */+ G2 r/ i* S2 y' e: f
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
$ ]- J  n. A- g& ]3 d  B% [MCASP_RX_MODE_DMA);
7 X6 v3 u5 v" i0 \) T& YMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
8 H; C0 G0 b# Q' G! g- zMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
1 i% Z# M) d# p% I4 V) w2 u  IMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, 6 E2 f) O% \8 a! p9 M
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);! M/ u1 z. K1 K8 z  I: W7 n# T
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
! D4 d4 b. P$ W+ QMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */9 d- G2 X4 D. r) p
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
. ]9 B% t& c7 O. L/ A/ q0 _/ AMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 4 m5 Y; M! [% P* }
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
: P" A! R( j8 i+ [0x00, 0xFF);
/* configure the clock for transmitter */$ U/ A5 q8 g5 @( X5 S- q2 R9 x
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);* {( N: n+ F* P
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); 5 u0 j% {% ?6 D' y% r, j# W
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
5 X+ I$ `" N* ?( q3 h6 `+ N0x00, 0xFF);
6 t$ I& _9 ~5 @# o6 g& ?5 n: U/ z, u5 ]" |7 n# y
/* Enable synchronization of RX and TX sections */ 2 ~- k# U8 J; {/ e
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
1 `8 n# H$ [6 m; Q$ t) B) A4 m8 ^6 n, {McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
- d3 d1 n! e( i, @' O1 f/ Z- pMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*. n6 I) e: A2 n' `3 |& Q
** Set the serializers, Currently only one serializer is set as/ |& X+ y* i) M: M- p
** transmitter and one serializer as receiver.+ h4 C: k( ^& q" B  p- \$ y7 |
*// y6 w0 [( c/ j+ h# T2 s
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
: h9 S' c3 {5 x, M) w! |McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*. a* [) |" Y* N$ y9 n% e
** Configure the McASP pins
4 m$ P% R( _& \** Input - Frame Sync, Clock and Serializer Rx
. B3 X$ i* J1 E6 k. K** Output - Serializer Tx is connected to the input of the codec
4 Y/ h; J# x+ b7 Y: v- v9 t*/
2 F: J9 C; [+ Y/ r; s8 ]McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
7 ?1 o! L4 F) l+ ~# HMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));% b8 A, r/ C; U, _% W- D  p
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX, A3 s9 i- l9 M! _6 ]' z
| MCASP_PIN_ACLKX
0 K1 x. _2 w# L9 T) f( B8 O3 M3 I3 K| MCASP_PIN_AHCLKX
9 j5 N. y8 M  v| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
3 N0 ~" @: R4 t* b/ k9 D. NMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
. G) }+ u% ]% N6 J| MCASP_TX_CLKFAIL   W0 Q. U0 o3 ^& N0 @0 C0 X
| MCASP_TX_SYNCERROR
! c0 K/ u2 Q, Z9 p  C- {' }8 r( B| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR 2 ?: e5 J" M. B7 s
| MCASP_RX_CLKFAIL5 m( A9 v1 a: w
| MCASP_RX_SYNCERROR
1 l1 \! r$ [& y. k' n% w3 \/ O| MCASP_RX_OVERRUN);
5 t: U6 ^0 V# o}
static void I2SDataTxRxActivate(void)/ g( o( Y% }; ]1 G  _
{
6 d: z! ?# |3 ~* b/* Start the clocks */
4 w: g- b  h9 @2 w" i$ P# eMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);' @: A" a" \- {1 ^7 H% D) e
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
  N; x) p  G1 X' U. G& F, U' a1 kEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,0 G" ?, u! h" Q; F% m1 n5 N
EDMA3_TRIG_MODE_EVENT);8 S8 F) P4 `7 U  R7 {
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, ! a+ {' |. z/ k* G$ e
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */1 m& K4 K4 S3 F4 Z2 ^8 W
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);6 R8 \2 e0 x! f, `
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */& _" [" u/ t: H/ C: C9 }+ n& K
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */. I2 Z) k7 H, L6 J. G5 ^( h
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
& A6 |5 }% W" d, W9 T1 ^0 w: g4 P: [7 IMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);
8 v5 _4 v1 W7 H$ A# b$ y8 Z( x# R}
6 H8 }( }+ O* w% S# G" d* {
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
7 w7 c. c) _) D4 g* U+ S, Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-10-2 16:25 , Processed in 0.043154 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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