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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10645|回复: 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,3 n+ u; ]; u1 j
input mcasp_ahclkx,
6 k7 A4 `- y( d: R# V9 Y5 Qinput mcasp_aclkx,# b; a0 v! A4 ?( u; [: b. U7 K$ A
input axr0,4 B. ]" X3 }& t8 N2 b

* v* u& U, w( a3 x+ e  s' Loutput mcasp_afsr,
' O  \+ X4 h+ t% Z# i8 ~) Woutput mcasp_ahclkr,5 y' e6 A  o0 H4 J) E0 D! B
output mcasp_aclkr,  [! H* \+ L3 O0 P: S- u  B) L
output axr1,, G: w7 D" l6 O& n: N
assign mcasp_afsr = mcasp_afsx;8 b- F' K0 C, J" _" Y+ ^( I' j' E
assign mcasp_aclkr = mcasp_aclkx;2 ]' _6 w  v3 o7 B' |
assign mcasp_ahclkr = mcasp_ahclkx;' [9 M) ?! [  {
assign axr1 = axr0;

( V* F$ B  j, `1 A9 p6 c6 T, o' E0 A  D- z; v7 c4 L# X; ~" c
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

& m+ C2 ^) r  U- v3 W1 H
static void McASPI2SConfigure(void)
. }9 A  J6 u# K* a$ d; W{
2 N- B- S5 C- r4 yMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
5 x$ Z7 U) G7 HMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
6 X( K6 Q, C! R' k' eMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
8 p8 V' B  T) ]McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */5 e& C  G- o& y# O3 ?2 `
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,$ A# Z) X$ r4 P0 J# E) f
MCASP_RX_MODE_DMA);
- {5 d) o3 R$ o& [$ lMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
5 |) l0 x# u! c- C" V8 L9 o: p4 UMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */3 g+ H* @# B+ Y3 h: [/ g; V$ r" z
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, & a# q+ x1 t9 a
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
2 w5 k) N7 p' b- ]2 C. M& e7 O, {& N# t9 IMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
4 F0 z/ j+ |; t) O3 ]1 d: A; eMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */- h. r+ e5 U/ ^1 {) o
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
4 r0 N4 ?; _& g/ {% BMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 3 k- v9 F. C! t+ ?& v8 T* N
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,$ G) K# C3 _$ ~) z  o
0x00, 0xFF);
/* configure the clock for transmitter */
  V/ @/ R! y+ v8 r$ ^McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
( t3 t1 d9 m: d) q/ I- k; AMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); 2 n- k6 p3 z" @* j& N
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,& @. w' W( @5 d5 P
0x00, 0xFF);5 q  Z# L, z& e' K5 x6 `

- }+ ?  W) E& a( F/* Enable synchronization of RX and TX sections */
( ~7 w+ q$ p/ I! F; t3 iMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */! s: g" P3 G7 r7 K: g
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);- E. a$ I6 X' ~
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*8 e8 r1 T* P% t# G
** Set the serializers, Currently only one serializer is set as
* N7 W0 M# W$ A& b  C5 J5 K; [** transmitter and one serializer as receiver.+ i# z# q2 o4 V/ O2 U4 y
*/3 r1 T2 @* i2 X# i$ o2 x
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
# @# R# ?4 A2 R6 `: T. n* y: LMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*5 d+ s% ^8 B5 y. z: B, T7 t
** Configure the McASP pins 5 ?* Y& N, p8 q7 F0 [
** Input - Frame Sync, Clock and Serializer Rx% u+ h$ v$ @! l
** Output - Serializer Tx is connected to the input of the codec 1 ]! u. ?5 O) e  s( o, m: i' [
*/
7 J. V8 h+ w5 Z- |! Z( ~McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);# P' A& x" h% o6 q
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
% J( l; P) w3 ^( BMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX( F$ [7 M, l' \- Q& |
| MCASP_PIN_ACLKX
1 n5 U7 h/ U' C  g  S( X| MCASP_PIN_AHCLKX
& ~; X9 _2 l. D| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */6 Q0 G7 r8 d2 G; k
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR # M* {$ M$ K' T$ M$ t
| MCASP_TX_CLKFAIL + j0 v' o( K- ]0 s3 o) \
| MCASP_TX_SYNCERROR
/ O5 [- [& F7 e7 q5 J, o2 {| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR ) O, m! L4 B5 o3 v. \1 s! V2 t
| MCASP_RX_CLKFAIL' w# Z2 x# W: r5 X9 M
| MCASP_RX_SYNCERROR
; Q% S) v5 a$ F( S) {! n| MCASP_RX_OVERRUN);& \- u+ v% C, S) v6 o- O  R
}
static void I2SDataTxRxActivate(void)% T/ Z5 H  h5 c' b
{
. [+ m8 r6 D9 {. D+ d0 ?/* Start the clocks */
! b( z# o& |3 f* ?McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
" o9 Y6 Q& }& Q6 n- ~McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */5 _3 B# ~3 D3 Q! a% K" G1 ~1 @
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
7 w  T* [; r, X5 LEDMA3_TRIG_MODE_EVENT);
* E4 d- A: J- i- oEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 0 K' Q# A; R; E5 L
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
1 p% h4 x5 f  I/ w( qMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);+ M. R5 v5 S+ h1 n
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
9 M6 o& O/ U. X; |while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */$ \) f. D; \/ V
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);+ W9 i1 S, z/ Z% [
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);0 \" m5 c" W0 Z' r! a4 {9 b  _
}
# ~% {$ f; ~8 w  b5 \0 x9 F
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
9 \8 o& @' k" _' N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-12 01:04 , Processed in 0.047972 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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