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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10686|回复: 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,; [6 ~  m" C& J' O' z
input mcasp_ahclkx,. V7 \  d3 J* j/ j) U9 Q, }
input mcasp_aclkx,* s' p" m6 a, Z+ |
input axr0,2 h- q7 O0 G4 n* H& s7 z5 o
9 I) G5 v( K$ Z
output mcasp_afsr,
/ D0 O$ c$ P5 Aoutput mcasp_ahclkr,
# ~5 x8 a$ I. H9 }1 y9 r  [! ioutput mcasp_aclkr,* }- ^; H- A' V- j8 F' _3 O4 S) O- [
output axr1,
, R- }% A' e1 k( [4 T/ x
assign mcasp_afsr = mcasp_afsx;7 Z8 Z/ b; m8 G* z- E( d5 @
assign mcasp_aclkr = mcasp_aclkx;
0 ]/ |' z3 J  P  [. A- ~- ?& eassign mcasp_ahclkr = mcasp_ahclkx;% n7 ]% D0 w" T( D* F4 v$ G( B
assign axr1 = axr0;
+ H" c; g1 i* }5 S) `% B* B
) p7 J1 a+ Z; d2 Q4 C' k0 j8 {
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
7 v$ ]. [1 ?7 v3 T! c! ?& {8 j. b4 w
static void McASPI2SConfigure(void)* H: K/ W* a- U# R
{/ ^! n' z0 |' @- r; _- @: e
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
0 @1 D" i; W: l1 f% GMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
2 U! a8 m/ V" B$ i$ p& z% ?McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);6 H8 U4 b! q* x, T8 W5 \; _: Z$ A
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
  O0 w. S. Z4 d3 U- j6 m2 DMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
( B# e9 Z# _5 R" V, KMCASP_RX_MODE_DMA);
8 h6 f. z! y: A. v! X9 b1 m, AMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,5 D" w0 b. }- _
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
# u) Y9 p. g+ N$ P: t) oMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, - s* ]2 c0 R9 n* K! i
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);, Z5 ~2 R. B( h' Y  O
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
% Y6 w# K, u! o# WMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
& c$ b0 a; D1 A/ AMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);$ V5 b3 \! z# w) {
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); ! G5 D) ^0 P0 ]' o
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,5 p* m: T7 y  ]( E1 Q% w' L
0x00, 0xFF);
/* configure the clock for transmitter */& \; D3 g$ P9 l
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
2 o* {! O6 S& J) E. |8 ?4 p* k0 d  LMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);   I6 Z6 F6 P8 D1 |. r0 I6 k
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
8 b2 q' ?: q6 V% t0x00, 0xFF);: [) s4 Z4 g* Y& X: {' D* q1 M; x
2 M0 _; D5 Q/ s* \, M5 \7 y1 w
/* Enable synchronization of RX and TX sections */ & m  ]& i, Y: g8 x9 Q  n% v; j
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */* `) P6 Q3 ^6 ?' a' e( N% @) I
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
& r' Y2 `# j# q( d0 S1 y& `. DMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*7 E. ^' B' P+ m! W6 n1 X
** Set the serializers, Currently only one serializer is set as# ~; ]$ M3 C6 S, b
** transmitter and one serializer as receiver.
& m# z( T% D  ^7 `  w1 [*/# o: s+ N& C+ Y$ x4 `- k+ f
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
2 X- m2 M. m- t. |4 r/ G2 [McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
$ _1 W3 K& C/ C: i% Q: y** Configure the McASP pins 8 e, k: d$ A$ p8 y& ?" v6 d
** Input - Frame Sync, Clock and Serializer Rx; \2 q/ Q9 w$ X* N
** Output - Serializer Tx is connected to the input of the codec & ?: E# ^& ^6 j
*/: p9 }! n7 x: }5 n; R
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);0 o) i' r2 z% A
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
2 ]+ Z3 F- y- k  JMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX1 a+ r7 h; c1 @! W
| MCASP_PIN_ACLKX
' k8 s+ Q% o. G$ p| MCASP_PIN_AHCLKX
2 C; e& |  a0 b' n$ u* U% R( J| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */, V# d  [3 g& _; D: i+ U) o7 l
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR $ `0 T- u, F0 d8 C! i$ h
| MCASP_TX_CLKFAIL
" U! W3 {$ s0 E$ k2 e| MCASP_TX_SYNCERROR
% F" u. |0 m' \2 ?$ P7 K| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR $ S, h' |! a: {9 j- d
| MCASP_RX_CLKFAIL
8 \) ~6 ~4 |, i3 q# S: G| MCASP_RX_SYNCERROR
( B8 D6 J6 F' n- V' `$ ]| MCASP_RX_OVERRUN);  F# l3 J0 u) ~0 R; p* G! O1 J: w! p
}
static void I2SDataTxRxActivate(void)5 K9 ?$ b. E" v' A8 y
{% n* [- ?7 w3 @0 w8 N/ S. n
/* Start the clocks */* p% D  A& ]) B" y5 U
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);5 Q( c  u# T0 q/ x% r4 i
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
' ^9 J# M, Q$ E7 u4 p- L& IEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,0 R% M& S0 K: r5 c2 M- D3 L
EDMA3_TRIG_MODE_EVENT);
! t2 h2 l+ m( M' REDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 1 v% S" y$ ^. H; p1 ?8 h' z( D
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
* K/ C% s* n/ E* FMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);/ _0 n# s. M; X" @" r
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */7 l7 K4 k8 p  S+ t* j2 q6 H
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
- p" ^# f; J) l$ ?  t* O0 TMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);
+ m  i2 B' \, b+ @6 j$ C3 dMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);
8 U2 J% E9 t+ M/ Q2 n7 p* h}
$ l# M0 a# p8 Z
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
$ y% u- W( i5 l$ S+ Q/ u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-13 02:36 , Processed in 0.040082 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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