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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10838|回复: 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,* ^1 F/ C, G( D7 X% |" E/ p
input mcasp_ahclkx,
+ A5 H0 E, u" {, y: Uinput mcasp_aclkx,# V! @( X! x) e# |) f  E% }# f
input axr0,
7 b8 @* x1 w9 F+ F' {' b, c! ?* ]9 d' y) A1 p6 i) e; k9 `
output mcasp_afsr,  @, c8 h; W( u' \- M1 S0 H
output mcasp_ahclkr,/ p  u2 a' y8 H, l
output mcasp_aclkr,$ j* k: @- n5 E1 ^7 N2 o6 ^% C& M
output axr1,! o# n5 C5 F. L: ^
assign mcasp_afsr = mcasp_afsx;
. }+ T& d0 z4 k4 S% M! l/ Sassign mcasp_aclkr = mcasp_aclkx;
) k/ ?2 L$ e' C+ R& dassign mcasp_ahclkr = mcasp_ahclkx;
' E+ y1 W4 l8 I0 S; t$ \  Kassign axr1 = axr0;
; P3 f- M- H4 |0 S

# Y, M/ h9 E, z8 l) |# b; f" N7 ~4 g7 I
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

; {7 w# g" z% f
static void McASPI2SConfigure(void)
% V9 x2 a: x  s2 K& r' t9 d* d: |{0 ?0 I; r; O0 p: t& E! p# u
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
: E' p9 Z; s& f* {$ R1 RMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer *// F/ O) W2 f! p! _' y' @5 a
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
9 X. R+ L! L8 [9 y0 lMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
7 k* ?; T$ T& v  X" ?! BMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
0 r( a( V+ V% z! nMCASP_RX_MODE_DMA);9 x( \6 H% I( A3 M: b2 `0 F
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,: B7 S7 ?: D+ d+ e: N( H
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */) Y5 z* O/ A; Q0 U' T
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
, z$ Q/ g. W1 z0 G8 F3 zMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
2 N/ g' U/ a. TMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,   y6 W! J' H6 v5 M0 m( l( R$ b9 h
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
, W5 z3 N) N- Z% nMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);4 @4 p( h4 ]+ J( a8 c
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); , A9 K8 E' e% R
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,; k( A+ s1 e! Y) f2 F' \
0x00, 0xFF);
/* configure the clock for transmitter */
/ c' D- U" i9 ~2 B9 X9 T' ]* ?  I- EMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);  J1 H* d6 p) B. Z" Q8 Q2 d
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
- S: @# k( _" N4 ^McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
/ Z7 w& G- b. l+ E$ c2 K0x00, 0xFF);$ G8 W. k- A% ~, b& I7 Y; m; @

/ N/ i9 b+ s) v1 `2 G: S/* Enable synchronization of RX and TX sections */ 0 D1 m3 o1 A8 f/ w2 R7 \- H
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
: j) n+ k9 p* [+ P- S. d: x5 GMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);1 F* p, I) }0 q3 k
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*+ i" m2 N1 J  Y2 l7 ?
** Set the serializers, Currently only one serializer is set as
1 _) r" t( e1 r** transmitter and one serializer as receiver.9 x* `6 T( Z) o2 P
*/4 S6 o1 q8 [' A8 F
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
# D: E7 i1 d7 e5 z7 `7 uMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*. Q! d; d- J2 C
** Configure the McASP pins
2 R& }: c. k% N  b** Input - Frame Sync, Clock and Serializer Rx* r2 p% V3 \* }, z5 c
** Output - Serializer Tx is connected to the input of the codec & S( B8 }0 u  w% s2 H( \; a+ L
*/9 {. P& Y, }, H. g2 D
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
  s, Q) |' @0 h$ b  @! rMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
! \5 l4 z6 G4 w; j5 B8 M& dMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
  \. C: @) y/ z3 A2 r; t- j| MCASP_PIN_ACLKX
8 h! `0 J$ g6 v" i, a| MCASP_PIN_AHCLKX( m/ _$ ?3 {& p. K8 G) a; ?
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */: s3 j( C& @% @, d) z. K7 P
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
2 y1 d& F6 g* T| MCASP_TX_CLKFAIL
7 D" w, v' o5 I' w% l| MCASP_TX_SYNCERROR
* u. I; r/ X0 U5 n9 m| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR 8 G) t& I/ j; f. X) Z
| MCASP_RX_CLKFAIL
" c7 @, b5 W# \0 V/ P/ }| MCASP_RX_SYNCERROR
1 g; d3 D) {* C- G' S| MCASP_RX_OVERRUN);
' ~  y# e2 W0 t) M/ ]. p1 X}
static void I2SDataTxRxActivate(void)
% f% u8 F) T  C! w{' s- G6 v  F; {8 A
/* Start the clocks */
3 e! N- f2 {4 n6 ?4 D  [8 Z+ gMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
/ M: L9 R( r. V. m& |6 E3 i2 j, c2 [McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */$ X1 ?# Z5 p5 x; W7 l0 `
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX," O, D: `' w6 o) I3 m4 B" T
EDMA3_TRIG_MODE_EVENT);; l4 v  t) e5 j8 V3 N* ^
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
% f) `8 G3 U( @0 Z& x( A! z1 C, k/ lEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
5 c6 u4 z2 e$ J6 b5 R3 zMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
/ S& u3 K6 u- c% rMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */4 o! q2 u% H" D& _
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
. Z- Y1 r; Q$ dMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);
3 y/ h# T; X" X5 p: `, rMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);
4 ^$ `$ [9 h2 X! W2 M7 _& ^}
( s0 U. u' S, ^' o/ D/ E" u
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
0 B& @4 L6 }, g" B' x9 [7 n; H6 Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-17 04:01 , Processed in 0.041485 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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