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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10217|回复: 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,
% ?3 `( \( m  k; e! u: R: \input mcasp_ahclkx,$ r% {, s! t5 F6 l# r% @" j
input mcasp_aclkx,
: F& |3 ]6 G2 _! a5 C. e1 }input axr0,2 j7 k7 v, E( o1 z/ i- V7 [: v; Y

: H6 E  N& N8 `: @3 v+ \! N2 E" }output mcasp_afsr,* a( y* G( A; @
output mcasp_ahclkr,
  U' j9 r; B8 a+ koutput mcasp_aclkr,
" M+ ]  Q( b7 A; {' n  N% z. s$ Zoutput axr1,) c* C* O" f% V; D4 z1 e- V
assign mcasp_afsr = mcasp_afsx;2 P( p& B) X4 X  T
assign mcasp_aclkr = mcasp_aclkx;6 e; X) p9 v; F* F! l& o& x; Z8 [7 Q5 k, K
assign mcasp_ahclkr = mcasp_ahclkx;
# x7 {  C) d/ C( B9 A; h2 r. J3 bassign axr1 = axr0;

" l- M5 H9 _8 ]. p& Y  A# ~( Q2 C: Q9 h2 ?7 T# z# A
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
' r& P" c9 o9 j4 v
static void McASPI2SConfigure(void)( M1 k8 W! J2 ^# A( r3 a
{" {& w8 a+ p/ M# R  h6 c: @" K
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
* s: Q8 Q1 ^( A  B- IMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */. r9 a0 d, {3 d0 b% }0 |! k
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);' o' V* f6 C* O' Y8 K
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
$ r7 M5 c3 s- q% n! G5 A& g& UMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,2 |; C' o) L/ `0 C
MCASP_RX_MODE_DMA);" j: R% c' s* U; [: Q! s6 f1 \
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
6 W( ]( b+ Y, b# _+ QMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */7 E* r5 f  {: m' V! f- Q
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, " o: C! J6 r" p8 \) J) }% |
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
* N3 Z4 x! W+ a0 _: U. KMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,   O3 {) `4 Z: B9 K7 Z
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
- w( V; q) U2 R( A) wMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);: W& M' z9 u/ F1 l
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
; m7 X+ E* v$ a& [: x7 nMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
+ `! k' F' z4 B8 P2 V  g0x00, 0xFF);
/* configure the clock for transmitter */7 S) F  m0 t- n. S
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
: I" Y, d1 [; V1 K% }McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
4 q- O2 H0 Q  ?. ^McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,# P- f% v& w( }5 c
0x00, 0xFF);! ]" ~6 W* L! H$ G

, s! t/ i. ~+ a/* Enable synchronization of RX and TX sections */ / E6 O% A, |% r2 F- w  b
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
% I7 I- ?  n% s6 x: `$ YMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
4 l3 A/ i8 Q& d1 O( nMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
( ]8 C$ e" v6 }' J* _" d** Set the serializers, Currently only one serializer is set as# f" P" |3 W3 b; N! z/ E
** transmitter and one serializer as receiver.
% M' {- `! g9 a*/4 X6 g  i) A  l: |7 l
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
5 y* J- A0 u3 KMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
/ o, ]6 ]; n1 Y' B2 z1 l** Configure the McASP pins . d& M6 g1 D9 R. i1 d8 ?
** Input - Frame Sync, Clock and Serializer Rx
/ @' Z( g7 x( M' ]** Output - Serializer Tx is connected to the input of the codec
( ^7 }* A1 J; T6 `*/
( U4 q% S  E! M, m; v: e1 k9 {McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);  h# e3 `4 d- [& g8 G' t
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));8 [+ j) l  l' N6 ~: ^' e' |
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
2 k: h' M, p  S, }2 n4 y+ b| MCASP_PIN_ACLKX
. m. x' A4 p8 f% ]! K* h: B! h| MCASP_PIN_AHCLKX
$ U3 B: V% d# ^: k| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */$ \4 Q4 N% a% ?6 E) O9 d8 m
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
. g1 X3 X- B6 ?/ x8 O$ U| MCASP_TX_CLKFAIL
! {7 {* ]: m% c, Z, ]) Y+ ?| MCASP_TX_SYNCERROR
6 x6 b( {* k& F/ s- ?# r# N% ?. {| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR 1 \% H( o) ?2 n' f3 @7 Z
| MCASP_RX_CLKFAIL+ ^) e5 ]) g% A. W, o
| MCASP_RX_SYNCERROR ( j& |+ c6 w0 |' S- a
| MCASP_RX_OVERRUN);6 O' C" o9 p$ Q4 ~- ~1 W
}
static void I2SDataTxRxActivate(void)
0 r5 A- u, F# V7 N5 R{3 d' Z- c- g( P3 f. J5 ]
/* Start the clocks */  L9 K: F* K/ E* j8 U& {, ^- D3 }
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
/ A0 S6 G! C# b. F. E. p3 x# jMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */$ F% d4 Q7 z5 l1 k/ M& d
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
% K+ C8 e2 p# k7 P) t, X2 S$ ~EDMA3_TRIG_MODE_EVENT);
8 X/ Z) D2 V& ]) j( P/ ^. MEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, : T; T6 h) p. z2 Y4 V) U6 d
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */; B3 u* i. q" J5 j+ E
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);/ m& o* r5 G' o0 T
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
* l, t# a- T) _' q% C3 mwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
5 S" j/ G9 a) \* L9 YMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);/ a0 ^/ |' v! a: Q" S% M, i" g- d/ t
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);; g2 P) A" {9 Z2 W; |( g! Y6 |
}

+ c+ V( s; r/ C) u" s  g8 ~! @
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
- F" F1 ]6 X$ _7 x' R' b4 n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-31 21:47 , Processed in 0.044017 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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