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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10661|回复: 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,/ T$ k, g6 d2 z5 p8 O
input mcasp_ahclkx,
& o$ m( \1 s' X. c" G  @' einput mcasp_aclkx,
1 |" ?9 |, W5 G( [1 i$ u6 hinput axr0,( j4 `* L3 g3 T) M( k- N
! [4 ?6 U9 ?8 {. X. I* `8 u6 A
output mcasp_afsr,% ?; _+ w9 p7 V
output mcasp_ahclkr,
( b" d1 D6 K" n* boutput mcasp_aclkr,
; F: e& A& |9 _5 U- a7 Koutput axr1,
8 ?+ w# \6 C$ q  U# J, m. v
assign mcasp_afsr = mcasp_afsx;
, ]! z* d& B5 L; R  p& gassign mcasp_aclkr = mcasp_aclkx;5 C2 l( B- r1 S  f' A
assign mcasp_ahclkr = mcasp_ahclkx;
' y# J( O  b5 w* _assign axr1 = axr0;
2 J, H3 z! \9 p4 O6 T1 ^

! h8 B! T1 N, @" ]" N! l* `
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
8 o( j" A2 r; i4 |" m
static void McASPI2SConfigure(void)
) X9 C: x9 {; D0 m6 f8 i! a' ]{
% o: O5 N- ^% Q0 v2 FMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
% M/ I& X. R) TMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
4 A6 }; k& F& U/ B) B: DMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
  I) M1 c: P0 a" X$ a7 WMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */: k7 @0 u: d  R
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,; I# o* j- u0 L0 Q2 u9 Q; K
MCASP_RX_MODE_DMA);: Q" m3 w& ~( k9 b
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,# @, x, {' Q% j1 X( `! A  m' e, j
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */2 Z% \/ m' @* I
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, " t( i5 c) [' p9 Z# F
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);: ^$ I4 J! U% n7 U* ~" ~8 j  e
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
. O6 f& N, W. Q- N: d0 kMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */7 _2 ?( |' P# W: I$ L. n0 {
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);4 V9 l' u1 S3 y# Q
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); * {$ ^+ ]4 [) |  V) P
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,# R( P8 z6 H) l6 W; O, {
0x00, 0xFF);
/* configure the clock for transmitter */
* B- c' P6 W$ U4 n2 E' H# |' c* gMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);1 P7 ?3 @. f1 Y" K
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); 2 l9 O1 K: D# U8 H* z
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
  t# }5 H! Y+ l( b- }" P0x00, 0xFF);. a: R$ s* D% ^, I( r$ k
: P" M5 Y: k3 D0 e- G9 L9 u
/* Enable synchronization of RX and TX sections */
! a4 X" x# X$ k0 X! ~) VMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
8 {$ w: ?1 p" b/ m% w: UMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
9 [9 `  b3 \7 `  tMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
/ d& i  @2 s% c( B** Set the serializers, Currently only one serializer is set as- s8 v  M' u6 h5 U9 o# h  _9 _2 T
** transmitter and one serializer as receiver.9 A: F" ~% q* k
*/7 E# S9 m1 x/ D2 r$ H/ X
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
3 y# F2 V& z: r% F# N+ fMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*) m5 L* i9 h# ^% C* T
** Configure the McASP pins ; A8 l5 `3 }. g6 z8 C4 y" }3 P
** Input - Frame Sync, Clock and Serializer Rx
3 b& d# l) A9 _2 Y! K3 Y% R** Output - Serializer Tx is connected to the input of the codec 1 E# R, b# I& g: A
*/4 y" d3 s8 y5 {/ v3 A: k$ D
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);8 D# [. V- \- q/ b# i0 P4 s
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));% j& ^# a3 K+ r- `
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX) M/ v8 }- P. p4 l) {/ s
| MCASP_PIN_ACLKX; T9 v( e% n% n
| MCASP_PIN_AHCLKX
$ d0 W. @9 e! y+ A" Z| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
! C  J/ k+ v: H" k4 t6 a7 FMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR 8 a8 g+ h8 S/ T3 ]$ P
| MCASP_TX_CLKFAIL : M" }" f4 O; y- o" d3 O% x
| MCASP_TX_SYNCERROR/ h3 R4 [* c0 \- k) m  l8 P
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR 0 b! h2 f5 A7 W7 f
| MCASP_RX_CLKFAIL8 g2 j1 |/ P5 N' T3 O- f3 i
| MCASP_RX_SYNCERROR
6 Y+ V! c5 N: w6 H9 a| MCASP_RX_OVERRUN);
4 ~. e- ]9 X% c) |& c}
static void I2SDataTxRxActivate(void)
6 \6 _3 y7 ]0 |- r# {{5 W- ~, L* J& q2 @) S1 S
/* Start the clocks */
/ J  i; ^/ n+ T* I* m1 pMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
  d* ~' X# z* L7 M' TMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
, N, {+ V& ^& N4 j6 aEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
* d/ y( q$ x/ W5 K3 D" }EDMA3_TRIG_MODE_EVENT);& i/ `4 B/ u* _0 L* N: P) U
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, . ?9 r$ J, A9 D& o4 A# K7 G  \
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */* D9 n: E: B! X  H+ P  F
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);  x' M* x1 a' F% }
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
( x. T) l3 k' nwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */$ i: b4 l/ g' X$ Q: D$ b
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
3 O- c2 r" I6 n- v, I6 BMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);2 E$ O1 d7 L% [5 ^
}

$ Z0 d8 s8 B8 D3 R
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
. d9 u# ], K- e: M$ I  {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-12 11:57 , Processed in 0.038660 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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