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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11532|回复: 0
打印 上一主题 下一主题

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1215

积分

金牌会员

Rank: 6Rank: 6

积分
1215
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,
& D3 C$ W  ^$ v# vinput mcasp_ahclkx,
$ y$ ]4 s& J1 t& A; l, l( V, Ninput mcasp_aclkx,
0 O" O) S- ?8 m: b# minput axr0,
: k) R: G! o$ m
- x2 x6 Q  C3 i0 A: _output mcasp_afsr,4 O+ O% a6 B2 t+ u5 h. W
output mcasp_ahclkr,
! |( g) B8 _3 @) Q/ m. {% ?' @( Zoutput mcasp_aclkr,
8 @; u/ }) ~: ]5 a0 foutput axr1,
- Q: J# N: P: e  X- g) f
assign mcasp_afsr = mcasp_afsx;
& n' g! r8 n0 ^+ Y" qassign mcasp_aclkr = mcasp_aclkx;
7 M, u% e- N% A3 F1 `8 a+ }assign mcasp_ahclkr = mcasp_ahclkx;% n1 w) {) F3 z3 h7 \
assign axr1 = axr0;

- P! q1 J, G- b. A
+ c- f5 f$ f2 \* R$ E- N2 c/ y
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
+ B& t7 m, D$ t8 X: i. D# j
static void McASPI2SConfigure(void)
% _* L( o: k$ W! r{. ], x1 V* o' {" Q
McASPRxReset(SOC_MCASP_0_CTRL_REGS);: [8 [; a0 F0 i0 @! @; K; K2 }$ Z
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */5 i1 ]# h2 ]- |$ P4 z
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);& E' W5 T5 x7 p6 u6 K* U
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
" u7 m) e3 V7 @  O; Q& WMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,8 O& w. ?( K3 _9 a* M. R
MCASP_RX_MODE_DMA);
5 N6 z/ j" n$ |McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
! z1 }: f' G- ~MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */7 {$ e, w& h8 J1 d& |; i+ N
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
* |6 e# d- U4 c2 o9 G7 ^* tMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);- Q& h4 O5 {. S
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
; z  }. y/ B+ J3 Y1 xMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */# X9 \. o5 Z: v+ z$ f* `
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
0 ]# y( `9 G. i6 h5 JMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 2 d8 m" {( b$ w1 g
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
* O2 g- w8 Q; i" B; o' U' q4 s6 a- ]0x00, 0xFF);
/* configure the clock for transmitter */; w" C, u1 I. g  h
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
1 m2 ?: p8 o9 a# X8 HMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); 1 x/ e# s2 x3 ^- S8 k. H
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,; Y# x" {# `& X9 ]& }
0x00, 0xFF);/ M  S% ~$ o; `- H# L. Y* c7 G( i6 V

# j. Z: ?- @" o( [) o) S# |/* Enable synchronization of RX and TX sections */ . C6 e5 w- V( g2 ], Q  R2 M
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */: D1 ?- f. u9 x3 e
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
* O, G2 Q5 N9 m% `. k/ eMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
* A7 Y$ I6 a# V% _' S** Set the serializers, Currently only one serializer is set as
8 |2 d+ N  T* q# w  G** transmitter and one serializer as receiver.
; l, f# X& I/ J0 e*/: |; s- M! H+ I& i# g9 y
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);2 A/ }) v# a3 H7 _6 i5 ?
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*4 L! q, v) y) e# n) Z5 p
** Configure the McASP pins ) A5 Z/ H& g) p# j9 Z+ J' v
** Input - Frame Sync, Clock and Serializer Rx) w! h8 B$ b) F4 U6 ]
** Output - Serializer Tx is connected to the input of the codec
5 b1 s! ]9 C6 X& r4 B5 ?/ u% G*/
( J5 C# C9 U+ J) p+ Q7 FMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
# o( \5 }3 W. _! `0 \6 qMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));3 \/ t. L* @0 y7 j
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX" B5 Z8 |, q  s1 t
| MCASP_PIN_ACLKX
- W% q4 y. ^7 r8 e0 K& }, r| MCASP_PIN_AHCLKX1 B# O# n9 ], k
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
) u8 _+ L# Y; f+ @6 @, @McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
5 ]; _, m: \" B0 D) ?+ f| MCASP_TX_CLKFAIL 6 p/ i5 n  T; f9 ]( y- J5 y1 ~
| MCASP_TX_SYNCERROR
" s: x$ z; \1 b* G3 k+ N- {| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR & N9 b$ l; q  ~9 d2 d/ U
| MCASP_RX_CLKFAIL# l5 c# o4 I# Z$ y/ X
| MCASP_RX_SYNCERROR : g* y, y5 y" j  J! m" y! ?" U
| MCASP_RX_OVERRUN);* F9 T% e! ?8 k5 t* P
}
static void I2SDataTxRxActivate(void)) Y" L' x" n3 ?7 m- G: l
{
( v# A6 X' n( j5 X% t# x/* Start the clocks */" h, H$ g( Y2 F
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);( m/ k8 `* f* L0 M
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
+ a5 e$ J1 J- j9 PEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,, v6 s6 \: e8 t- z8 e, L
EDMA3_TRIG_MODE_EVENT);
3 }, ~4 Z4 p( C* I  i; R, rEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
/ w. g1 {% e. K2 ~$ \, N4 LEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */+ k6 z* A" K8 o3 u' Z' z
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);5 w4 }8 A% y2 e# M' w
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
# B* |+ j, ^/ f) uwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
, G  U  I3 ]! x4 y: ?McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
& s( f4 _; F3 ]7 HMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);$ g5 Y1 y1 C7 ]$ }9 L9 Y
}
9 P" o) L% O6 t# }  e3 j  j
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
. N6 L! k6 K2 p. y4 H
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-8 05:07 , Processed in 0.040380 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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