MCASP自环配置。 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8435|回复: 0
打印 上一主题 下一主题

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1211

积分

金牌会员

Rank: 6Rank: 6

积分
1211
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,
+ k3 N4 Z' F8 e5 r1 D; ]input mcasp_ahclkx,
5 q% l7 ?6 V" B1 Binput mcasp_aclkx,
/ H# {+ y$ J9 Qinput axr0,
+ J2 o6 Q. |9 J- i" j
: Z$ n6 t4 z- Z; |0 P: V; c: Poutput mcasp_afsr,9 c" i- w, m# g9 J4 T  u
output mcasp_ahclkr,
4 @$ K0 v( i& ^0 }  z4 \, h5 f) Voutput mcasp_aclkr,
4 q5 t# x$ p  h  A5 joutput axr1," L- T* C# G# f$ r+ N; P4 S
assign mcasp_afsr = mcasp_afsx;
0 A0 k5 ~1 u- X7 M# \; iassign mcasp_aclkr = mcasp_aclkx;" Y( L5 i8 G1 \8 F+ y4 N
assign mcasp_ahclkr = mcasp_ahclkx;
* X& M" {; r: fassign axr1 = axr0;

/ n1 z4 l, ^8 a& L4 Q5 ~; n2 H' e) M: v
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

. s- M; R7 ?! b
static void McASPI2SConfigure(void)
) H7 u/ l3 H. f7 D7 u+ z4 a7 \  {{
$ u( M% s7 _$ L+ h% [9 H% KMcASPRxReset(SOC_MCASP_0_CTRL_REGS);6 y+ Z& B) v! E* P& B
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */" |" c$ u! ~! Q; H' J" H1 P. _
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
& ]+ u. J/ w: }2 D5 NMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
7 y6 z: L0 a- ^$ c: k1 jMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
) F! B$ ~8 B1 aMCASP_RX_MODE_DMA);
5 t% k- d  b9 u. g, rMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
& E  H' `" j3 d% o* }/ HMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */: \3 j$ d2 s9 w/ m2 G5 @
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
' _9 c* \$ D# Y7 z. u: RMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);% O0 E! n) P* e% D2 m3 d8 Y
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, # f' s: M  t9 d  N* l# P$ G& L
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */8 Z$ L) e+ ?/ H' E. y
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
' s% r, k- i5 \  z1 W' A( AMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); . ]% e- T( q/ T. b2 I, c
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
' `. ^  X! J& q% H8 O- v0x00, 0xFF);
/* configure the clock for transmitter */# r; {0 o5 O; `5 C; ~" [
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);7 L5 |4 [# _* n  Y
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
0 p7 O! e# i% W7 U5 }8 [McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
( \( x3 {6 V& d4 w' t) m- O0x00, 0xFF);, h, P: f3 s0 P2 V! S( ]- N

6 m& P; n/ i8 J7 l( e" [/* Enable synchronization of RX and TX sections */ 7 _% e1 c, R; P
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */4 U4 [5 |! X9 c6 \. a1 c% A
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
0 m* L$ _5 J: {McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*8 `' p: Q7 q' R& q* m
** Set the serializers, Currently only one serializer is set as2 X/ _: L8 x% I9 ]- j* `
** transmitter and one serializer as receiver.
0 D3 s$ c2 {9 D*/# h$ C6 t; a, x
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
  u; e3 D% S$ o/ p# G$ B- }/ xMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
" j8 ?2 H2 S; s, M** Configure the McASP pins
" U: ]$ `$ V( E- O** Input - Frame Sync, Clock and Serializer Rx
2 S; ]9 V9 F/ x& R2 }** Output - Serializer Tx is connected to the input of the codec + c& w8 P. W" d4 c  ~. `$ B3 N" w1 x2 O
*/
! e) T! g9 [( S. |' I$ f! ~McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
' o3 K. D6 e2 `9 _' N* WMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));0 c& p* Z( R: f- A' Z
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX' T2 h) l. i9 j5 B* w
| MCASP_PIN_ACLKX2 s7 Z  K* _0 h0 |; Y; }
| MCASP_PIN_AHCLKX
. f. H6 C9 ~) t| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP *// l4 ^5 W* n, v' C9 c. a6 I. ~
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
) r" b  H/ F6 W3 ]1 t+ r| MCASP_TX_CLKFAIL . ?. `% [6 r' U5 @& A6 ]( ^  Z
| MCASP_TX_SYNCERROR
8 b) S7 y! w  e3 Q  i' P| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
% K" H* e5 V; ?$ N5 T- H| MCASP_RX_CLKFAIL& r" w$ |  p% X4 n  M1 [5 b
| MCASP_RX_SYNCERROR 9 s4 c& ]. N' f6 h
| MCASP_RX_OVERRUN);. b  {5 O+ o+ t% t- e( M
}
static void I2SDataTxRxActivate(void)4 @7 t; B2 B( g% X
{; q& A6 N7 J; ]* ~; C; Y
/* Start the clocks */
* e* {5 l8 S& o$ I! O! w2 NMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
" b( L/ K0 v( i1 i5 {1 ^McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */& [. h3 ~- O3 Z, n
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,+ u( r- q: c$ R% i' K
EDMA3_TRIG_MODE_EVENT);5 i3 k" j: z* e
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, # q& s0 r9 O9 v  v8 b
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
: d$ B7 ~. U& ]# QMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);7 f  m0 n3 o7 [. Y( m! w6 r& ]
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */, Q# ?6 E8 t& e* i
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
+ h( `, a9 ^7 {, ]6 R; D; IMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);* y2 S5 q; N, h1 [+ f
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);& G& n) B: @# F# P
}

( C0 L. t/ g5 P: d+ _/ x
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

8 D* q0 g7 Z" A; I& M1 k4 t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-23 05:14 , Processed in 0.044888 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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