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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11600|回复: 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,$ E  ~6 M4 P& C$ d) Y+ c8 r6 I
input mcasp_ahclkx,
8 [5 `1 W0 B2 k! ainput mcasp_aclkx,+ m2 `& `3 N8 f) w
input axr0,
/ }* j# H2 ?/ I* I! D* [
. X( x/ A  v3 y& doutput mcasp_afsr,- v5 G& R0 s3 ^0 B- C) e) S2 K% Q
output mcasp_ahclkr,
, x# F4 z+ q; g# k  |& D, T2 \output mcasp_aclkr,
4 v( L% b/ j1 C3 L8 koutput axr1,- D; {1 ]) G0 z* A! z' @
assign mcasp_afsr = mcasp_afsx;- e; F; r2 e5 i# K9 w
assign mcasp_aclkr = mcasp_aclkx;
: \' A) K8 k% p, D, c  Iassign mcasp_ahclkr = mcasp_ahclkx;
3 n- u2 i: p5 y' X6 G* _assign axr1 = axr0;
2 V3 k& I) S; a

4 j% i' Q  N$ V' a- V
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
2 L/ _/ B# p6 P4 {& u, B% a- f
static void McASPI2SConfigure(void)
$ Y' K, A2 J" E{# U: C3 l+ r) s; k" |1 b
McASPRxReset(SOC_MCASP_0_CTRL_REGS);# H: f  D9 g7 b1 G
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
- ]9 |& C% E: _$ ~7 u1 c" r4 hMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
2 B8 T& \! h/ B+ h$ Y( v$ u$ Y) NMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
3 t9 F+ R- i- g  g$ ~McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,& v% R% y' i  d9 ?: }3 T0 b
MCASP_RX_MODE_DMA);
3 H) V0 v# S4 g3 G8 u" _& iMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,( e7 Y, j& I1 z& z# O9 K
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
, d8 C$ x! ]) X/ o9 L& ZMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, + I& w/ V& l6 g$ T0 C6 y
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);8 M( k4 ~1 O& A: r* @4 N' m) _
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, 8 L+ j7 F9 f1 s9 L$ I6 a
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
; s7 X; N! L+ c; cMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
0 r- E. M+ R2 ^McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
/ }; m, M- y# q# r2 r- }McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,9 q' j, d3 R% N! L' Y* l8 r" I5 a0 C' N
0x00, 0xFF);
/* configure the clock for transmitter */
; Q" x- i9 b0 @0 j: k) {2 yMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);, L) x, r' ]! T0 A1 Z' C( o3 \4 ^
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
5 D& P! v+ J  O* fMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
" H) W' h3 h5 T1 k) V& }- Q/ G0x00, 0xFF);
0 V4 H1 P, T- `/ ?7 z% t! J4 T8 K; q; C' T3 r
/* Enable synchronization of RX and TX sections */ & U1 A+ w0 ?' A$ U
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
! N% u' }# g6 c8 }9 D" lMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);- h/ j: A$ p/ |7 O! x
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
1 B# |  D, ~$ \; `( @** Set the serializers, Currently only one serializer is set as( U7 n: s, T9 Z! u+ A; s' [3 R& [
** transmitter and one serializer as receiver.6 f- h$ K/ v5 M7 C
*/
& {" `' k! B! xMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);2 D) b2 |0 ?' U' p; D
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
1 ?8 h1 X8 @  Z  E** Configure the McASP pins
5 S: n: U/ k! ~) G; d** Input - Frame Sync, Clock and Serializer Rx
% G3 R7 y2 B5 X; D** Output - Serializer Tx is connected to the input of the codec / ?" V6 {1 z* F3 @0 Y/ {6 D( g* q0 A
*/( e* W, O- J' g/ l
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
. L: U( I- C# _( P! s. ?2 M' R9 @# FMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
- X2 n- y( l9 y0 {5 e% HMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX( q$ X9 G3 j! d* P8 |9 h0 z& c
| MCASP_PIN_ACLKX
5 u9 [7 e; q) U4 a* p| MCASP_PIN_AHCLKX' b% j! |9 j* m" K! i8 v
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */. b  [) W! w9 g; a2 }& `: z
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR 3 e2 i+ a8 y# k0 b3 q# O
| MCASP_TX_CLKFAIL ; I& Q% O+ G& e$ v. H* X0 o7 v
| MCASP_TX_SYNCERROR% c* ^- f4 ~, M5 M1 ?. [4 {
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR ( R) u- h9 J/ s0 e$ g1 x
| MCASP_RX_CLKFAIL3 ~( p8 l0 y3 a1 f
| MCASP_RX_SYNCERROR
$ Q0 {& r# G2 i4 p9 S5 \! Y! N| MCASP_RX_OVERRUN);
) O& X$ L3 I. ]' C' w' P}
static void I2SDataTxRxActivate(void)
( r$ u5 A! M2 v{
3 |' {+ s7 a( @0 m) x3 n/* Start the clocks */) z7 N# D4 S; ]( Y7 {
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
4 J, m$ s! ^  O# RMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */2 \3 O5 n/ L# `' c3 n. F% @* }( n
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
* Q" q, N  D0 |- C6 ?! m) kEDMA3_TRIG_MODE_EVENT);7 u1 D; J( R7 x! q0 g3 ^( j
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
8 u/ o$ |4 F6 n% {" v$ WEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
5 s6 ]; o5 Q6 B; ^1 H9 ~0 S( `McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);% a2 t$ p: d: G; A* I
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */' @, X9 P; l: {$ d0 X
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
+ _, L% q& ^1 h3 rMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);: P1 W7 i0 s6 }& R+ Z# ~3 k
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);/ Q& A1 Z& k: }" i6 w& y
}

4 {+ n  d* I# d  M# ?9 w; x
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
4 w+ l" k7 B( S: B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-10 00:56 , Processed in 0.039691 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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