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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10888|回复: 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,) i5 u. k6 }. P) h* h# C0 q  [+ e' T
input mcasp_ahclkx,
# _' w1 I1 A& @# Zinput mcasp_aclkx,
1 ?. L+ k% W. F$ p0 _) ]input axr0,
$ ~7 W  T+ q& b  w- f' D# h# o* _- s! f8 Z
output mcasp_afsr,
- ~. F- c' _$ X; V; W( p8 i6 Joutput mcasp_ahclkr,
. J3 G/ {1 b2 X, T" R& Boutput mcasp_aclkr,
$ [, F6 ]# f# }1 E) }- Loutput axr1,# s+ r1 \) ~: h( j% _
assign mcasp_afsr = mcasp_afsx;* m1 u( X) Z) k( d5 F7 g3 d3 k! D
assign mcasp_aclkr = mcasp_aclkx;& f- t% G8 k+ ^2 ]7 M7 ]. g1 M
assign mcasp_ahclkr = mcasp_ahclkx;
- }, [' T, I" {% Y- l7 Lassign axr1 = axr0;

* Z7 Y, ]- r2 }3 A3 I
6 d5 L& x" X. T* o
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
8 f# }( {1 T$ [
static void McASPI2SConfigure(void)) p% s% ?/ ~5 k, N* t) }4 m
{2 N( u. W' I5 @$ r9 a. K# P
McASPRxReset(SOC_MCASP_0_CTRL_REGS);- g& U3 F$ G% f2 M9 u
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
& j* E  A/ M3 r9 l9 X/ qMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);- V6 |/ D+ v6 V( r" b
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
* _0 P2 m6 y* ^! D7 KMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,) ~; N$ y8 P) @& N* [7 B9 m; l( j& p
MCASP_RX_MODE_DMA);4 ?4 w7 u5 |/ n- ~
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
0 O3 v( n% q% R* cMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */' e: E, ~& s5 e6 e9 _+ I
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
& F0 K  ^, S/ x, X. w2 w$ p0 z3 OMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
! h) T8 ]2 n6 g0 KMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, 8 L5 ?* u! i/ J; P5 b8 [
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */  S( r' f* ]1 ?4 {: o
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);  j2 y5 Y  K; u6 v: P
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
% C- U1 i" c* t' w3 H4 z$ cMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,/ t4 _' q  ?) i+ i/ |
0x00, 0xFF);
/* configure the clock for transmitter */
7 X, b* R/ D# H0 u5 M; vMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);( M0 b5 }5 B& d0 z: {+ i+ e4 x
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
9 e) W' k1 C5 D& C0 UMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
. ]: R2 {. D6 _9 B9 ]0 Y$ J  V- _3 u0x00, 0xFF);5 z# J* Y- `5 N5 ]$ _+ @

3 C* u% a, i! {% J1 M# }0 k: u; n/* Enable synchronization of RX and TX sections */
5 q8 W7 A0 r9 {: u- L- S& ^! k* KMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
2 _3 ?) \) @/ [McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
( x8 I3 ?! x7 H( |2 jMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
7 s$ B3 u3 |7 `" w7 h- V- Y  w** Set the serializers, Currently only one serializer is set as
! ~; S$ h% E1 R** transmitter and one serializer as receiver., Y0 J" k$ K- N# H- d* T$ h  q
*/
6 C( B5 D* I+ M7 S, h8 U. dMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
9 M& C0 Y! s  UMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
3 G6 w6 M; K4 r9 g( u5 U! z  |$ f; |** Configure the McASP pins $ g$ O! {" }- O# Y6 `
** Input - Frame Sync, Clock and Serializer Rx, A6 U3 O- m- D0 ]. {4 n% S" ]
** Output - Serializer Tx is connected to the input of the codec
+ |  W) T$ J" {, R9 W*/2 o+ U  i4 O. b& J( R/ @8 B6 t
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);" @% c. ~* D) v. U% d
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
1 @4 N  Y5 I# i' UMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
; a9 ]6 q7 q. m4 C/ l| MCASP_PIN_ACLKX
* |8 i4 H& X/ ^; o: d| MCASP_PIN_AHCLKX( s( M% @$ z1 `: Q! G; p) `
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */$ J) z, J- n9 @( [
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
8 g0 h7 q2 T) l6 p8 O| MCASP_TX_CLKFAIL
1 x: t& S3 S% ]5 F6 F9 u, ?' Z| MCASP_TX_SYNCERROR
. s7 B8 @6 t) X! T| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
' o" q. I9 Z/ g; x6 ^* D8 Z| MCASP_RX_CLKFAIL
) }  {2 O: `0 i% z- T| MCASP_RX_SYNCERROR
3 j4 |- }' v5 P7 J4 r| MCASP_RX_OVERRUN);! M7 \1 P' _4 `+ K3 _5 F
}
static void I2SDataTxRxActivate(void)
2 f8 b/ `% e1 W5 U: m{) b$ o0 n, }$ P8 Z/ j
/* Start the clocks */% S3 d; n  @0 }% N) @5 n5 W
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
# N  Z5 E% S/ G2 o) n2 QMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
3 ?. Z2 H3 v3 ]! V& s* UEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,8 h+ y1 n8 t6 [6 K
EDMA3_TRIG_MODE_EVENT);6 |6 a% Q5 q+ i
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
$ B2 v! a: [8 y$ r0 @7 m, c' }& }EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
  _- S! x) L2 ~5 _2 g# P: n% j- Z$ o3 YMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);0 ~$ J- e; \8 m& z
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */. p( u$ @) d$ z- f. F" o4 ?
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
: T4 i! x& w: x2 t# C! ]McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
, c8 \4 y' h- i% K1 o6 ?* A% c& xMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);" d2 e0 M! K: h# A; ^* a! o) N# G
}
( X# G! y/ P6 b, X8 x
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

6 F. {6 S3 {, W7 {5 I/ p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-18 10:57 , Processed in 0.041251 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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