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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10315|回复: 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,7 ]4 L* I( ]3 {1 o
input mcasp_ahclkx,
8 i) H" @! z' h/ z" E, {; v( n2 {( Winput mcasp_aclkx,4 S& K$ ~. m( `& V! L. v& J* {1 G
input axr0,
" L0 ?" v; a  s9 z+ l1 ~* ?$ M6 P6 `
# B6 f% c& _) P4 y  s$ f, coutput mcasp_afsr,& S& ?% S0 o# ]* D; _2 b
output mcasp_ahclkr,
  |( [  \  t- ]3 |3 @output mcasp_aclkr,
- Y2 c- }- ^% t9 ioutput axr1,* N- i* [% u: J/ c
assign mcasp_afsr = mcasp_afsx;- v4 Y9 s, w6 J1 O8 `$ s
assign mcasp_aclkr = mcasp_aclkx;3 s0 Q+ P! A. H. D# u) ?
assign mcasp_ahclkr = mcasp_ahclkx;: B) \1 @. E- C- W( `, o8 D
assign axr1 = axr0;
# U& v* b. ~" s9 n4 d* Z7 t
% ~3 M0 ]+ `0 }
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

* f5 a+ \5 y5 I5 E' n$ j
static void McASPI2SConfigure(void)
/ _- ?  R/ k4 L+ I4 T5 M* l( H{
% K: u& }5 R$ w4 Y; l- s4 x0 W; H- jMcASPRxReset(SOC_MCASP_0_CTRL_REGS);5 I- r. d+ k, P; j! Y6 V. F% `
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */) C. S5 h5 h$ H: L9 A  f2 s1 r, C
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
: b& h5 `4 R7 z$ Y% g$ \) f1 u0 f" A! kMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
4 S6 p! B9 D( \3 D: bMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
) `3 }9 t7 b% D3 R' uMCASP_RX_MODE_DMA);+ t9 p6 x/ N/ c" c9 L) E1 {
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
" ^8 R) e( C" m2 E+ eMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */; ^- f- E) a, ]2 h
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, / N' t1 b2 Y: l( |! Y( S
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
. }1 }4 i- t' _; q& U. i7 n/ U! zMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
$ K6 b: |2 {/ ~% r  }MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */; M. z5 d! \+ R& p) h
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);: O5 l2 J# \/ [7 R' M
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); % d$ k/ {8 h' Y* j5 z+ i5 `# I: e
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,; S- o+ N$ Y1 m4 a  Q8 h
0x00, 0xFF);
/* configure the clock for transmitter */* w. r+ ~, Z0 t, s  ]7 Q
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
% y; m$ C3 {6 r; K% z6 qMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
# `2 k2 h! p; _McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
! b' T3 x* m! O3 C, Q; _! T4 T0x00, 0xFF);! z: \' d! j; J3 f* e

/ f, Y! o' x. h& }4 N& ?/* Enable synchronization of RX and TX sections */ & e" s9 ~- v% W) F' W: A- J3 X% q1 d
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
: e% A7 F9 B& `$ @! qMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
8 I  x& V2 H: D$ |9 }( a* |( L3 bMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
, Q+ I0 m, F8 g/ O" M) R** Set the serializers, Currently only one serializer is set as# r2 z# Q: ^& k. Q4 o' k: E
** transmitter and one serializer as receiver." ^9 R  [2 g# s/ S; m- m3 h. n
*/5 w0 E. S) O+ e& T( ]4 j
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);9 H8 m) M" _: i4 q
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*5 N# D: s7 E" h) P' U* J. t
** Configure the McASP pins ( t4 C0 I; d9 U& `
** Input - Frame Sync, Clock and Serializer Rx
: R% I& l6 Y. ~) F4 {( e9 q0 U** Output - Serializer Tx is connected to the input of the codec
3 {" G; K3 @) Q* h/ y# {% [*/( N; l5 x, A. O: i8 ^
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);( v* F! W/ M9 d6 o2 d1 H
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));: T1 F8 Z( v- e' m( J% e
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX6 V7 x5 E" p7 a. V  q
| MCASP_PIN_ACLKX
% D2 I4 K- n, E" w  x& x; U- e| MCASP_PIN_AHCLKX
( e' u' U, i* Q! [# {| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
: ?! A! e* t$ X8 b" SMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR " R! A& C/ H" p. ]! F
| MCASP_TX_CLKFAIL ' V* ~/ `. _& `. U, n0 X# }
| MCASP_TX_SYNCERROR
" \* Z: Y  {! b* x/ k3 f| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
$ b+ U9 r+ E5 `+ A% I| MCASP_RX_CLKFAIL
& T/ ]3 }0 ?- s* E3 L6 {% h4 D5 g9 P| MCASP_RX_SYNCERROR ; w/ _% y: ]. j
| MCASP_RX_OVERRUN);
5 |2 ^: E$ W7 P7 u}
static void I2SDataTxRxActivate(void)
/ D7 L+ ^( w! a* g6 F& W: `# J7 H: a5 X{* [; O3 T3 C- g$ S, f! Z- ?
/* Start the clocks */
0 W- f/ [# x. d( d0 A% lMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);+ B% D  v% D0 F2 Z+ `2 Z# ^
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
; ~0 U% }8 V* vEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
0 x8 N* w( Y0 L' vEDMA3_TRIG_MODE_EVENT);
* i+ w; j! Y3 E" `; r. @7 M: C4 tEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 9 V5 t0 t1 A4 e; V: f6 T* H0 a
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
/ ?/ |/ }5 r( S7 @( d( NMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
" O- ~* y8 U$ y! y8 `McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */" p% I5 W8 O2 g6 F! I9 t. W
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */) B4 l' @, ]* h3 c  k/ U; Y
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);4 s' f: r7 F$ u; d( r
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);# u7 Q" u! R# E
}

4 ~1 L1 j% U- _# U0 j' x! [
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
# q, }( c* `1 Z, K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-3 12:22 , Processed in 0.040063 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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