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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10665|回复: 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,, D) @1 ]& P' B+ c
input mcasp_ahclkx,
0 }# E% V7 L0 p' \input mcasp_aclkx,
/ ^8 ~8 U" i- T* L- |input axr0,
- g& G% A3 v: b8 F3 ^6 y6 S3 b. A: O% `& g- P' v: F! C/ @
output mcasp_afsr,- c  Q+ T: e& l" C3 ]8 e% H
output mcasp_ahclkr,
: P" t7 n1 Q2 D2 R5 o2 toutput mcasp_aclkr,
% ~, k' K- L; f' p3 Poutput axr1,+ [& D( R' N& j2 U: M
assign mcasp_afsr = mcasp_afsx;
: l2 @* F$ K/ w; u& z7 L, e2 P; u" V% Passign mcasp_aclkr = mcasp_aclkx;0 S; G3 A0 I! U( W4 `
assign mcasp_ahclkr = mcasp_ahclkx;
+ G# @9 c0 n7 ~$ W3 \! {" F% kassign axr1 = axr0;

: D# V# v7 X: W# ~' ]! n! l+ E1 G7 d* i) k, L- Z3 |# Y6 [% ?, \# B+ E
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
8 c3 f1 U, K) t8 I- [2 T7 J/ v. }) ?
static void McASPI2SConfigure(void). G2 V" i, ^8 O2 m0 b/ }
{
4 ~9 R- ?/ }+ x4 f! e1 _McASPRxReset(SOC_MCASP_0_CTRL_REGS);
. b' m8 u  Z& A7 @0 c2 pMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
* H; L% Y! n5 tMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);) I, X! i7 O* j1 w3 l
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
( `1 ^2 w; X+ r: IMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
7 h; Q. x0 V2 @* |# `+ X/ ]MCASP_RX_MODE_DMA);
  X9 i. F  ]. C/ C& JMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
  d, A" I+ `+ e; H4 L1 BMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
" X5 L6 D/ W/ F  D- g+ XMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, " t& J6 l  A/ H# B
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
: s& x4 P0 H! i" h  F+ j, h+ U3 fMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
# i5 @& s* A. n7 C' Y- QMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */# S% m9 l: l9 Q. k+ [0 _
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
" ^3 m/ q$ N. E8 P, n3 ]( ?McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
6 J6 l9 W+ V# V/ aMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,; v% O  V8 L8 e0 T
0x00, 0xFF);
/* configure the clock for transmitter */
3 M7 U. j& e2 o$ A9 WMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
% T: m5 Z& B& W. z. dMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); ' K: X# J1 q0 A1 E' A- C8 p
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,2 P. L3 Y' b- _' ^! ?! i# f
0x00, 0xFF);1 Z& K- F# R3 `4 }; e0 T
+ S6 V, w  e+ b# P0 G; s+ }
/* Enable synchronization of RX and TX sections */
4 M" `4 \! N8 m7 P; N5 KMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */: S5 n) s4 V$ e) w: b8 h+ J7 J: C
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);/ q+ g/ b6 `0 N/ l( d- `" \' Z
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/** ^7 m$ |. i$ a7 T
** Set the serializers, Currently only one serializer is set as: V1 q. O0 }! ]1 O* L( m! p( u
** transmitter and one serializer as receiver.
3 U4 {9 h% p' l% B1 e*/1 a7 e) K" V6 V7 W% l# H: V! q/ q
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
- _( p, T! d- j- y% AMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*/ M! i5 L; X: @( `. u+ p+ q
** Configure the McASP pins 4 \; I/ T& d9 I; ?' x, ~4 l( C2 n
** Input - Frame Sync, Clock and Serializer Rx
' e0 C: I) }1 a* p2 Q5 K: F( M** Output - Serializer Tx is connected to the input of the codec " e  {% `2 L2 d4 m0 R
*/
$ Z8 J- P4 |* O3 zMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);5 v& v  c3 c) u  s" `* c! J
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));" A- x. c+ s& x; b; K
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX5 Y% d7 v- o+ U# z, g$ c1 L
| MCASP_PIN_ACLKX3 o. q; c3 P4 H
| MCASP_PIN_AHCLKX! Z# a6 }. ]8 L* F: l5 H. ^% ]
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
2 k: x% ?! N/ |4 TMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
; a1 ^9 r" r/ T& w: I$ R| MCASP_TX_CLKFAIL
* d0 R/ G9 I$ N/ d; h| MCASP_TX_SYNCERROR
. z) @6 k  ?% \1 n! y) `| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR 5 i: R$ o) q* W8 F- `% _
| MCASP_RX_CLKFAIL
( D, g2 N8 }$ p* ~1 s| MCASP_RX_SYNCERROR
! r. }1 i" l6 j9 k+ R4 t! A| MCASP_RX_OVERRUN);% S; K% A4 G& O
}
static void I2SDataTxRxActivate(void)
+ q' V0 n+ ]- K! R& w6 H# I{3 x# x; N2 q( w8 W% O
/* Start the clocks */: r, R* N) r0 K
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);# l3 w( h3 ^0 @7 |3 s0 P" K
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
6 G! j7 _- ?3 L) kEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,, Z  g" n/ _- @+ P
EDMA3_TRIG_MODE_EVENT);
8 d+ d- R7 c/ s3 z/ [9 DEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
5 d7 O+ i. a7 y/ P0 V* z0 rEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
/ n' M; }: k) c4 A) z* K4 _# IMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);! t5 a) t# R& h
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */, q: G+ |- E5 E8 W7 ~
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
8 \: R/ F; @, S' A0 P, X  {0 J* kMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);# `5 `- P) m: O' }
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);3 C" T( E! T0 N& p
}

1 P; @1 |) j$ c
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
4 q8 m2 E6 @* n2 @4 Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-12 16:22 , Processed in 0.040844 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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