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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11236|回复: 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,
* z6 \$ u8 ~1 |" k5 {input mcasp_ahclkx,
8 N, O6 d* _$ N: p1 o  c- minput mcasp_aclkx,3 G- z3 [6 ]. Q- H) ~
input axr0,, }' k, b1 \/ a$ V2 X7 U- K6 f& W! p

5 i$ A0 T8 K7 C; q0 ?output mcasp_afsr,( U2 }0 y9 f# B, e# I
output mcasp_ahclkr,  v' d  t% G/ k0 R& C1 {' E/ s
output mcasp_aclkr,0 E) m- V+ l) A# G& T' R. K' u
output axr1,
+ Q/ i- J# f/ s2 e7 `- C" ?/ F
assign mcasp_afsr = mcasp_afsx;! l* E; b$ `0 J5 k# b2 M, g
assign mcasp_aclkr = mcasp_aclkx;
0 b' @! y! X- h+ a1 A. wassign mcasp_ahclkr = mcasp_ahclkx;
5 l6 e. @( i8 C4 Y' c  nassign axr1 = axr0;
* i: l- E- l/ J! O- S$ G  k% ?9 M
& f  R2 H- I0 s( k' x8 N: T
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

' q4 e0 N" t: ?3 {' H
static void McASPI2SConfigure(void)
+ S  y/ F, T# f8 e$ y' |{( [! t1 V4 B( Y9 L
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
$ P& _6 l+ l# J% p5 E/ HMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
) Y  b$ D, p" n( r" s& r$ n3 ~McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
3 O: i1 Q& O% C0 b* C) kMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
! |8 x) e9 C' |; GMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
( E3 _$ a, U  h" v9 }5 i/ bMCASP_RX_MODE_DMA);0 T  H$ v9 D% R4 A
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,3 C( G4 y4 E& |
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
2 l8 N% D$ g& a) `$ c/ lMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
  `6 z, ?- b/ A# S7 XMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
9 l# G$ F8 J7 o9 ]# nMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, 1 E  f6 f3 E" Z' {" f
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
3 {* L/ \! |7 t' GMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);+ W$ X4 {8 l2 B. q
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); - N1 ?; u/ q* U; S
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,. ]) F$ ^  l2 F& P- w( Y* c
0x00, 0xFF);
/* configure the clock for transmitter */  i- W5 u7 B6 t. y/ j
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
) F; O3 q$ }7 uMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
. Q2 P) E- E6 I& B2 zMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,2 U' u8 c' L" f  Y
0x00, 0xFF);  I6 `+ y* \! ?4 L2 M4 {
  ?/ O- M/ r2 ^) T
/* Enable synchronization of RX and TX sections */ 7 g+ X2 d3 I4 `" X% r2 v
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
1 l: {: w0 x4 b  l4 IMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);6 P; S' m& L( X7 R) E+ \
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
" ^# ?' L+ x( B: i" T' v** Set the serializers, Currently only one serializer is set as
& ^1 k) ~" C$ e) v. L** transmitter and one serializer as receiver.; ~) [5 k6 w# m+ E9 z
*/
! Q$ }' b9 z. T, J9 [5 ?McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
1 C3 [" |; g- e" C# w  S( d7 vMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
- n  ]) m8 J: g" n# T+ E** Configure the McASP pins 8 U$ q+ S6 _. m- l
** Input - Frame Sync, Clock and Serializer Rx
4 E* G% Z/ E/ a' z" m** Output - Serializer Tx is connected to the input of the codec 8 |  u6 m1 M$ N2 Y' @0 I" s  j1 g
*/
$ q: Z( B8 a7 ?3 M) IMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
3 s! [) s- @  J/ D6 ?McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
+ l2 U. ]( R3 `+ V# D! Y; v9 h+ tMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
# g% E5 U; r5 e4 o- d| MCASP_PIN_ACLKX
! v" C) a9 t8 O| MCASP_PIN_AHCLKX
4 r- S, s$ n* O8 ]8 @4 X| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */+ E) G* T: v2 M0 J: O: Z) p6 G
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR , t# D8 d6 w  p- p
| MCASP_TX_CLKFAIL
4 Y3 c  J) f) ?5 E6 `9 j$ r| MCASP_TX_SYNCERROR- ]) F" s) Z  n, Q( }) g) n
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
0 M) Y8 Z# s' V| MCASP_RX_CLKFAIL
# h# d" \& O. a& w! P/ o+ I+ u| MCASP_RX_SYNCERROR ' o: }) u9 X; h" b
| MCASP_RX_OVERRUN);0 L( g4 W' v; ~0 A8 k' h% G4 H
}
static void I2SDataTxRxActivate(void)( I* z" E7 ?5 i+ v0 C; r
{% [% p5 S/ C1 u: \: U
/* Start the clocks */, L; n# c5 R* c  D, U' W
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
8 @5 Q3 y" F+ wMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
  X' H, j9 r: ?, l7 SEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,* a/ [8 r$ k+ t9 e
EDMA3_TRIG_MODE_EVENT);
' z* k2 L3 y0 N' oEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, & T2 j# r; i" l- ~
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
4 k3 O% o; x# F; PMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);0 z% b; \$ `1 a: V9 Z# Z
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */& p" L/ K# i) O& o. Q
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
5 y8 W6 _. a' a- q9 e' iMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);* V0 E. G+ p1 v( ~1 \2 d% d
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
4 I: C7 U+ F4 Z  B" N3 `- x6 k}
. U* X" P8 m& u6 ~
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
- _& ^3 m. J% |4 N; E" e  z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-27 23:05 , Processed in 0.040031 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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