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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1215

积分

金牌会员

Rank: 6Rank: 6

积分
1215
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,
: h! @! L' c3 Einput mcasp_ahclkx,
( c2 H5 h! O* @- u& j3 x! n( H  X& linput mcasp_aclkx,
6 D( r( V" s4 Z0 [0 K$ Finput axr0,7 F, z8 S  w4 ~* u& H

" V+ s4 ?/ q/ q" U5 _' O; |  Poutput mcasp_afsr,
. ]" S& m  d( V7 I, q& J) \output mcasp_ahclkr,; ]# D" j+ y2 {& v" M) H8 S
output mcasp_aclkr,
& h( v  S& I( Joutput axr1,
8 ]9 ?; i9 C3 o, R" o( z
assign mcasp_afsr = mcasp_afsx;) Q- b) v! j# b! d4 k1 `4 ~. X
assign mcasp_aclkr = mcasp_aclkx;8 p* X. n' m' d' d1 T
assign mcasp_ahclkr = mcasp_ahclkx;
! W2 V  ^- B. x" z$ v$ _0 F+ |assign axr1 = axr0;
" s/ ^( i/ J) m
; j' c! P1 y( }" i% _7 v5 E' ?6 [" P, ~
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
0 g) Q$ w7 Z  K& w7 l8 U1 g8 Z
static void McASPI2SConfigure(void)' j% I% I$ V" c1 b9 ]/ ?
{
- B7 o( o( r5 I9 C/ D( B! N" hMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
! X& O% x/ j9 F. I& UMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
$ ~' @5 |& k" G: g6 Z8 c# rMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
3 Q3 I+ h  J. L0 D: K* o5 jMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
) L2 A; ^8 s- Z5 v7 K6 oMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE," I8 A- A2 a/ O7 e! a5 Y  O9 `
MCASP_RX_MODE_DMA);7 i+ p/ E+ \4 R7 q- z$ ~
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,. [4 ~8 S1 m' ^- d9 s8 M9 _
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
5 w# c8 e, C, o& F( Q% ZMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, 6 K4 ^6 d" |6 Z0 A, K
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);* N4 r% j% Y* k
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
* V7 P: R$ Z+ D! xMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */4 J# h7 N/ ~1 h, D5 x
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
- I5 c$ v* V* W& ?! SMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 6 M$ W( S% a/ g  W9 g7 t
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
; U$ k% s. m$ P4 ]6 R1 Y5 v0x00, 0xFF);
/* configure the clock for transmitter */
( ~% u( W3 t% _( M9 S7 f& UMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);9 N- f3 p3 T  x; |* E# V
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
) G. O# E1 Q' ?" u& o$ L, rMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
0 L) e( p6 J3 d, p5 m8 x9 w# s2 C0x00, 0xFF);
9 }, Q: q: ]& q5 M) t# c8 c0 j' F5 Q# r$ ?9 l" n1 ~. q! Z
/* Enable synchronization of RX and TX sections */
( O! f1 P6 ?$ }# a8 k4 b, iMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */1 U- Z7 I/ U2 i# A( Q$ T
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);* d- K" N  K9 V
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
, q0 i4 V& Z$ S2 H  P** Set the serializers, Currently only one serializer is set as
! G1 M6 S, T6 Y: e! j- ^6 V4 h** transmitter and one serializer as receiver.- N% F2 I6 O3 `, K0 `
*/0 w! {" K- j8 ^0 s
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);0 w; s' n* w1 l" s% [" X& Z
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
$ ~9 L- ^0 e" A. Y** Configure the McASP pins 1 t/ ?& `2 X) o4 t! f
** Input - Frame Sync, Clock and Serializer Rx! t' L1 T$ y1 b! ?) ?
** Output - Serializer Tx is connected to the input of the codec
! W7 n% b9 k* \- a! o  x9 r/ z3 j9 C*// d0 v- d: P9 V; j( x1 T8 V7 X
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);( B% N# H2 W  K; I/ Q0 f- ^
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));5 Q. i  A- ^: r+ L; L) \
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX6 b9 o4 r4 B9 y5 M, L; B
| MCASP_PIN_ACLKX# q% Z" O% C- X: H
| MCASP_PIN_AHCLKX1 F. f3 L" O* V2 D$ I& Y7 J. `
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
2 \* A+ S( h& ?' q* dMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR , y$ @% m' T4 k4 n
| MCASP_TX_CLKFAIL
$ z( f/ w5 X6 r- _4 v| MCASP_TX_SYNCERROR# Z6 u. @9 v, ]8 e; {: y  o' n
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR - A0 I# R3 U" M) M: G' A
| MCASP_RX_CLKFAIL8 q( w* m+ w) @$ {2 v5 ]: y7 i# j9 T
| MCASP_RX_SYNCERROR
! G' V# T: p# w1 B| MCASP_RX_OVERRUN);
' G* W7 h  b4 [, c# G# |' }' g}
static void I2SDataTxRxActivate(void)
4 A. D0 Q9 T" C{$ z3 p6 p0 H# q) }
/* Start the clocks */
4 \- `/ S( _3 }* L' tMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);9 h, D  m; n/ ?, R
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
$ w2 Q: M6 V0 A: L+ T( ^EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
4 N, |5 V0 b  e; o9 ?5 h  {4 o& TEDMA3_TRIG_MODE_EVENT);+ `6 s0 x1 H& V# ~  u
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 2 o; ~: F6 B: r2 ^8 I! u
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */, N" G5 P+ A" \3 S
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);/ I9 I& F$ I8 S# L
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
; W) Y0 b: N" Nwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */) ~7 D$ n! N' D4 w! H+ Q6 b
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
& ^, A0 J% Q" q0 {: V0 L3 ~McASPTxEnable(SOC_MCASP_0_CTRL_REGS);: m( }  M" _( W9 ]
}
$ \5 P: L/ a7 x% q, u( ^' Q4 q
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
' c  l8 J! j4 W4 k5 n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-24 21:04 , Processed in 0.040041 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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