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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10477|回复: 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,
& L0 d4 ~" N7 M! ]/ D% Qinput mcasp_ahclkx,
! o; r7 n4 F, j% xinput mcasp_aclkx,
: \1 v% ]$ B8 r2 y# F3 G- ?input axr0,
8 l! Y9 i3 w* `# g  m+ |! A/ G
0 N7 x- |( {0 zoutput mcasp_afsr,, i% S! L* J5 A( ^& Z: D( C9 W
output mcasp_ahclkr,7 O* q8 ]4 a7 M* m( ~6 C6 z$ y
output mcasp_aclkr,
: ]; R  G- z. B* Q! ^output axr1,( N% P  Z" F% a
assign mcasp_afsr = mcasp_afsx;6 n8 A: j* _8 E- @( _; f
assign mcasp_aclkr = mcasp_aclkx;
, V1 f: i6 ^6 J( t/ ]assign mcasp_ahclkr = mcasp_ahclkx;/ p  a: o1 Y5 `0 S9 C, u
assign axr1 = axr0;
; u1 h  _7 n; m0 p* S6 {1 h$ J* [
* Y  C5 U! G& @3 i9 E
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

8 {& J2 g; ^; I
static void McASPI2SConfigure(void)
' ?# F0 A" J- y6 {{7 v9 \4 E* b/ j3 M& F; r0 d. |% D
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
9 Z3 P" k( D0 S9 |& {, V# s' \0 oMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
$ i# J: L' U9 o1 r+ ]2 O+ ~. KMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);$ b8 p$ N2 x; A
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
/ W( I4 w2 j9 q; d! X  S& vMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
2 Q% G0 w. O2 U. iMCASP_RX_MODE_DMA);
/ F/ S6 K+ _/ {  U+ hMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
  e' R: e: Z2 l2 `MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */9 g% Q  {$ L( L1 a" E
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, * \) B: Y$ r# ]+ u$ n
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);, b8 Z! u# t8 r/ d8 C( A
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
7 C) O( [. @+ W+ ?3 {% _. ^7 aMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */, r( k7 D3 G/ @. P
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);6 y$ V& e8 E% J
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
5 o" H! M! R1 G" Q+ b$ F5 CMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,9 D: [6 W& I5 j, _) P
0x00, 0xFF);
/* configure the clock for transmitter */
% x5 C+ N. z- O1 X$ c- NMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);- [1 H9 D3 x; V/ I
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
/ F( i- z. u3 d7 S/ K. v" AMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,4 _& c! r- H( E4 z( q
0x00, 0xFF);: h% y% w  T( o6 L+ [, _

* Q4 m; X3 ^' w$ N. A/ r+ u6 k/* Enable synchronization of RX and TX sections */
" y) D8 Q0 R+ X' qMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */# A% k. A5 l1 O' Z+ b8 W2 F8 p
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
, Z  w0 ^3 w  O3 C- ]# I) y- |McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
, K, L0 W" |1 c: y** Set the serializers, Currently only one serializer is set as
: h8 n9 N$ f' M' F3 R** transmitter and one serializer as receiver.8 h1 \6 _7 y5 U( Q
*/
8 r$ a! B1 o3 u2 a0 p. }1 ?2 vMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);/ Z1 J7 ]% A# w' V8 Q
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
# q2 p" d0 |% }9 Q, Y! ~** Configure the McASP pins
7 D3 t' ^+ P* f0 s0 x- c5 \** Input - Frame Sync, Clock and Serializer Rx
4 V% H9 u" l4 [( k9 ~( a- R** Output - Serializer Tx is connected to the input of the codec & B( n' Z9 `+ q; _! u& s
*/( ]" a3 x# |9 t, G
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);. E: i* U8 D  Y# s8 t
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
8 ?. B6 J: m8 ?9 o8 d6 q4 `McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX- Q! j  r+ l* z: K5 S; y% G8 |: `
| MCASP_PIN_ACLKX5 T. H; Z- t  x0 H& a' c
| MCASP_PIN_AHCLKX
& k8 u4 O6 E9 V9 u- u; ^9 D| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
7 t* ?' a, H( D' x5 sMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR # J% R2 ~; i: b
| MCASP_TX_CLKFAIL 1 e. ^! D. Z& H
| MCASP_TX_SYNCERROR# z8 T& l# l5 c* I  W) ~! `
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
4 U) G" g" ~: y$ X| MCASP_RX_CLKFAIL
( R: a5 ?, K- o2 K7 ?| MCASP_RX_SYNCERROR + P) s+ _6 |2 J, u6 }
| MCASP_RX_OVERRUN);/ L, A+ |; `6 x* w
}
static void I2SDataTxRxActivate(void)6 R5 i4 v1 H7 p& G' P2 U! L' ]
{
- N( M- t; |: [3 i3 W/* Start the clocks */
. i$ _  }" g% Q/ FMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);4 }" e; P7 _9 t4 K" m
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
. A0 F- s4 H5 d- j9 X" p, v/ @EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
$ r# R  p' x) h& i* uEDMA3_TRIG_MODE_EVENT);
5 P5 K/ }$ m, B. d. C( k& VEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
6 D5 n$ P3 b$ [6 }% V! SEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
$ ], m8 l9 b. W9 wMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
+ f7 L- m2 H9 C# Y, uMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */$ Z4 v1 a* B3 ?8 e9 w9 R& i
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */. r' d5 ^9 l  b' X
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);  ~& z, a# e* ^" i3 B  Q1 ?* I
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);& l! `4 T, ^' q
}

$ |& C, \8 H% Z- X
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
9 G, v' ?/ a: ~' p; g, h
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-7 19:54 , Processed in 0.039244 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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