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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10392|回复: 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,
# s/ f  Z+ A. y; ?$ A# `! E! W) tinput mcasp_ahclkx,: m- h1 Y+ w# }$ T8 q
input mcasp_aclkx,: b1 t& ^8 J* t( u2 Z) `- R
input axr0,+ M# W$ \% G1 F
# k: d! G* J1 A! \9 X
output mcasp_afsr,
5 s  x! R, U: ?! n% b# `+ U# d( ooutput mcasp_ahclkr,+ z' V, V0 t3 R3 [- U" Y  C
output mcasp_aclkr,
: N2 o& A5 k1 V- W) `/ Eoutput axr1,1 G4 F6 a& F$ }. R2 X
assign mcasp_afsr = mcasp_afsx;5 B8 S, E6 }# [! E8 i% F
assign mcasp_aclkr = mcasp_aclkx;4 @! b) t1 X$ r4 b, M, ]! ]4 p
assign mcasp_ahclkr = mcasp_ahclkx;
9 n+ T- ?( W1 B4 L# |assign axr1 = axr0;

. D4 ]' n) y7 F
/ _& v# _; \. q9 D" p2 m2 R
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

, ?, `5 `3 c; v# n( H1 l
static void McASPI2SConfigure(void); Y$ e5 t; _( v; V, c6 x. \
{
5 |" B# I: a9 W. M1 s% Z& ^# LMcASPRxReset(SOC_MCASP_0_CTRL_REGS);/ q( @/ B9 n; J0 i1 ?& ~
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */# G9 f) v9 D; e' E- j, `
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);5 z3 N6 ^" h; d' ~
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */- U( h- |9 T; g0 p9 O. m8 H# i
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
1 t5 t" g1 D8 Q; _" fMCASP_RX_MODE_DMA);- x* o5 @& j5 e! p
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
/ h' G# i( Z6 h7 b( B! LMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */  q# e) b. C) B* n+ N% s5 U
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, 3 x! t; B' ?" H0 h" y( K2 B8 g: [
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);2 M8 t% U' Q8 f/ `" g! |
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
; a- W  z0 P. s4 k6 UMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
) A7 s9 c9 }4 A; X! ^5 pMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);) z  ]# H) [, d# t% G
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
( L  |3 H( _, u5 z0 U" r+ r& y, jMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,& F: P) `; s+ E; x$ b$ \0 I/ N
0x00, 0xFF);
/* configure the clock for transmitter */2 q$ V4 C/ v/ ~$ o3 o9 C9 V" x6 d4 l7 u
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
+ q3 D2 w" C, C) S: NMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
6 c' e% X) m: O: j  MMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
7 o# l6 m. Q1 b; V) |. D0x00, 0xFF);* c  ^/ f5 x% T- B: @) A
) x) A$ H( F! K
/* Enable synchronization of RX and TX sections */
' J3 O9 T6 ~" P. JMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */4 b$ ~- e! A1 O! n, T7 @2 s* y
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);2 d; X8 G7 q/ d* V" g- N/ _! B
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*$ ^; {1 Q4 K& k( V) z7 \# H
** Set the serializers, Currently only one serializer is set as( X/ j7 U2 _0 W# w
** transmitter and one serializer as receiver.3 |" A+ m! `+ X: `3 H
*/
8 N3 A7 {6 X- jMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);. Y8 t( f2 B$ A/ w" x% k
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*$ u: z# r3 C$ O4 _& u
** Configure the McASP pins 5 I& V  z/ S+ F0 E  Z' f7 v/ T
** Input - Frame Sync, Clock and Serializer Rx. T) c0 J3 B) p: e9 O
** Output - Serializer Tx is connected to the input of the codec , Q5 V5 |2 a3 `! o0 y
*/
. u. f8 e+ f4 K' d2 mMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
, T- U: C! E) M9 A$ i2 ^) O: MMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
1 w$ C5 p3 F" n( dMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX; A4 _" \& i7 A) o
| MCASP_PIN_ACLKX
) g2 x  H. s! f| MCASP_PIN_AHCLKX( I& H; {. G3 u1 Z7 U
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
% C, J* i) c0 m' R" RMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR / l6 G+ B. ^: i4 ^# t2 }) B) V
| MCASP_TX_CLKFAIL 1 {' N/ l3 I8 _1 r; k  U4 \. x
| MCASP_TX_SYNCERROR
2 Y( Z2 W2 Q4 S' _% {: d- g: }| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
. |3 Y* w# u" G( }4 H6 q| MCASP_RX_CLKFAIL( d$ i# ?& H& R( ~/ k
| MCASP_RX_SYNCERROR 1 ~% u6 [& }$ Z5 A
| MCASP_RX_OVERRUN);
, p! p1 ^$ A% m& S}
static void I2SDataTxRxActivate(void)
- Z& T& {! i; W3 s, R& z% y/ o{! x# ^% k$ V, Y9 B0 }) c/ Q9 H$ Y
/* Start the clocks */" |* y3 V/ j; l
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);, O4 F+ N& @7 t: P' y3 l
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */" u; F- `6 F+ j4 G) h1 W# c0 Z; d
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
$ {, ?6 L3 S, D; GEDMA3_TRIG_MODE_EVENT);
4 y! d# S8 V- K. @0 r* HEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
' p/ p( @% r' P6 E' N1 `/ u# nEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */. }. M8 f$ A) x4 z# _
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);- ~, Z3 S% O5 }; l7 v
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */0 V$ W2 V& g  j) U- _& l- m6 h
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines *// b7 S4 }- R! T3 r7 y- c
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
; A5 e, X1 {& z& A4 [/ t4 r9 dMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);; Y( Y5 C/ w4 g# O2 h/ t! B# D- L
}

. y$ ]/ F* i) d' ?! i2 F+ [/ \6 X
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

* w& G, _" A2 ], |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-5 16:11 , Processed in 0.041301 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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