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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10342|回复: 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,$ n( J; F1 F! u! v" Q( R
input mcasp_ahclkx,4 |, j; d+ G& c" r9 i$ B% H: a
input mcasp_aclkx,5 `4 }! I! b5 |* F% e0 c
input axr0,5 F' I, D5 C) g

, y8 d! Y$ Z  t. j- \! ]+ C8 {6 ioutput mcasp_afsr,. Q& H0 v0 g( y( E* R& q  W# S+ u
output mcasp_ahclkr,1 f% H# }3 E/ w* u- [. N. B" D8 `
output mcasp_aclkr,
! d8 `" a3 A) m0 z) B  C8 ~output axr1,5 k7 o5 y# a, F# R" K1 T
assign mcasp_afsr = mcasp_afsx;
2 ?/ o  y. O8 _assign mcasp_aclkr = mcasp_aclkx;8 |0 }0 P* r( U% n, X4 s
assign mcasp_ahclkr = mcasp_ahclkx;
! s, `9 R) ~5 x' p+ Z8 [" Dassign axr1 = axr0;
9 Y( ?2 F9 l2 o
' Q. a# J' c, `! Q% k$ ], J" E
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

- P. s" ]+ t; g, h, b0 r& \
static void McASPI2SConfigure(void)+ W* p3 t+ o# v! }
{
* U  Q4 D! l% YMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
' {3 [( ^1 b8 ?: P1 v- IMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */3 A! Y5 y/ }1 c6 Z0 @/ B% h% l
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
. Y+ {7 w1 d3 |5 u$ d  x2 P6 mMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
6 L/ Y  t, R, n; [; t& \; Y) fMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,+ W0 l, C8 C/ H& t3 E* X* Q) S
MCASP_RX_MODE_DMA);* E* ~8 [0 u: g* Z
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
* d5 O  m  h) {4 w8 \! p( SMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */& J4 W+ d  }' Q# c) f
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, - c  ]8 G, S% d
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
3 d8 R& e! J2 V, ^McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, + g- }8 \: [; ], F+ x' G
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver *// Y% B7 R4 ~7 Z+ Z1 w
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);. L- Z# ^4 X: O5 j9 a& R) V& k/ N
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 2 M% {+ V7 ~. C6 a9 e
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
! |2 ]$ y5 \+ x0 {* L! x& f3 E0x00, 0xFF);
/* configure the clock for transmitter */+ k0 I  `  s$ ]3 ], s9 C5 m
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
: t5 ]/ c- T' z. KMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); ! l. q+ J: I" p/ ?9 I! D8 g
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
5 |. q$ ]2 l0 p+ D% J  k0x00, 0xFF);/ @' `9 \5 d6 L- y6 W. b
# T# h1 T+ d  J9 i  ~) ?
/* Enable synchronization of RX and TX sections */
* D3 R- [4 G: P7 Q8 Y3 dMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */+ d; s  m1 u. D9 K3 N
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);4 D1 s6 @6 m: u0 T! P
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
, n: P: M- U7 G  k+ ?* g** Set the serializers, Currently only one serializer is set as
6 `8 H* Q1 N& R3 C: ^** transmitter and one serializer as receiver.
3 Q" a2 T4 E* n+ |: H$ V0 C*/
8 O; j$ c% H$ W. v5 V& y  E$ DMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);1 n/ [& W7 X( g
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
% {+ N9 f1 P: X; G** Configure the McASP pins
5 C6 P+ e$ ?8 O* Q& H** Input - Frame Sync, Clock and Serializer Rx% z3 \0 ]' C7 c2 q9 `  u4 `6 I
** Output - Serializer Tx is connected to the input of the codec / E, Z7 b3 X* @* b: r4 @  f
*/
( ~5 A1 ?$ A- [/ F9 t' A2 fMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
2 X0 R" S# \4 ^: l+ V2 r0 X( ~" ~& @McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));: Z* y6 p, a5 q3 H8 J, [
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
/ N7 I( m7 p( A" q3 A; T# c2 x| MCASP_PIN_ACLKX
/ T1 v/ g! C4 n* D; ~| MCASP_PIN_AHCLKX& F" J" @! u0 i, b% l
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */* e$ q. _6 _. h6 P2 S7 ~. ~
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR , V. w: @! ]3 I4 E
| MCASP_TX_CLKFAIL
7 a8 t) T: N7 X| MCASP_TX_SYNCERROR
) g4 J0 M7 G8 u% g: z| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR - y; A$ C4 e0 x
| MCASP_RX_CLKFAIL$ R  F& |  K# l, w
| MCASP_RX_SYNCERROR " {$ \( B* u7 a4 {* M6 |9 \
| MCASP_RX_OVERRUN);
9 @. z: @& G+ Z+ z/ Z" v}
static void I2SDataTxRxActivate(void)
: S' n+ F- p, `" }0 @- r! \{
; O& H& }* l/ M/* Start the clocks */
- U/ W. d* s3 \( s* J6 RMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);. G8 b; L/ \! q1 c$ T: L
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
6 g& ]7 q/ p! [) K- BEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,, n( O. @. i/ @8 X7 v' u
EDMA3_TRIG_MODE_EVENT);
4 p/ A3 _# U' |7 `" y6 J6 l1 c* BEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
1 \+ |0 k6 Z6 p: c- G2 V; ~' XEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */5 |0 ?4 ^9 ]8 ]" p, q! D( w( G* w
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);# ^$ d; s. d9 T$ @# N, Z. ?6 z
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */1 w! n' u9 G8 {: l/ F
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
, a  h/ n& o. N6 O9 WMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);& _" ?8 [1 Z! f* j8 j* x
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);) p7 O$ T3 e4 T! T' N, i
}

/ I8 A% a( [9 {' j$ U+ ^, G1 k
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

2 @- q8 ^3 S$ m  A2 _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-4 06:45 , Processed in 0.040171 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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