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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10140|回复: 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 C4 G3 u; g5 p8 P; m8 V( b+ s7 }
input mcasp_ahclkx,1 q4 x' O# t- @" W
input mcasp_aclkx,! X1 ?& j9 t  l. o; z
input axr0,' Z- o  ]$ U/ W8 v$ a2 E  u0 |% ?* p* F
5 I: W; q* [; i0 p
output mcasp_afsr,
2 ^0 n8 x. `7 z% @' ^5 ^$ n& v" joutput mcasp_ahclkr,8 D9 I0 @0 _: j
output mcasp_aclkr,: L" H  x$ @- x4 F# ^( [$ j& C
output axr1,2 z7 s; c; X* M( y
assign mcasp_afsr = mcasp_afsx;" v. Y4 V0 z! |/ A( s- u
assign mcasp_aclkr = mcasp_aclkx;
) U4 }, n- x4 n3 Q( J7 ]assign mcasp_ahclkr = mcasp_ahclkx;2 i# H8 Z6 ^, K6 h. R
assign axr1 = axr0;
$ T2 O7 t% I/ H5 E
- G1 b+ n" }; i# [2 k) e% H
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
$ m3 z' c. s2 W$ x2 c6 v& U1 {
static void McASPI2SConfigure(void)
7 ~* @) e* H% B( y8 J8 i{( h  t) o* g, r4 x1 K+ g; r( [
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
7 O: h5 |  l# v( wMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
. I! i$ t9 `, p/ xMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);6 t4 ?" E- Z9 x! i( l! o4 e% l% k
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */. ]6 x! d$ x9 ~/ z( z; ]& N: C+ S' t
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
+ \% C2 b* y0 [4 D) uMCASP_RX_MODE_DMA);
4 }4 ~" L8 t9 n$ Y/ [' C+ yMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,9 P9 C( @1 k) G7 G8 N
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */% u2 N! C( X+ ?; C
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
- s; F7 i1 f& L1 i& h5 z  KMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
! H- `7 C2 W% Z% [' ^: zMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, ' _6 w2 b2 s0 R$ m
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */: m2 l. H! X* X& ?5 o" |
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
- X7 E- S0 t+ w" Y6 i! zMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); % c8 n+ C2 T, \* _! M6 j8 Q; b
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,# `& q! k: q; M/ |9 D9 n) B- {
0x00, 0xFF);
/* configure the clock for transmitter */5 T, [4 S: Z7 U! N7 v* _8 @% b
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);' _' f( P, u- Y. n
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); ' d8 @  O) N3 ~* c" d8 `
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,( b! g: r8 K2 ^+ N/ ?0 h2 N
0x00, 0xFF);
0 W0 @4 y, `! R  p; \) e, Q( D
! k) @8 w( I; S9 }: n/* Enable synchronization of RX and TX sections */ . P! r: f; Q; W: `
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
$ [1 g& M& R( x: C& p- vMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
% ^. t% E" R4 @% lMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*, j2 Q$ z( U& a3 K
** Set the serializers, Currently only one serializer is set as1 W. ]# G1 g9 c9 |5 F9 ?3 u
** transmitter and one serializer as receiver.; c* I$ H' u; }& ?7 f  U9 q! E
*/2 G% @) J; ]: U
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);6 ?5 U; D) D; k8 b7 u5 n# A- R! d
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
- d6 y) f9 M3 M+ _, x** Configure the McASP pins
  ]: U$ O' _/ D! d6 b! U** Input - Frame Sync, Clock and Serializer Rx
: `! p4 j2 R7 U1 w0 j) v** Output - Serializer Tx is connected to the input of the codec
% t& O0 [( L& ]9 F) {2 i1 T*/
" W2 o& P9 M* i( @3 ~/ JMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);% H1 r& z' o; {3 ]/ \( s$ Y$ t
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));! ]1 L" i2 B2 e* F8 z( n- P, @  Z, n" S
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX# ]; D; Y7 b. l5 M, q- j+ c- M
| MCASP_PIN_ACLKX2 R8 B$ [/ v) P
| MCASP_PIN_AHCLKX/ p$ B) W; C1 ^  m4 J8 \
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */, O4 E" R5 v% H; N5 h
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR 9 t  g- u: H) }. }4 C% ]
| MCASP_TX_CLKFAIL $ s% f, \, [6 I
| MCASP_TX_SYNCERROR
. q* h5 e- x% Q| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
  W5 p+ Q1 N8 @0 v) A! T) h| MCASP_RX_CLKFAIL# W. P: i- N/ p: t* f% S- C
| MCASP_RX_SYNCERROR
( y; k. _. B- \* o( b| MCASP_RX_OVERRUN);
; c  e; Y, E' i7 s}
static void I2SDataTxRxActivate(void)
0 w9 o8 x" @1 J2 z{+ H( R2 ~' q- H. O9 Y4 \7 P5 y; i
/* Start the clocks */
: d/ ^" t$ p  ZMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);" _3 W, |: s9 {" B- v" ~3 ^' x
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
3 n% m# @/ M' g, M3 WEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,4 Q8 B1 h+ U7 Q. ?, k3 B, m
EDMA3_TRIG_MODE_EVENT);
4 u; U0 f" o( A$ E3 U; _. W' cEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
# J& W: }( y( t: b8 XEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
) d2 s) G8 T. d0 ^9 KMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);5 E$ Y+ g1 O+ U5 |! o! d
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
7 q  z7 P' O! n$ o" @' rwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */* x- P* A/ T9 I
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
4 A; b( B! g9 j# \) nMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);; E: x& I2 [7 p4 l6 b
}

, [2 Y5 E2 i/ r8 e. ^) R+ X; `, p
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
5 A6 s7 \- q( }% q* i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-29 23:21 , Processed in 0.040057 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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