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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1215

积分

金牌会员

Rank: 6Rank: 6

积分
1215
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,3 V5 N. `( i$ ]  e0 ^* L: o
input mcasp_ahclkx,
2 p! c5 W8 b+ I' j! ninput mcasp_aclkx,
7 W4 b7 c5 g! l6 a' c! Einput axr0,/ a7 x' O( g* V% V9 q, K( A' K

* K  v; O; X' H2 uoutput mcasp_afsr,/ X& r& o5 l+ A" m# X( q
output mcasp_ahclkr,+ j; n! R) @$ n) w
output mcasp_aclkr,) J3 U# a+ Q, d& H
output axr1,* t* c! d3 K; F' \" _3 D; e
assign mcasp_afsr = mcasp_afsx;
  {! k' m7 n& G3 hassign mcasp_aclkr = mcasp_aclkx;
3 M$ v( @& X/ q! |! Massign mcasp_ahclkr = mcasp_ahclkx;
) Z2 D% P1 R# Z6 \8 T% H' aassign axr1 = axr0;

3 n1 c& L2 [9 u* W2 j1 |) W0 s8 O  V9 r3 x7 v  |
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
* M. h/ O3 R7 j! B4 `4 X  X" |
static void McASPI2SConfigure(void)# K  G& P& s& ^% N% H
{9 G7 Z1 I6 o9 J+ {  H
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
7 C2 @; X+ d$ yMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
* \$ q/ B0 f  |/ C" o. iMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);' O0 H2 D/ i4 d  T4 P
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
9 _& f4 V) O/ ^: z; i. F" N, lMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
/ n$ g: t# }2 i3 R6 w0 K/ |1 m6 zMCASP_RX_MODE_DMA);
) e$ R9 C* _* l6 ^7 B1 _  z! ?7 kMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,3 h; N" O; b0 g2 A4 [
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
1 H, W( X( ^0 b) o* j- JMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, ! n/ D: J. q7 U* `' r9 E+ _9 ?
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);. M! O* ]# M' C7 Q( I
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, - h6 V/ [8 q1 I9 H
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */. Q. y1 B0 a3 j3 j- G; J  W1 T
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);6 ^2 C% D4 j$ ^) x/ w7 x3 `0 @' r
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
# p( }' d& f  ^2 k2 nMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
& S6 B  y' R2 K- W: X' ?( Q& j0x00, 0xFF);
/* configure the clock for transmitter */
  F: b5 B8 g. w$ pMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
% c' o/ o! b% d3 ?0 F1 M7 RMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); 3 y& n4 ?1 d& _4 Q8 k
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,$ b3 G# b/ g8 P5 @; D
0x00, 0xFF);5 D4 _! J9 h! g1 I

- H) d; i/ ?& K/* Enable synchronization of RX and TX sections */ ' Q$ z( E0 q- M
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
7 Y7 C7 |6 A# a1 d, mMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
2 d* p- p! Z- f6 M; f; W- K1 f  g* {McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
1 K' D: `# E# N* T/ `** Set the serializers, Currently only one serializer is set as" e) w+ S% A) W4 |$ C( |" V* e
** transmitter and one serializer as receiver.
1 }- E( T! @! m8 _# x+ e7 L- b2 t*/
+ _$ W$ O" C) |  Z. F3 BMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
2 i  \8 h# V- t% |9 c9 W  hMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*/ z7 A- Y4 V3 m, f
** Configure the McASP pins 4 e4 h, A( q# h) O5 h
** Input - Frame Sync, Clock and Serializer Rx! m8 d( V" S! Q7 m4 o2 k3 x- m
** Output - Serializer Tx is connected to the input of the codec 7 x" z3 R+ P5 E& C$ a  P% H
*/; F3 L# E# U$ M4 I( Y/ i4 U; f: i0 _
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
, k- c' ?3 r/ X2 R( w3 _0 DMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
* B( a6 ~8 h- B+ [. ?McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
6 W- ?$ o6 w5 @" z8 z  A| MCASP_PIN_ACLKX4 U$ w7 T7 o6 K& B  m$ x7 L
| MCASP_PIN_AHCLKX9 r6 b% X+ G7 D: G, ]
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */# |! }6 i' F. Y' O/ t1 y
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
* D2 @. Q: |3 i. @2 ]| MCASP_TX_CLKFAIL + y' A  c& I8 @/ R
| MCASP_TX_SYNCERROR
" S3 r$ G+ d8 L7 t| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
5 t- x8 K: S$ K; `: R' J| MCASP_RX_CLKFAIL8 \) F& y! s; k- V+ T. h2 e
| MCASP_RX_SYNCERROR
5 W+ ^/ a; x6 u7 `| MCASP_RX_OVERRUN);
1 D! g  @  K+ b: L}
static void I2SDataTxRxActivate(void)
3 ~2 A8 e2 v# z) p) L{, [# d6 o. m/ S! g7 A2 _7 R! M
/* Start the clocks */
# g! O& e( r  IMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
3 H2 ]; r2 \. B& m+ n6 e/ r9 F  kMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */7 P5 ^8 l! M- h; @7 c5 C
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
; a" q! c$ B4 }, _& GEDMA3_TRIG_MODE_EVENT);8 }* j! D3 T& K
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
) J/ H. S8 c2 ?; l9 Y/ w, ?( tEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */) z# W# ^5 I7 E" Z4 V! S9 `4 M2 i
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);3 F$ `- I) v$ ~/ g. S6 l2 }) i
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
  k  d& i0 T: [. ^! iwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
! N$ O, k5 _) c% n2 J3 zMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);1 ?" s5 b6 ]- t6 z
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);+ [% ?/ q  D1 s- w2 o3 z* f
}

0 u4 f/ }: b; Q' A% P% _6 n. Z
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

2 R' E) l) f0 B9 d2 G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-1 08:52 , Processed in 0.041114 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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