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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11630|回复: 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,- _) M7 ^0 }8 ]7 G: Q
input mcasp_ahclkx,
: A6 b* {4 z0 d# W3 Qinput mcasp_aclkx,5 |9 a1 i, K  C$ J
input axr0,; r4 M& R0 [7 V. O

7 B) F- ?$ u- A- H' loutput mcasp_afsr,, A" ~% `. D: F3 ]1 {
output mcasp_ahclkr,5 W$ i5 Y! l# L$ h9 q
output mcasp_aclkr,
; F5 h3 ?+ W; P% T$ v  moutput axr1," s$ U1 W0 n  F( X2 X
assign mcasp_afsr = mcasp_afsx;
, t4 f6 m* d# H8 ^8 iassign mcasp_aclkr = mcasp_aclkx;
& c# l; x2 i2 Q' ^1 `assign mcasp_ahclkr = mcasp_ahclkx;/ a  x! j; I1 T* X- F$ G
assign axr1 = axr0;

$ D1 d& Y* E4 Y7 v& A  Y3 m- J
3 f( a6 }9 s- ?& u  G
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

- h. W) k+ K$ g0 ?, ^
static void McASPI2SConfigure(void)
" P  ~# z& x  e0 v8 q" ?8 C8 M( x{
) s0 t5 ]  O& r5 Z. YMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
' ~/ A* p; {8 R1 r0 OMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
$ @" S. n) x4 J- EMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
) R& S1 z" I9 H/ L; \$ EMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
- M  d' x3 ^+ Z5 f$ _McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,6 ]! ^) ~. v! W& M0 Z, b( E, U6 x
MCASP_RX_MODE_DMA);
+ ~1 U: w& O( \- E! M: {McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,: y( p' R/ N: \* J' Y
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
7 w& ~3 U8 \$ hMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
% M7 M6 _! ]; K- _MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
% g/ `8 j7 I% E: ?, Z1 N( I& a+ ~McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
( L. \6 G. z( E% B, s6 ]MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
6 q; F( Y- p( l/ B! P1 \McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
) @6 I  g9 E6 ]$ \" y% V$ d8 YMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
2 T- ~9 Q0 Z! R9 Q; ?/ l6 n' WMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
/ L! ~/ b) Y5 ~6 S3 v7 @0x00, 0xFF);
/* configure the clock for transmitter */4 Q! U- E$ Z, k/ c
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
6 v5 Z' P3 ?4 l( e" vMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); 1 [; J9 w4 @. c* M+ M( r
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
  ^6 s' s" |" c! k# w0 [4 Z) Z2 H0x00, 0xFF);
3 S; p. F  B! @7 G2 ?3 u
! p  l9 N7 M4 c& ?- r* Q/* Enable synchronization of RX and TX sections */ 5 s3 B$ K" W/ u
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */. s& [3 _1 I9 B  g1 \) W8 w
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
  G8 U  Y+ R+ a4 @  zMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
) J: L4 f0 e: {# X1 C0 \. Y% c** Set the serializers, Currently only one serializer is set as
3 K) f0 K, \0 A9 w" I** transmitter and one serializer as receiver.
- F* B7 y7 G: Q/ n2 Y  |, L# e*/( {0 |5 {/ |9 o" @( R
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);1 d5 z7 Y) J0 X- [
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
. n: U/ j: D; t4 `( B5 O** Configure the McASP pins 9 o. r& v& x0 ?
** Input - Frame Sync, Clock and Serializer Rx
% K, p5 t: q. \** Output - Serializer Tx is connected to the input of the codec 1 f+ t( I6 y/ z, X
*/$ K$ u) U" Y$ s. M
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
  s: Z- B7 U1 b1 Y4 C. j6 b" ~2 oMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
8 U2 j9 _! q) x/ |7 _- I% E8 yMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
- L# i* j  Z# G# }| MCASP_PIN_ACLKX& E# O, p. A# s( R7 Z( q: I
| MCASP_PIN_AHCLKX) T7 m; U/ s; g% n) Q
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */" I- K* H) m" H6 k6 l! \; k. ?
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR 4 T% t( O) @$ `4 H# d2 H
| MCASP_TX_CLKFAIL " X" _9 J2 k0 v1 f/ w
| MCASP_TX_SYNCERROR$ M& }4 T) z2 ]! J9 E0 v& m
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR 4 @8 ^% F$ m* K# [/ Z: p! t5 }
| MCASP_RX_CLKFAIL8 |+ R$ }1 c3 Z; w2 ?5 o& v
| MCASP_RX_SYNCERROR % F: Z$ \8 o! V
| MCASP_RX_OVERRUN);
* d# e) p% t8 l7 G}
static void I2SDataTxRxActivate(void)
( T& W& d- T/ D- E1 B{
: [; E! q& x. {. b- P/* Start the clocks */
. B) E0 z( m  VMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);3 s) l+ T- n( Q5 n% o
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
1 D$ }0 V, r$ ~9 U3 c# m8 cEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,' D3 ?' u9 V% z! p- m
EDMA3_TRIG_MODE_EVENT);
3 \2 S9 @0 I6 qEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
8 ~; h4 h5 r. {+ Y* xEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */* z: Y+ B+ `! u" d
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);) E2 E6 y, e6 ]) G: L
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */1 V; g$ ?9 N' [' M
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */  c3 K% T7 E; ~; M: C. ]+ V" l
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);3 t( G. i9 X& m% J4 [! o
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
3 I5 L: }  o% F5 q9 }9 b}
6 A5 M+ j& z1 A" f. `$ F# J
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

+ ]) Y( B1 F; Y6 V, T) j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-10 12:25 , Processed in 0.038975 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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