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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1216

积分

金牌会员

Rank: 6Rank: 6

积分
1216
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,$ b% c7 q$ [5 q* G8 s- d+ ?, d
input mcasp_ahclkx,
4 C- y9 v6 P! v. qinput mcasp_aclkx,
, X" N" R( Y& U, \& i1 W% {input axr0,% |: y* d9 S6 n( M% g7 @
  I6 _4 z( y( ~) g8 i
output mcasp_afsr,
5 i( x8 d, D8 D  V6 {4 Youtput mcasp_ahclkr,. m4 b1 \! U4 z, P* ^0 O& M9 H
output mcasp_aclkr,
1 q4 B3 x3 H! e6 u9 Ooutput axr1,3 M1 ]5 h4 Z/ E. q
assign mcasp_afsr = mcasp_afsx;
4 N6 d, j  \/ J& gassign mcasp_aclkr = mcasp_aclkx;
. H7 M; q: h5 p0 t! _4 gassign mcasp_ahclkr = mcasp_ahclkx;# f2 k9 u" N! i8 C; q6 a
assign axr1 = axr0;
; a4 }% F+ Q* ?- D. E, M
7 O* S3 Q: d! q7 p/ n) r' `; s! G
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

! u& ]6 x4 u# i+ e( x4 D
static void McASPI2SConfigure(void)
. @1 V. }5 |  Q' J7 G: M{
+ g5 u* Y( F5 m& P+ H% jMcASPRxReset(SOC_MCASP_0_CTRL_REGS);2 S1 f! G" m. _* f+ G* t
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */. c4 h% f2 h, N$ W; Z
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);2 \9 C# q9 F. @- }
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
' I8 u) o+ g+ E* h& xMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,* j3 M0 w* E- q% V. |/ u
MCASP_RX_MODE_DMA);
0 H! Z* A$ b1 A6 fMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,- x0 s* `, p( k
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
7 U* b( i) M- X0 FMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, , c& [# V6 X! T; Y7 O" Q
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);( N: r+ T! T  F; d, R) c
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
/ ^( [. b) A" QMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
# X' V* p$ w( o& G) iMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);1 ]1 p5 Y  U# Y8 U, y
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);   x/ E/ e0 g# G  R5 n: N0 b
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
# H' B7 H' F* N0x00, 0xFF);
/* configure the clock for transmitter */
( r, R+ ]/ j1 e( Y" [McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
! S' ]$ D' ^0 ~+ M1 s# w6 kMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
$ ?9 S; I8 d$ {6 [; g' HMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
1 r2 F% f6 R: ]! ^, I. W0x00, 0xFF);, _) u4 ?$ h/ b4 E

' ~: m& W# ^+ w, s$ ], W/* Enable synchronization of RX and TX sections */
; v  r0 \8 u8 o/ K2 t! F' wMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */! d* Y$ m4 R) t$ Z) a. m
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);9 }8 q$ |4 z. ~! d8 W% @
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*3 r# a6 D2 }+ _) m' y
** Set the serializers, Currently only one serializer is set as
1 C2 b. H) W- F7 `- b** transmitter and one serializer as receiver.1 J. h3 q' Y" k# H0 M
*/$ e0 {* U& S2 n- z7 |3 u: R$ M
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);; l6 k" t4 v! s" D  M1 w- y
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
* V/ _1 H' q4 X** Configure the McASP pins
- c0 M8 D* e1 o$ h1 E. P** Input - Frame Sync, Clock and Serializer Rx
! O: ?0 g8 C6 X# q+ P* d) y, p5 d** Output - Serializer Tx is connected to the input of the codec
7 S/ O* u/ @+ d8 J$ o. o*/% Z% c0 k) a9 s0 u
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);  j) h* k% [% T  p0 C$ y2 G
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));* p/ C2 ^# y8 i
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX. X8 z' D" L+ b3 @' i( B" j
| MCASP_PIN_ACLKX
' \. c; {" q3 F3 c| MCASP_PIN_AHCLKX) S; s. }! y2 z& P& _( m' g& C  Q( g
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */4 K! |& c' S- R  n) M- P
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
  ]9 G# q! O" x- F3 E. @6 O5 t| MCASP_TX_CLKFAIL 1 k2 n" a) H7 c# Y5 O
| MCASP_TX_SYNCERROR# I, H9 S4 p- w8 I* d/ }4 l
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR 8 \) w9 i. M# a/ ]7 E5 `$ u: j
| MCASP_RX_CLKFAIL
& `/ Y/ ~  A6 C% E+ l# ]| MCASP_RX_SYNCERROR 1 f! g# }0 o& }- _" y/ B
| MCASP_RX_OVERRUN);
7 x" I5 ^. x5 R) j( g}
static void I2SDataTxRxActivate(void)
8 b: a6 P3 }; E5 i{
6 ?# X0 z2 {8 h/* Start the clocks */( S4 C# H; E  O& j  i0 \- R
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);/ \: i7 b) T) m6 ~
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
' f0 H# f) L, `: {. aEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,: \% e' _6 j' }0 d6 A# @' M+ x- h
EDMA3_TRIG_MODE_EVENT);. N& Q6 h% l) t6 O; w: b
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
- r% D$ z  j' hEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
7 {& }" W- [3 DMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);$ X2 ?; G# u) @
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */9 q1 K$ V3 z9 J  {9 m
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
# u7 r- ?- V1 K7 a$ w( dMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);! y6 C- {' Y2 y- y& @4 K
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);) i7 G  k0 u4 K$ m
}
- i' y* _  g# Y' x( ~
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

5 B& U; k0 o1 y! ?. n% I; }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-10-17 16:44 , Processed in 0.039807 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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