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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10785|回复: 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 n: k- R5 i: ^- A) Z8 x
input mcasp_ahclkx,
$ @. T6 |  }4 iinput mcasp_aclkx,
# s1 T( S( l/ s6 Finput axr0,6 X3 n) f+ h6 V2 [

; u9 x3 l, M0 ^5 [output mcasp_afsr,' u4 i& o0 L6 H3 h
output mcasp_ahclkr,
" L: i& l3 P7 T# G. |" Joutput mcasp_aclkr,7 K( p* X' ]7 D4 G1 _
output axr1,
( n' [6 {1 Q# y4 H) P+ N
assign mcasp_afsr = mcasp_afsx;) L7 }/ Z9 F: V
assign mcasp_aclkr = mcasp_aclkx;8 b3 @- }* B, M3 X3 P' Q6 v$ i
assign mcasp_ahclkr = mcasp_ahclkx;' B3 Y4 ~5 o& E0 ?
assign axr1 = axr0;
7 c0 }9 _! b$ s3 A  x

# z! M- @# ?2 \1 i9 M0 N( C. z
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
: |" O" o% t0 ?& `3 @! u
static void McASPI2SConfigure(void)
' h  k% {! o+ j8 v4 F# v. T" n{
* j( W) U1 b$ A7 E. D$ J5 lMcASPRxReset(SOC_MCASP_0_CTRL_REGS);; z/ V) |! n& Q; l$ B
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
  ?0 X* B, B/ M+ b6 aMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);- I& j" h) ]2 {  k5 I$ n( P9 ?6 X
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
; l  n, L3 Y+ tMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
- b8 G1 B( s0 F+ j9 @MCASP_RX_MODE_DMA);- P3 d8 ]: x5 j9 e# H
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
$ B7 p4 Y) W  E( U; a; ]0 nMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */1 }' s- O2 d+ g/ k" |( R- i
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
( X; _& e) P$ e; P  TMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);2 S/ H& p$ G2 R: P  }4 m( p, `
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
& v1 W! d: R2 d% nMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */, n% Q" F0 u- I& _
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);: x. M$ X/ H9 V, f& H: D
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); " N  t9 o3 o4 l$ B- b3 Q8 }
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
: V8 ?5 z7 `( H0 P0x00, 0xFF);
/* configure the clock for transmitter */5 ?6 _# T9 r) ~5 j5 O% N3 T% n
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);0 T. @% g" O9 n6 g( g
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); ( G" @8 Q3 p" h/ M
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
2 L" T+ e5 k. O+ K) [% {% d0x00, 0xFF);
0 j, N! g$ V4 {+ @  Y. t6 ?; G
# D3 D5 ^, Y2 v4 Y6 Y2 z* ?4 F0 i/* Enable synchronization of RX and TX sections */
0 B1 f" K/ s( J! j. OMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */2 c6 V9 _5 G9 [) v5 |' i
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
; ]+ g3 x, l0 G& P! NMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
) D4 b5 b6 @8 z. M- H  f6 ~; K** Set the serializers, Currently only one serializer is set as
) S: r4 F# R, x3 M5 g9 l** transmitter and one serializer as receiver.$ c2 i: r3 Q  b: \/ ^) c: H$ n
*/
" W+ ^0 m: L& a5 q8 SMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
1 y- Z1 l3 `' J2 t& U3 W7 Z: [6 i- mMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
: C* {- T1 K+ R& M& h** Configure the McASP pins 6 ?5 l; U& k4 f) ~5 }( d' C5 c
** Input - Frame Sync, Clock and Serializer Rx
9 F& P$ _7 \+ |% j1 ?** Output - Serializer Tx is connected to the input of the codec
+ U7 g: J' p, L8 }" S5 y$ v% p*/
. w, }& G) s; K1 j# b3 SMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);" ~9 _; G, M9 D. y/ d2 g" @
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
7 T$ @  n- v& {McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX0 Z8 N7 r) `* T
| MCASP_PIN_ACLKX! ]! R3 J8 u  C( d1 V( {
| MCASP_PIN_AHCLKX
' K* P2 q" J2 k  || MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
# V4 [. F# ?; e; z, x  MMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR . b) y' p( [4 _/ D4 U2 ^! ]
| MCASP_TX_CLKFAIL . E7 H$ n8 W. S8 Z
| MCASP_TX_SYNCERROR3 q' m; G6 C2 j; H
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR ) F+ u6 q1 B9 _' G: ]$ V) J& c. _+ b
| MCASP_RX_CLKFAIL
! l% N9 ?1 z# b1 J8 N  C9 o; u; S7 M| MCASP_RX_SYNCERROR
- i! Y- `) j" ?4 F| MCASP_RX_OVERRUN);2 x; _- i+ C6 u% o& d( z8 U2 W( R
}
static void I2SDataTxRxActivate(void)
7 H  B8 {: L2 h! v1 O8 ^/ ^& Y{  k/ ]: ~7 e( o) k: i
/* Start the clocks */# [7 z+ k* X8 [4 h; J6 Q8 P
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);$ h) L1 m" E7 ?' I, j
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */. C& ?" c* G  C4 T! W2 J
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
: Q- b+ g; X% k3 M2 a% TEDMA3_TRIG_MODE_EVENT);$ C, d; k7 T: Q9 u' X" `* b# x
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
# Y. h/ z9 V  j# OEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers *// Y8 p* s' u; Y4 Y& l8 H
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
- i2 M5 L6 X% \* H: r' y: ^: s) CMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
9 }9 ~6 D6 ]- }' }* y6 y0 D( Twhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */+ H9 ?2 z3 i# Q$ S5 @  @9 u
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
0 ?" `1 V0 t7 D5 L1 [, h$ ?' fMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);5 }+ L4 i# A3 s0 g! X2 c0 r
}
& _) v, p* C( a$ ?- [7 i6 O
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
! w2 \0 q3 U# \# Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-15 20:38 , Processed in 0.041229 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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