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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10387|回复: 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,* q" A3 ~5 A$ G& J
input mcasp_ahclkx,
- y' |% w& J4 `* K# S: Y( M0 Y3 Sinput mcasp_aclkx,
0 E' q0 L! M6 v5 T6 j9 f/ Uinput axr0,
$ U/ E& ?9 ~4 E
& B# R' V8 X+ y1 l& qoutput mcasp_afsr,3 ^! Z/ W- L) @1 n2 U# N$ {
output mcasp_ahclkr,& ]+ M  v$ F. D# ~5 ]$ M0 l" g
output mcasp_aclkr,6 D; G3 `& X" M  S: |4 r0 ~
output axr1,) W: T7 p" ^) y" A
assign mcasp_afsr = mcasp_afsx;- {( \' K( L" W4 E. h, R, T
assign mcasp_aclkr = mcasp_aclkx;
6 s/ Z, D8 j3 F- [# Z6 passign mcasp_ahclkr = mcasp_ahclkx;
& M0 `2 T! p- cassign axr1 = axr0;
9 A$ q. n# b& a

8 ]1 ?3 O. y( _2 h9 H1 X# m% h
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
. c/ L- I4 r9 D1 O
static void McASPI2SConfigure(void)
! O) R* k& R% e3 T" w{/ U; W/ H& o; y$ T
McASPRxReset(SOC_MCASP_0_CTRL_REGS);- P& U$ ~# ^. n# j) h; d5 N3 Q2 @
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
) s2 Z2 {. t1 g/ w4 {McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
: `. p3 N$ }, |, aMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
: @$ W( s! s; \2 j! e9 GMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
2 \( Y& ?; p: A0 v& B9 j8 qMCASP_RX_MODE_DMA);, v# c) T4 w, j$ y- S
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
6 k; s1 q! g0 H$ oMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */. ?+ k" z9 s% n3 \
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
9 ^7 n- I3 H) e1 f: B( k1 HMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
* `2 O0 g/ G2 U/ lMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, ) c+ e$ ~( E+ g) h- K+ O
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
! m* w3 \% D: z/ j$ KMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
* o9 l8 |+ Z4 p! `; O1 p, c/ vMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 7 i7 G! Q. \" ~& q" C; P8 x2 a7 W4 ]) N
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
2 O4 L& [. e0 Y0x00, 0xFF);
/* configure the clock for transmitter */
% I7 F8 A) o6 F% x% mMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
/ s: X: O& S# K6 D8 _- GMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); % X% p% _: ?5 n; p: l
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
. G0 ^. |- n5 f$ z5 ~* s5 h5 h0x00, 0xFF);
+ v% u+ z: A7 ?- K! b& t- q- ]3 W" H) C. G% `
/* Enable synchronization of RX and TX sections */ % s( o8 M0 D  w" c. c
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
1 D# `  J: c5 jMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);. E3 Q1 w- E! i6 t2 l; a
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
" {4 A1 ^& h7 |6 ^2 Q** Set the serializers, Currently only one serializer is set as- c2 }6 J4 x% @& _5 @. k
** transmitter and one serializer as receiver.8 z& ^3 n7 D3 ?6 g# S7 i! ]3 ^% E
*/
; c3 _' n7 `- Q, K: D( A; w! O3 wMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);: u3 ^4 G0 C! M
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
5 }$ \3 j* L; s' N4 V) s+ x5 c** Configure the McASP pins : {- g1 O5 Q0 m0 O/ D
** Input - Frame Sync, Clock and Serializer Rx6 x' G1 `9 c4 L  H
** Output - Serializer Tx is connected to the input of the codec
- k. @# G4 \( Q1 R7 }" p*/6 `# {" q% ~) m; U, t
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
" v; F$ A$ {6 g2 s+ q( \) s- I' Q1 j5 pMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
" ^) e3 L& A) G$ L5 ?; Q" `McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX8 k) e1 k, ]$ {
| MCASP_PIN_ACLKX
" z* `6 @0 K; c; Q; i  y2 w; S| MCASP_PIN_AHCLKX' k1 M% ]4 M. \2 u  i; {
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */+ x0 T, d; R8 s
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR " u8 k' I4 x& Z! f4 y" s- t' \
| MCASP_TX_CLKFAIL
" H9 S/ K: {- K4 o& ^| MCASP_TX_SYNCERROR4 X5 _* _& b2 r' E6 W9 J  N6 W
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR - [) R0 v; e3 w( t4 D2 l
| MCASP_RX_CLKFAIL
* x9 S: N6 }- r( b| MCASP_RX_SYNCERROR
: |+ i9 K% H: L2 E| MCASP_RX_OVERRUN);
' m4 `) ~( F0 E) D9 c3 w' g}
static void I2SDataTxRxActivate(void)/ W( }! S1 j5 R5 U
{: [- q( K, w% x' U1 X9 y- _% Z; f3 }
/* Start the clocks */
! I6 D6 q0 F! j; V1 TMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
/ Y5 f7 E* ]1 v& j% j# P$ ?McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */, C  ?8 Q0 r. d' r; t% f) A
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
9 V7 Y5 N5 A1 l) X+ n$ qEDMA3_TRIG_MODE_EVENT);- ^0 Y, y7 ?) d% ^5 j  j
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
; A6 I  e' Y9 u0 K8 c+ {  I: b/ tEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
& T9 ]/ u$ D6 Q5 [, ~% s& w1 oMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);7 L" ?, q7 V7 t6 n0 E4 p/ `( ~
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
6 m1 c* i* T) y: |9 xwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */5 d1 D! v$ i* t- l' V4 Q0 c6 o! I
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
5 t7 P$ Y9 T: S9 Z# x5 x+ T: iMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);8 {5 J( u" O$ N# z
}
, m- V* \: ~$ K. K6 E" U
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

% X1 t/ m' L+ `0 e  \; l- w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-5 11:54 , Processed in 0.040678 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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