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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10607|回复: 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,
; x% B# ~: i7 Q6 C% L) finput mcasp_ahclkx,% ?  w! r( ^- I; R$ P) F1 d
input mcasp_aclkx,
1 [1 V7 B" I# n" X$ }) x. zinput axr0,3 ?% a8 [4 [' l8 N# A

) I! m% c- h8 O8 Zoutput mcasp_afsr,, s" X. m4 G& Q# T0 N; y
output mcasp_ahclkr,
5 h) x( Y5 E5 Q! Voutput mcasp_aclkr,
- b# Q; h% _: J' V3 B* m! i5 \! doutput axr1,
# _. E" J3 L+ `) F
assign mcasp_afsr = mcasp_afsx;
0 F2 d' Q/ k) u* Aassign mcasp_aclkr = mcasp_aclkx;# V( @$ d1 d! `6 N5 G9 l
assign mcasp_ahclkr = mcasp_ahclkx;
, W- H# w" e/ A) }5 f. q; Dassign axr1 = axr0;

+ M# [- Q8 Y, w) }& F$ ~' m
. V1 U  ?% C0 V3 d! D& }% X
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

4 _  Y' F5 C6 k0 |" H. i& x+ Z
static void McASPI2SConfigure(void)
- ?" j  u; g' ^& u7 ~{; @: }! E7 a; r9 ^- ]
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
& `' d8 R: B/ rMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */. ^& A) B+ t1 w" V) z; h0 Y
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
1 P; P+ H& H4 w/ Q: w9 U/ R0 }+ h0 ZMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */5 ^+ ~3 P8 {8 p6 A1 k/ s
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
. {1 t$ g: R" r2 [. }MCASP_RX_MODE_DMA);9 I0 f  R# C; i' H5 J$ T
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
% R7 z$ e" x9 oMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
8 c$ S, A% j1 }9 d% c- r$ QMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
' N0 k5 C7 U' i% [; L% Z$ T) _- QMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
9 s9 K. x( Q( @7 D$ c' P' y  M- O# `McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, % l6 }) I8 [4 z# ?1 \6 @' `
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
; H7 U0 A7 R6 x( j. HMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);& W. G: V; U# Z1 |! T
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
6 t; c8 D0 S) C0 vMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,$ R, [1 P& D0 ?  u5 E5 R+ z1 L
0x00, 0xFF);
/* configure the clock for transmitter */# a8 \" r, i- |$ O. g( ^
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);, i( Z3 H, U; n0 ]
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
" _- Q4 K( J- S' M, MMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
1 o' x6 @' m+ w& e6 p$ k( J0x00, 0xFF);: R- }( I9 D% z2 T9 q* J0 T

1 s9 W  l! }7 r0 H/* Enable synchronization of RX and TX sections */
- m" Z! h8 |- {5 R7 V  D/ s- X$ BMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
; _* F% B5 F8 X% a, W1 jMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);' z& H. b5 c4 ]2 v
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
: |# I7 d  m, r** Set the serializers, Currently only one serializer is set as* d9 t) F, y8 u
** transmitter and one serializer as receiver.: E- Q; s; d! u* H. W6 B3 s
*/
8 B0 b+ c/ h- d/ K3 ^4 h; g+ LMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);& j, ~; a" g5 Z1 ]
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*% u& X& A$ x3 l8 ^) ^8 ~
** Configure the McASP pins
$ d- H, I4 S* e' b' j& U+ n3 a" Q** Input - Frame Sync, Clock and Serializer Rx
" t& c, @) e2 l9 V9 E- n** Output - Serializer Tx is connected to the input of the codec 0 ]: r/ q. S& A4 P7 N
*/
7 C% |* \# x) c$ `* NMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);* V& Z: n% W  M& P% V; \' _
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));$ @, L, U  {* s- a6 \! Y
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX# }9 R5 q2 F. {4 J6 s9 x: ~
| MCASP_PIN_ACLKX( Z2 \. K; j7 N! \2 S6 B
| MCASP_PIN_AHCLKX* ~' C, l$ x: Y
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
* V) ]& u9 `- ?7 V) D6 q% m. [. O' S. vMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR 4 a6 o0 }2 `# N) @* \. ?% q  {
| MCASP_TX_CLKFAIL
. U# J) w, c8 Y) }( {3 Y" S| MCASP_TX_SYNCERROR' P, \$ u5 Y8 p3 N- W2 B/ p- k
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR ! B4 h- s' }0 s7 N
| MCASP_RX_CLKFAIL
0 g' s; B1 K# y/ P( u0 U0 Q* S- ^| MCASP_RX_SYNCERROR + w1 C4 t2 O+ i7 j; @
| MCASP_RX_OVERRUN);+ t- Z- Z- y/ b) d, K
}
static void I2SDataTxRxActivate(void)( H4 h" w" L& M& K1 Q: I: n. j9 N! Z
{
# i; E+ h0 z! t2 T/* Start the clocks */4 Q/ ^  z  I4 q& f
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);, @' I4 e9 X6 i! A; W6 Z6 Y4 q1 T
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */& y0 N: \! G. O9 m, Y8 e* r+ y
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,, S, z' i# I* a! V2 w
EDMA3_TRIG_MODE_EVENT);# N' b* s& O1 _* O5 b
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
; e4 p- p& R* p& YEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
" ]# P1 k' O" U- @! r2 {4 K6 RMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);! |- C$ S8 \% ]0 D) z, X
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
. T. L) a. r8 P2 i1 s" uwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */; x( K# z# C) y5 R8 _5 I/ c
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);! C7 e4 m2 X* c# {5 W
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);. {- A0 ^8 ?) f  @( G& [
}
' X+ g9 y3 r6 S0 c: m3 c
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

; ~3 m: p6 \( d. [- j- n4 o) D
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-11 01:25 , Processed in 0.048660 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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