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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10928|回复: 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,
. K4 l# _# X' h9 p( Z- N" a* j) }input mcasp_ahclkx,; o: r# e; r' w8 m/ `& p5 c
input mcasp_aclkx,
: S/ l$ m( \( ]% Z# {* G: [. Linput axr0,& j& K4 P2 P3 u5 W  L! B5 K% g

3 d% q+ N# N  i8 A* ^output mcasp_afsr,7 K7 Y2 \0 V! P; z- f8 |
output mcasp_ahclkr,% A8 b$ w% S( s  V
output mcasp_aclkr,
% i) u* N* V6 O) P0 Z& R2 }9 Doutput axr1,
, N6 [9 b5 T% `- K
assign mcasp_afsr = mcasp_afsx;8 m  d7 |$ A) {4 J) Q3 v  E( o
assign mcasp_aclkr = mcasp_aclkx;
1 G6 o1 X& O# S( J+ [; W8 l2 Massign mcasp_ahclkr = mcasp_ahclkx;! E/ [3 g. [1 L2 V+ v! N9 e
assign axr1 = axr0;

" f! s  o  P0 y! N
1 M! H8 Y& y+ Q  E
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
( t7 Z- l8 H) `
static void McASPI2SConfigure(void)
' Q% A: T3 q. q8 ~/ ]{8 u) t( l  s- }. G( h9 p( F- U+ |) |
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
) C+ o" S4 u  NMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */8 w3 B8 o, W1 J: |3 r0 E3 [
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);+ F# g  Z% Y9 o+ |6 \, g
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */$ i, \* q8 m" |+ s1 e& O
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,, t9 ?; x2 O, G* w
MCASP_RX_MODE_DMA);2 O: u' H1 r! [
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
  U  P4 ]/ }* _" Q7 C; rMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */% F- L9 L) V4 L
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, . I, M( h& Z. t! A) a" u
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
5 T! m1 F% ~6 |McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
( z8 S- F4 R3 s$ D% TMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */0 ^- W( `9 Z3 F  B
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);, O) o+ k" W, Q  d- o
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
. e# B: g* r: N& h# [McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,1 l6 N. b" b. }
0x00, 0xFF);
/* configure the clock for transmitter */' P( N- _3 X, N# w1 `5 ~
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);7 n% v! ]% @" c( `; x
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
) n/ x0 I; d8 K* a0 g  RMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
0 Q4 I% F# T5 ~0x00, 0xFF);- s) W) N" e; C0 J7 I9 y, x
5 z! _& L0 C. i
/* Enable synchronization of RX and TX sections */
0 p2 h1 x* Y, ]9 S5 V0 n9 ?8 ]McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots *// C6 x+ _) V# \" V3 y! I
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
& W5 H1 o" A9 @6 mMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
1 f1 x9 w5 M; T* a** Set the serializers, Currently only one serializer is set as
! d8 N) N/ [% W' t' k, Y0 I0 a** transmitter and one serializer as receiver.. }5 S7 c: A/ h
*/. V0 Q) L* c5 ]
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);1 [: F, q' M, J, X
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*5 H7 _1 C4 w' N7 ?* a. t2 e+ O
** Configure the McASP pins " _" d7 F) O* B, Y: ~  D
** Input - Frame Sync, Clock and Serializer Rx& {6 G* s! @- S+ J/ \% j4 b) R
** Output - Serializer Tx is connected to the input of the codec
" _# G0 f* S* o+ z! S3 Z; w*/
! y9 v1 {1 K- i* i/ ~McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);+ {7 I/ G  i& c5 A7 a7 q
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
4 v: \; M. ~# {McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
2 L, x5 J5 F1 T  r& @$ n| MCASP_PIN_ACLKX; L; }% @3 W3 Z8 X
| MCASP_PIN_AHCLKX# K! D4 {# z9 J$ Z( {/ [+ k; v4 K
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP *// m+ @. ?: v1 G% L
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR % `' j( h- a* c1 J2 M# i
| MCASP_TX_CLKFAIL $ Y4 E2 W8 ~$ v9 k  N% V
| MCASP_TX_SYNCERROR& Q. v: J7 l/ ~( }! m+ k; d/ R
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR % T( K& e! H( @9 Z1 e! u* d4 X9 [
| MCASP_RX_CLKFAIL
! F  M7 M$ V* f1 ~| MCASP_RX_SYNCERROR
* Y  ~4 [3 F8 A, v2 @8 E8 E| MCASP_RX_OVERRUN);
: M$ s3 ^- C' t}
static void I2SDataTxRxActivate(void)
( t1 ?, P! X9 D/ r  q5 |{
: [) B# J7 ^4 ?: V/* Start the clocks */1 l1 o+ ?1 h9 j- g! B$ h/ H+ z. P! _" U
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);* \3 |9 B3 w: w# ^2 w( h( Y! b! b' K) h
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */1 a8 M- v6 ~, a; E
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,3 C9 k" m% [7 m$ @) U, p
EDMA3_TRIG_MODE_EVENT);( g; ]2 J  C8 n
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
( V1 Y8 u, @) D/ @- j: Y7 z( HEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
) O$ K$ f7 B* WMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
- T. ?. Y# j) R% B3 RMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */# K+ F, o; r9 ^
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */) x* G- m$ w& j* Y- c' m& ^9 P
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);+ u' ^& h/ N3 e+ [" O
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
% h$ a( c) T5 e9 L/ W}
) c0 d4 z' h& B  j: H  q0 y' V
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

0 J: l4 x5 N" ~4 A5 R" N* U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-19 13:47 , Processed in 0.041617 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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