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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12898|回复: 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- m% [# G1 R3 |+ |input mcasp_ahclkx,
7 l: k4 e: x3 @9 ]% M- tinput mcasp_aclkx,1 p; s' M0 H& ]! I7 ]6 N
input axr0,
: v. k; v9 V) x
( i0 |# a' N# b" J* s7 Coutput mcasp_afsr,! u7 X. _2 Q  [1 d5 y1 x
output mcasp_ahclkr,
# ?0 h! e, M. y# k- c1 {  x+ Coutput mcasp_aclkr,
% z. o0 m/ r6 A+ zoutput axr1,
, C& q, O" G9 b3 \. _. x6 ]7 I' t/ i* w8 n
assign mcasp_afsr = mcasp_afsx;+ _( M5 L6 d. H" s- ]/ p% X
assign mcasp_aclkr = mcasp_aclkx;
+ L4 ^# F2 w! R) Y, E+ c7 c3 z0 rassign mcasp_ahclkr = mcasp_ahclkx;! C2 U' j& A0 k! m- _- N; {+ x
assign axr1 = axr0;
7 t) d' f5 i9 Z) B4 S2 v

! F! @* J, g4 z" t* x: F# F
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

. U" C# S" V1 K8 H: D
static void McASPI2SConfigure(void)) z$ {7 o* T$ _7 b. K" @
{
. S, f% c( p" n6 s/ B  cMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
6 E9 [0 E' x, NMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */" I  ~- _+ ]: B- a# ?3 i
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
. c7 E; O& E  x2 b6 Y6 |$ k7 fMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */' \* W1 l3 @+ L- X3 B" P7 Z( E
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
7 X3 n. I8 [6 G* h- NMCASP_RX_MODE_DMA);+ q; f, d* X6 ^. r' ^$ V7 y# D1 |
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,! S9 j8 ]2 z: H  n  W0 R. p
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */7 K- u/ c* @+ R+ E, @
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, 7 C$ Q1 v4 [0 W  D. J, a* `
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
" N5 w# z! r( `% g; XMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, 4 c0 j/ Z8 M6 V- J, t
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */& ]7 r" z* q( z: f$ F1 |4 C
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
  F9 \# q; c% `$ o) y& h1 w  a* fMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
# l) _  c7 g5 ^0 Y* _0 \McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,6 J: I! s+ {5 v( C* N' S5 D
0x00, 0xFF);
/* configure the clock for transmitter */$ F' L( e8 G, _  }# k% R; R3 @
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);& N: y/ J% {6 G& F; R
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); ) \5 ?; B! B, B. \" q
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
: \3 p9 l2 H/ j! ?% l0x00, 0xFF);
0 R6 g4 |% o& [% a) _2 M! r/ Y7 c. Z' w. I1 j
/* Enable synchronization of RX and TX sections */
3 [# D! K; q9 S) C; R+ J, n4 xMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
! l4 p; e" D  g' S& d4 Z' }; O; gMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);$ V8 v4 U, {: k9 H: X0 P1 o  f
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
! C, i: r) ^6 N7 s** Set the serializers, Currently only one serializer is set as. a3 o- o7 B- s2 ^
** transmitter and one serializer as receiver.
, q! N6 q4 h* o& U*/9 n0 R9 g+ g( d( |6 e7 E; \
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);6 s4 I4 b( T8 ?# Q4 D
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
. R) O1 `, ?. Q* f: a** Configure the McASP pins
+ k3 X) E! d% v5 s2 X** Input - Frame Sync, Clock and Serializer Rx) e7 x/ B' O, W# V* _" V
** Output - Serializer Tx is connected to the input of the codec
" K9 |. f+ o4 z( x2 q9 M*/
  _( U0 h% R/ e5 aMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);. ]" [* {* n* M( e' c. D# G9 e, Y
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
) P- X& c8 i, EMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
, Q9 ~$ V* [3 ^" E% p8 z+ J| MCASP_PIN_ACLKX  u: ]3 f9 g1 T. u4 Q
| MCASP_PIN_AHCLKX; W* {0 n) i: }4 l' M3 i  X
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
& u# I: B7 P2 [McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
" Q2 U% Q6 @$ q- e: g" A6 q$ B| MCASP_TX_CLKFAIL
' k& T; U8 o3 U) A% X| MCASP_TX_SYNCERROR% \/ \! e& X$ K3 |* U; v
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
; L# W( T4 O. h6 F| MCASP_RX_CLKFAIL
1 s: `. I$ _" @8 P& F6 c| MCASP_RX_SYNCERROR 7 T$ ]- Q1 X* ^: U3 ]* y- T
| MCASP_RX_OVERRUN);
- X3 `# f# T* S}
static void I2SDataTxRxActivate(void)/ C' t% O2 U" e/ y; z
{
, c- u4 l  @3 Y1 y2 b2 i+ S3 r/* Start the clocks */& N; |3 u8 ?9 I# L& @+ y4 Y) H4 _1 @
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);, J& t; j6 k. r
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer *// U  O4 z+ l+ G4 j
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
$ g8 |' [0 V- a$ iEDMA3_TRIG_MODE_EVENT);
* r$ S( q( z, n: E% SEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 3 A' y# o4 d4 z
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
: |5 l" L) \- P4 T1 ?; J; ^/ E" \8 U- tMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
6 l. G9 N* n1 |4 lMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
! _9 d6 |" @( d9 c7 F  iwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines *// p0 V: \8 i9 A! J# R/ t
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
) e" {& e  k+ e# J0 {McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
4 N0 y: j7 C5 S. U0 ?6 b# B" q}
8 p3 C6 L6 Z5 }- `) [/ c
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

1 H! c$ ]6 `+ F4 S% v; Y) a0 p5 J) e, x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-7-15 04:37 , Processed in 0.048126 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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