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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11311|回复: 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,
, Q& _7 j$ c" T0 j( b$ Sinput mcasp_ahclkx,5 H( p; ^. m* Q3 A* H0 \4 L1 j/ d, `" Z
input mcasp_aclkx,/ K8 Q+ U- q  O( x/ s) C- D# L
input axr0,  H/ V0 r0 l$ k$ j/ ~

. @/ [$ e$ b5 B$ Q9 \) n5 Loutput mcasp_afsr,9 H# d$ G8 m$ n
output mcasp_ahclkr,1 B7 H" O$ j3 G4 B1 k; {. _
output mcasp_aclkr,
$ i5 q) o2 x  Zoutput axr1,8 {1 o9 Q% @2 a9 E8 z
assign mcasp_afsr = mcasp_afsx;
( V& ?' ]$ K* A2 q& Q' j8 Gassign mcasp_aclkr = mcasp_aclkx;) c$ }' ^- Z/ G/ z
assign mcasp_ahclkr = mcasp_ahclkx;: H6 Q3 ?4 Z/ L8 `9 w$ @1 n4 ?
assign axr1 = axr0;
- C+ t% M5 w1 P6 @& n2 C6 S! |
' p- V7 J; T/ y0 W: ^
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
6 [; ]; ^+ F7 S+ |
static void McASPI2SConfigure(void)
) i; Q( n0 B  i% K6 ^, X{" N  E/ L; ?+ e0 _) [' h2 z0 `
McASPRxReset(SOC_MCASP_0_CTRL_REGS);$ N8 b1 g0 w* F! k
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */2 J; G& T  q6 d# o6 K6 l1 Z' V
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
  _- |3 A, d( m' SMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */- V4 g3 [; i% \0 V4 g
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,$ i9 }2 m5 l3 M" C; o& j
MCASP_RX_MODE_DMA);( a' D- M, g7 o' c- O, F, G2 `( f
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
- K5 M4 D+ x- C/ y2 QMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
+ V$ c5 H  ^: _& O+ k& kMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, ' N6 {$ i# \0 k6 u5 \1 M8 G, K
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);$ Q: f- t- {& e, U0 Q' P6 {
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
8 H& a( N# t; E. U% a6 ]- ?MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
% v$ L! A  w* F. w6 z) |McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);5 n8 X& H( O/ A4 R2 G6 d6 c( G
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
/ N7 D! V+ Q! V/ _; a( I4 m( }McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
* @7 R* t: Q4 u* J  ~. t7 a0x00, 0xFF);
/* configure the clock for transmitter */
9 t8 ?3 S* o" SMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
4 @& i, k" m. W2 D1 j5 ]McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
- i# G2 H" i! w+ E; S2 |- \McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
. G2 B2 x. [7 `- c$ M# n7 Z0x00, 0xFF);
& [3 u7 U; n2 S1 a
9 V2 r7 d/ Q9 I  Z3 c/* Enable synchronization of RX and TX sections */
- ^( i% e/ X( R, E! HMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots *// C9 \1 U( Y- L$ M! p
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
0 E( W! b( L- I  u2 h& r. }McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*3 u9 B9 E' M2 U1 b( y
** Set the serializers, Currently only one serializer is set as
  f; T& J6 {  m3 Z+ g" p** transmitter and one serializer as receiver.
. r& ]$ {9 U( ?3 H# D% _6 E*/- X$ z+ @1 H! Q$ p* O4 X( N
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
3 b; H0 x! l( w' {, bMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
) E9 W, @8 r8 t. j2 h6 _( \** Configure the McASP pins   u! F5 E( s) o+ r, J0 x3 ~
** Input - Frame Sync, Clock and Serializer Rx5 }6 S# I$ T- X3 v" I4 N
** Output - Serializer Tx is connected to the input of the codec
/ T% j1 n9 B" Z2 Q' L: x*/" s- |$ v( V$ v2 K" W6 ~
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
3 [* E$ T& r  o6 Z5 hMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
! R. A* y# b& z4 U0 V- H( zMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
  T, M+ b5 u0 U7 P| MCASP_PIN_ACLKX0 D. ~( U) j9 U$ G: D* w1 {
| MCASP_PIN_AHCLKX7 j" r0 r- a- N( B( @& f
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
: n3 m  O) I) t# T2 i( \McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR / b+ E$ a# i, Q9 j
| MCASP_TX_CLKFAIL
! b( }- k' c. o' ]. @6 E% z9 h| MCASP_TX_SYNCERROR& ^7 `5 f7 E6 k9 M% F4 }; K7 {/ Q
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
. e& h# v/ f. ]9 R( Q1 \# ?1 E7 z| MCASP_RX_CLKFAIL, P9 z* y2 O& _; R7 i
| MCASP_RX_SYNCERROR - ?0 z5 _' L* |; O
| MCASP_RX_OVERRUN);
' E' \6 n" U2 m" \}
static void I2SDataTxRxActivate(void)9 N5 ^+ O( G* Y5 g- E
{
+ p& F7 I3 k) {0 p6 L9 a; h/* Start the clocks */8 a3 M$ a% F1 m' s# v/ T# }
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);' A  G1 l1 n6 I! z. i' i
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
% E  ]# c+ I9 p2 ?EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,8 J8 T3 G6 R9 N+ c/ m- m9 x
EDMA3_TRIG_MODE_EVENT);  U( `( D* o) K8 p- j/ @
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
# I- \; N# `: U; m0 GEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
% y; G3 H" d: j: R& B3 B+ DMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);  g! O( @3 P0 o2 M; X& K( {
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
( Y$ t3 M4 ]" Q$ ~0 zwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
6 l) F' ~' h) M7 Z6 ?( P# AMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);
4 b2 P) M. ~$ @3 K, EMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);& V% k( Z" L. P
}
& A2 @( D, ?, O0 b+ _
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
$ F9 z1 j+ v' l9 g2 f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-1 22:14 , Processed in 0.045926 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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