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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10277|回复: 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,/ ?; w2 N7 W% ?8 v" Q$ J' ~4 e3 y
input mcasp_ahclkx,0 f) N& Z; S6 V- ^
input mcasp_aclkx,6 Y- _/ ?3 W: _( z
input axr0,
( O6 @: r9 X' H$ \& ^, ^. i6 i: I' ^/ D, e
output mcasp_afsr,- t  Q3 v2 \, a" q/ D+ A
output mcasp_ahclkr,6 }, p( k# M6 x) _* p
output mcasp_aclkr,4 X$ \3 F8 e6 u4 W! V! T
output axr1,1 F! X8 M: s7 D' B
assign mcasp_afsr = mcasp_afsx;
( E) S  C, v: A/ ?2 tassign mcasp_aclkr = mcasp_aclkx;% N  ?# h8 v" F/ H  S
assign mcasp_ahclkr = mcasp_ahclkx;" x4 ?2 ^. c! @. {
assign axr1 = axr0;
. D2 r( J. f9 d# \6 Y! _) O- f! s

* T: w5 y; {* b5 U+ W; l
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

' F8 W# ^' b, N) b
static void McASPI2SConfigure(void)! \! a% J+ K$ y. X. J0 E
{
6 ~/ w2 Z/ a/ s. F- b& hMcASPRxReset(SOC_MCASP_0_CTRL_REGS);; S& l0 O% s9 z/ v( M
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */  t) l8 j5 A# F
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);! R) _1 r0 A' N3 Z6 \8 G
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */. s# X( e6 A4 J0 r5 I6 S* t
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
) Z' n& O  K8 G' w! @6 x+ ^0 aMCASP_RX_MODE_DMA);& b- U1 m$ ?3 c  h5 v! I3 S
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
7 ]+ S" K  p7 |0 v8 u& ^9 L, i# AMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
( a3 W1 q6 B9 g& I% _3 ~5 l/ z: lMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
. s5 e+ y7 |9 c& @2 K9 ?MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);2 E3 ^/ a" U5 M4 W/ W, I/ @
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, 0 w& W6 h2 Z) s% ~, c; E9 h
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
# J/ M. N+ d1 a- SMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);1 l* u6 W2 f' `$ W4 l' b. j0 H
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 0 L; N: M: n6 O; @1 m0 |* j3 F
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,2 B. A6 t9 {& P% x% s$ u
0x00, 0xFF);
/* configure the clock for transmitter */
+ y0 o) A, a: U/ D8 X" ~McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
1 M. S) B4 H% X. e, f0 WMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
! `. i4 m6 J' w/ y, \9 qMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,7 E" t+ _% y- y7 r4 g
0x00, 0xFF);+ D9 \; r2 O# v* ?; ?  M
" w8 \* w  X: |# S; S  ^1 ~& e' c
/* Enable synchronization of RX and TX sections */
6 ?' V1 u+ ]8 @# v7 t0 {% E: Q  A: F5 KMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
  K7 q( R! S7 nMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);0 [+ h) q* t1 _' Z$ j, M" \
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*. }; R: u: k& ]  I$ L5 R
** Set the serializers, Currently only one serializer is set as! P) E% b, u  N, [$ p5 w' L
** transmitter and one serializer as receiver.# z2 ~  [4 k, z5 X- C% ~  @+ y, o
*// K7 K8 V/ v. c! D( [
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
2 G  D; y$ W; MMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
2 P2 y( J) d1 V2 ^4 \* d** Configure the McASP pins
$ W, ]1 `/ Y6 @( g- x** Input - Frame Sync, Clock and Serializer Rx& v( w! h% h6 v+ p  l$ B3 A, g
** Output - Serializer Tx is connected to the input of the codec 5 S7 v/ R; w9 @
*/! U- B; \, D8 ]4 E! q: m+ [
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
/ ]3 \8 q+ @2 K+ V; E: aMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
+ v3 p, f0 d+ S' W, r) y6 b& y) J$ t5 H- @McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
7 x, ^8 n6 @5 h' y| MCASP_PIN_ACLKX( b) A3 p( i! n% g1 m  S+ V; u5 r& h0 U6 K
| MCASP_PIN_AHCLKX8 d6 ^3 {( h) u/ M6 w" j
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
( A6 X; x2 J0 N0 ]9 \# [6 rMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR $ k! P9 J' Y  w
| MCASP_TX_CLKFAIL 6 x! C5 Q' B& `6 B7 d0 p2 S
| MCASP_TX_SYNCERROR
. G/ L- ^; `7 h0 Q) x* L% r8 @| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
0 x* }, [9 i* I+ N+ I+ J| MCASP_RX_CLKFAIL
' S% }6 R1 i7 v, B| MCASP_RX_SYNCERROR
+ [  K3 I( k. ]6 y2 ~| MCASP_RX_OVERRUN);
# @  V- ?/ w; B) s1 W}
static void I2SDataTxRxActivate(void)& j  P6 I  |$ g: s- s0 t
{# p1 i( [& M, c9 ~) k
/* Start the clocks */
, t* O; L5 d! e5 d: ?% x5 O' RMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);1 N0 A5 X3 r" k7 G5 |
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
8 L9 ?1 M9 A) ?4 `% f( P* EEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
; w- v' s4 a9 q. sEDMA3_TRIG_MODE_EVENT);# R% W9 l8 h) {5 Q6 C# f+ ?
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, - k4 v( ]. l) h* i
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
1 {0 @' u% F& U& G/ lMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
- ]) s  ]$ c# T$ R! `" N, yMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */$ A( G8 {7 v: I( ]& M; w4 H
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
, A8 w$ y! [' K, n8 R7 wMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);
; u" T1 T! q, z3 J, f2 I7 Z7 ^* K& MMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);) B( L' a4 `" \: W/ R- O9 b
}
6 J. W$ N& w5 K- A
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

2 Z: {) S$ X! u: k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-2 13:48 , Processed in 0.046714 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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