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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1216

积分

金牌会员

Rank: 6Rank: 6

积分
1216
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,
2 D" F( H5 z& T  l) Q/ q* Finput mcasp_ahclkx,
' L, T  q' q4 A; w4 X; S. Minput mcasp_aclkx,
% g' N# h6 P4 ]input axr0,
& S( P: J7 u: p+ f3 ^
- X4 ^4 f6 ^" |# {) W1 k4 Zoutput mcasp_afsr,
3 E' r) @% X4 eoutput mcasp_ahclkr,2 U) U- v: C, W
output mcasp_aclkr,
3 r$ g( q0 c' qoutput axr1,
6 g  D! a2 }9 y
assign mcasp_afsr = mcasp_afsx;
7 N6 U4 m7 B# M1 n* ?assign mcasp_aclkr = mcasp_aclkx;' {* n0 R: s8 D2 T4 d
assign mcasp_ahclkr = mcasp_ahclkx;6 ?9 P7 P. {/ X  z& j. J
assign axr1 = axr0;
  u9 H- \1 r9 ~5 _) i

& {8 w% F, J& @; y$ D
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

6 L1 t" G2 _4 `
static void McASPI2SConfigure(void)
9 R2 W9 v8 b7 u' _1 Z{  F9 O; R7 B$ N: U
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
- O$ t# }0 D8 j, |+ yMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */0 q( \: x6 \" a) s8 Y
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);' [1 V% b3 V; B3 f0 r; Y& q" `! I
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */& H' s$ S2 b! Q1 K, b0 d9 ]( ]
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
  R0 Z, Z0 w9 ?5 h4 c" ^7 g+ ]2 SMCASP_RX_MODE_DMA);
1 k3 r6 v6 A. V9 K9 }% ~. PMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
% p+ i0 V" L* E5 \# V8 _MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */+ @3 i/ E, {- T( Z9 _2 c
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
: X; g; O1 r$ ?$ Z$ z; z9 w: i5 o5 yMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);/ l% k$ W/ o* L; D" L, x
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
. H" q" h1 h# n' F  o& OMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */1 b( a2 h5 U' u1 Z6 n3 t
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);9 r! m& {* x9 ^
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
$ {: c4 Z) \/ N9 ?McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
' x/ o' O- c3 x3 q! e; O+ [0x00, 0xFF);
/* configure the clock for transmitter */( T! S: V+ M" B% K5 K. \  F
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);- g/ P4 r- O  D; v0 o6 E
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); 4 ]+ b3 f6 e2 m
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,6 w: s1 c  Y: p4 M- V
0x00, 0xFF);
- l3 t0 i: n# |5 }) T
5 K- f7 ]3 Q2 W; v9 i' f/* Enable synchronization of RX and TX sections */
* K5 g3 c& S% l4 j. {McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
) M- q0 F) o5 T- z$ lMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
0 ?9 P: z# S5 k6 U8 I+ V! yMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
7 M) M; [1 k* _1 ~4 v** Set the serializers, Currently only one serializer is set as
( Q: }$ p# T* c* j! b7 t& S4 v** transmitter and one serializer as receiver.
- _7 t: X# N" n  T, ?1 |" {*/
( d# s* B9 _6 y/ [9 i& o8 S  wMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
8 x! X! {+ X1 A9 \; p/ JMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*7 I3 }2 R0 q$ M% A: q
** Configure the McASP pins
2 H4 r+ f3 _# L+ f" V** Input - Frame Sync, Clock and Serializer Rx8 v: q2 {& p* F  o" _0 P' i
** Output - Serializer Tx is connected to the input of the codec & Z* H6 i* s* [, F: @0 b+ }' h& S& R
*/' d3 K( h" C$ E! t+ Z5 d6 @, J
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
* |) a" U% l+ B( E) ?: s( z# n% {McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
6 C% y3 Z% x' u) GMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
& j# x* O' y, B4 @, G/ \| MCASP_PIN_ACLKX' D. d. X1 A. Z" z- `' }4 ~0 |
| MCASP_PIN_AHCLKX
1 t  B3 h& `, S  c& s| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
4 L1 T) ?8 i$ }8 L( o+ u% @( WMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR " H1 _2 D8 ?. B' s6 \4 i- w/ X" y
| MCASP_TX_CLKFAIL 8 R2 l3 o/ o0 m# k! J/ N! f0 {+ b
| MCASP_TX_SYNCERROR6 W# `0 ?* n: \" n. M. \
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
0 f0 i7 H$ O) S  w6 ?) ?  |8 Z  x( P| MCASP_RX_CLKFAIL
& b$ K8 _' L& o" X$ J" \! y| MCASP_RX_SYNCERROR
# v* ~" A- s* P) K" \5 ]3 \) v  a: z| MCASP_RX_OVERRUN);
- G7 ]/ B, j; i! X2 l6 |}
static void I2SDataTxRxActivate(void)1 t% }+ f1 f' H( f! ~
{
2 }% U( H; C7 {2 ?7 |/* Start the clocks */
9 V2 p' w9 x4 oMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);, \. h* Y3 P1 j; h& C# ?* x  H( f
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
/ ~" O% |% R5 jEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,/ Y% ^9 W- F( p5 H! ^4 q7 q
EDMA3_TRIG_MODE_EVENT);
( z. \3 Z( i" U8 r: y' s" ~" v2 ?7 cEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 8 a3 I8 @: F: t  u
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
; i; V+ o0 P# ~9 eMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);% Z$ K* K, Z9 {# c7 x
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
; V4 U- W3 \8 Y# U) T- vwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */* i9 s+ ]/ l. W0 }; ?% S  v1 Y
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
2 h/ A; Y/ y( ~2 p3 {McASPTxEnable(SOC_MCASP_0_CTRL_REGS);& N0 R1 K8 C, O" s! H. S3 z$ T
}

" z$ ^, C4 N1 a- k. ]
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

& L0 y8 @. X! b$ l. }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-10-22 01:24 , Processed in 0.044145 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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