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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11338|回复: 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," g- O& n" p' }- j( c- \' O( m
input mcasp_ahclkx,
3 M8 b$ }- K0 R  binput mcasp_aclkx,: n4 Y& `$ `3 l
input axr0,
* ]% Q8 A& r, ?0 g
+ r8 Q& m7 F/ L1 s5 A( g9 poutput mcasp_afsr,2 S' F0 ^! {5 n5 A% S  S
output mcasp_ahclkr,. x( D! p; y5 o. s5 j9 T* d( w3 M# ?
output mcasp_aclkr,6 Q1 {# X) `+ I
output axr1,
; k/ b! ~) u# L2 |7 _, p
assign mcasp_afsr = mcasp_afsx;
* M6 u) U4 T, R) K; {  c* Uassign mcasp_aclkr = mcasp_aclkx;& a+ n! v, J' j) `2 D
assign mcasp_ahclkr = mcasp_ahclkx;4 E  G1 }5 A8 _, g
assign axr1 = axr0;
1 {- Y; T% W3 k
6 K3 k& U: S8 s$ @
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
  B* @! J& d% {4 C- j4 \. I! O# \
static void McASPI2SConfigure(void)9 C' [+ g, d4 k0 \& W! G8 ?4 H
{3 P6 m- t8 X/ S! j# y4 v6 y
McASPRxReset(SOC_MCASP_0_CTRL_REGS);6 u4 r6 G/ I# I/ F: n0 q3 x0 S2 F) v
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
$ [  s' F4 G& f2 @" ~McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);. \- R8 k; O! j& f% @( j0 X
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
1 x2 m8 ]0 v3 v) oMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
* [/ t' }' f, K: u3 y$ F$ }+ z/ EMCASP_RX_MODE_DMA);
/ f; y! _& X) E8 k5 lMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,# O3 a' u( C' t
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */1 {* _  ~. S9 U. F0 u8 @' _- Y
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
* ^9 z$ E; P( e- t4 p! C. [0 DMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);5 `8 b. Z, [+ C- X* q: J3 Z7 a/ Q
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, 9 v/ L# ]# s: M! @! |
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */9 f4 _6 J, j$ p2 u  Y" _
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
" f% Y6 ~$ K4 W' X* ?McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); & w/ Q$ Z: S$ \
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
9 s; M7 I; {, r& s" R+ K  z+ z0x00, 0xFF);
/* configure the clock for transmitter */! \, \0 d+ W7 Y  _
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);, o, Y6 o! ^: L% l0 i# f' R; m, Z
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); 6 d2 z! F0 F5 M. p8 M6 X7 m
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
+ _* k4 a8 I! I8 Q0x00, 0xFF);: r& V. E: N) R) {/ F6 y' R! A3 F
7 }) Q) U  |/ W# l; b6 a
/* Enable synchronization of RX and TX sections */
( n1 p# H& k  K8 lMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */$ O, [6 I- l/ M
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);/ x: H$ F% n, U0 h7 m
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
6 {8 v; M  R/ k3 g** Set the serializers, Currently only one serializer is set as
0 p+ `& E" I$ f9 l; P. a1 N** transmitter and one serializer as receiver.
' t2 k% N& x1 h/ G* H*/
  S3 o% r% x6 g' b' l; g+ ]0 GMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);# ^' M$ N0 _6 `8 K% Z5 Q$ |0 y
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
2 [5 g$ a0 q$ {$ x9 j) i' H# M** Configure the McASP pins ) v* W5 A! R) [; P
** Input - Frame Sync, Clock and Serializer Rx5 b# i% H( T3 h" d
** Output - Serializer Tx is connected to the input of the codec
) V0 s6 ^' h; V: b. y' ^1 X*/2 X+ P. e- w0 h2 s* r, g
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);5 U1 G* j8 y" \; l* ?! {% |7 ^" V
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
; q" n2 c8 R9 r' J$ j) m& NMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
3 F5 u* ~5 V$ O! b) n9 v4 Q| MCASP_PIN_ACLKX, \+ I1 G7 ^5 p- h! K" Y
| MCASP_PIN_AHCLKX
$ L( J8 }; K) `4 T3 I| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
$ ?2 K$ @& G, _McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
- |" p6 g& r6 U| MCASP_TX_CLKFAIL % Y- v* g: `& z: t. `' i
| MCASP_TX_SYNCERROR* G& }+ i2 _  r2 f% m+ N$ U$ W) f
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
1 W5 a# V" h& f& t* Q' I, o. E| MCASP_RX_CLKFAIL( |' S8 x* \/ O$ _9 t
| MCASP_RX_SYNCERROR 8 H2 E! |" N! a$ ^4 W
| MCASP_RX_OVERRUN);; W/ X2 ?7 Y; Q& a! s% D
}
static void I2SDataTxRxActivate(void)9 z8 X4 @% i  d+ X8 r3 a
{$ p! W5 q# O8 w) h9 }
/* Start the clocks */
6 v8 r& [5 h, @* Q2 nMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);  r; _) r' t" [- a+ @: i, B
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
. [, L. Y: c8 B- x3 B; YEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,2 K' W! L" K/ a& @: r) f& D
EDMA3_TRIG_MODE_EVENT);
+ ^( Y2 [6 u$ M+ l5 u2 eEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, ) O9 a4 Z) s, B: r' I5 i
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
, a- }' {+ }, I) [# qMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
4 O6 t1 ]( s3 c4 }1 @( [: a) }McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */! ^/ y/ `# X/ y  ^
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
1 a1 I. P3 l* K$ _5 OMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);6 A  Z1 i$ e. x1 i& ?
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);1 T7 u( e2 h: R4 Z* x1 k
}

" m0 n7 B; y" Q: T" E
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

8 q2 e# h9 w* C- ]; q5 A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-2 17:16 , Processed in 0.040718 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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