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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11225|回复: 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,' u; T) S) `0 Q. |5 H8 S; Q9 `' }
input mcasp_ahclkx,$ b; T. I% d4 T# F% K3 _* @
input mcasp_aclkx,
- _) u$ R& o9 V0 O9 Dinput axr0,
0 [, o0 A0 u" S/ w7 N0 j, o0 @# m6 c* M5 i2 U' Y3 M* l, S5 B
output mcasp_afsr,( ]. k) W7 |" R$ J/ [9 G* P
output mcasp_ahclkr,; M, U  M$ W6 ]/ ~
output mcasp_aclkr,; j! a+ i* z6 ?8 |% f4 e
output axr1,
; \9 Q& Y. Y3 q4 c
assign mcasp_afsr = mcasp_afsx;
9 I* s* F& |6 ^7 A" E5 t& Yassign mcasp_aclkr = mcasp_aclkx;" p- q5 [: u* _1 {
assign mcasp_ahclkr = mcasp_ahclkx;3 k( F+ k% C6 D7 F. v& v/ v
assign axr1 = axr0;
; |* H  W- Y! G5 m0 q6 H
' F. ^; Q# F. d; @
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

1 E3 N- D; ]& ~& X, m
static void McASPI2SConfigure(void)
5 d) s0 y9 R3 L+ F5 n8 ~{( D+ M* e" |  m& Y
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
0 B  }4 B; F( ^+ EMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
7 s+ n; a: M. U; m9 }" e! F8 \McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);$ R3 s1 l. j5 _9 W$ x
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */" {' o5 s8 V0 g! Q: r( x  N, h* I5 S
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,  `' M. B2 ?4 K1 d
MCASP_RX_MODE_DMA);# p: K' c8 @0 ]! F8 @, x6 I8 W6 c
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
% g" |" n/ \. K  t2 I# IMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
7 r3 ~- u1 w8 U9 m% D! lMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
/ G# c; ~0 }& I$ t3 HMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);  m/ a; T# x& g2 q6 C, y5 l. D
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, . X8 O( p; B, s+ Z' l
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */7 b/ @+ {: I* K2 S* M- q+ ^8 ^
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
' |( C& x, [. p6 ~) @1 e7 i  oMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); / Z: Q* q0 g1 S# |. ^) T$ B# k
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
+ |5 i* d3 u6 j3 J6 _1 P7 L0x00, 0xFF);
/* configure the clock for transmitter */0 \: N- m* D9 b
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
( W# n0 [! ]8 P7 M/ DMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); ) [. r6 s$ z/ w: o# a1 P5 G2 I
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,4 f! }4 ?& ~0 k9 x, k+ ?
0x00, 0xFF);! S. z  Z$ X, j. l- c5 B

: P' J0 _. m7 N. A/* Enable synchronization of RX and TX sections */
# F; V7 _5 m' |+ {4 p0 UMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */0 y/ M, b4 z4 t" `" s. Z# ~
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
) k4 j1 N* o( b3 ~! N# JMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
, u7 a: i# M6 \% I1 G5 X1 W. t** Set the serializers, Currently only one serializer is set as( T5 v/ o- I7 l' |! a' E
** transmitter and one serializer as receiver.$ I! S9 g* u# C* q
*/
2 _7 a2 e& ?& o1 |4 R7 `/ ~McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
7 I. c4 S- W* EMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
3 |: n! B9 H( f$ ?# V& W& P, s** Configure the McASP pins 1 u. t- F' p: k6 p8 W7 F6 y
** Input - Frame Sync, Clock and Serializer Rx
2 L+ b* e8 C) Q0 T/ ~) F* ~/ B** Output - Serializer Tx is connected to the input of the codec 2 O* O; M) ^' G
*/5 y0 ^2 ^8 W+ @6 h  D
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);9 V% p4 W- a7 p) Z% ?/ d2 h
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
; _% ^7 m, Y- M1 r8 u) R/ U# XMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
8 R- ~6 f" x" D* p+ F; t| MCASP_PIN_ACLKX
) e! O% O. @7 Z% a" K, `| MCASP_PIN_AHCLKX4 V) |  h9 C4 b8 F" K
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */9 [& ^5 ?1 ]$ [  `% r8 G" k! y
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR 5 F1 U+ R2 @1 ?3 l1 j& }4 H
| MCASP_TX_CLKFAIL
- N7 m( s: s: b. k$ I8 @7 z| MCASP_TX_SYNCERROR2 k+ B+ `, M# _' ]! ]
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR " `- s# n! A- s8 X& b* E' F
| MCASP_RX_CLKFAIL
3 ?; C! Y+ V2 T2 `2 n" P- f| MCASP_RX_SYNCERROR
6 G9 F2 d8 H% m% d4 || MCASP_RX_OVERRUN);& O2 r) X5 ~4 p2 {, L! K4 _: t- E
}
static void I2SDataTxRxActivate(void)' {& E* ^. u2 U- p5 ~
{
' t6 t- `  a+ w0 G' e4 t, ~' V/* Start the clocks */8 s2 Y$ B5 }* J, D
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);7 Q: B) N, q. v! Y5 C
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
! \: |% r# R  A* T) {% V! uEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
* ]# J7 i: l& |3 C+ |/ O, lEDMA3_TRIG_MODE_EVENT);
3 Z& R* M1 ]* |  T% Q5 IEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, ' J5 j7 V: B2 T" z: O
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
; j7 T" k" k6 `/ `) YMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);: n$ f3 c+ M8 {
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */& j, d5 r8 n% Y% O7 ~& u' n
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
; R' h1 O! |( s/ s7 L6 h4 t+ k$ GMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);) N! j& y9 {/ |3 U& U, }
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
$ s& B) ]/ J" s* t+ F! G7 L7 ?}

7 N  D# D5 q9 u7 m! ]
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
7 T* I/ P( Z6 h/ k! y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-27 17:03 , Processed in 0.039847 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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