реклама на сайте
подробности

 
 
> GPIF на FX2, Инициализация, работа ...
vvj
сообщение Jan 20 2005, 21:20
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 46
Регистрация: 20-01-05
Пользователь №: 2 090



GPIF не могу заставить работать - все управляющие и адрес по единице(смотрел на осц.)
Есть пару вопросов по инитциализации из TRM страница 277/пункт 2 - нафиг нужен и почему в приведённом ниже примере читают из 0x00AB ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Trashy
сообщение Jan 21 2005, 09:22
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 121
Регистрация: 19-01-05
Пользователь №: 2 049



Цитата(vvj @ Jan 21 2005, 00:20)
GPIF не могу заставить работать - все управляющие и адрес по единице(смотрел на осц.)
Есть пару вопросов по инитциализации из TRM страница 277/пункт 2 - нафиг нужен и почему в приведённом ниже примере читают из 0x00AB ?
*


Пиши подробней вопрос, мне некогда по пдфкам лазить.
Ты может описатель временной диаграммы криво создаёшь...
На 277 странице вообще порты IO описаны.

$if (EnableGPIF)
;=-=-=-=-=-=-=-=-=-=-G-P-I-F-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
nop
/* WriteX #IFCONFIG, #11000000b; //external/internal_CLOCK,30/48,out_enable,invert,Async,Test_pinout,1,0(GPIF)
nop
mov OEB,0x00
mov a,IOB
JNZ NotError
mov dptr,#USBCS ; bit7 - Mode jf PLL (480/12)
movx a,@dptr
ORL a,#00001000b
movx @dptr,a
whileAcc0:
mov a,IOB
JZ whileAcc0
mov dptr,#USBCS ; bit7 - Mode jf PLL (480/12)
movx a,@dptr
ANL a,#11110111b
movx @dptr,a
NotError:*/
CALL ResetPipe
nop
WriteX #IFCONFIG, #11000010b; //external/internal_CLOCK,30/48,out_enable,invert,Async,Test_pinout,1,0(GPIF)
nop
WriteX #GPIFABORT,#0xFF; //Abort All Pending Function
/* MOV DPTR,#PORTECFG; //
MOV A,#0x00
MOVX @DPTR,A

*/

nop
WriteX #EP2FIFOCFG,#00000000b;
nop
WriteX #EP4FIFOCFG,#00000000b;
nop
WriteX #EP6FIFOCFG,#00000000b;
nop
WriteX #EP8FIFOCFG,#00000000b;
nop; //CTL OutputMode
WriteX #GPIFCTLCFG,#00000000b ; if (x==1) 7-tristate, 0..6 - open-drain
/* MOV DPTR,#GPIFREADYCFG; //
MOVX a,@DPTR
ANL A,#01111111b ;SAS = 0
MOVX @DPTR,A*/
nop
WriteX #GPIFWFSELECT, #Sw_Sr_Fw_Fr_Def
nop
MOV DPTR,#GPIFIDLECS ; defined states of GPIF signals in IDLE
MOV A,#10000001b ; Data pin
MOVX @DPTR,A
nop
WriteX #GPIFIDLECTL, #11111111b ; CTL pin in IDLE
; MOV DPTR,#GPIFREADYSTAT; Current state of RDY pin
; MOVX a,@DPTR
; ANL A,#01111111b ;
; MOVX @DPTR,A
;------------Autopointer-------------------------;
ByteCounter DATA 128 ;
mov autoptrsetup, #00000111b ;
mov ByteCount_h,#high(ByteCounter) ; ; Hight byte of counter Autopointer
mov ByteCount_l,#low(ByteCounter) ;
;source: ;
mov autoptr1h,#high(mass) ;
mov autoptr1l,#low(mass) ;
;destination: ;
mov autoptrh2,#high(GPIF_WAVE_DATA) ;
mov autoptrl2,#low(GPIF_WAVE_DATA) ;
LCALL Autopointer ;
;------------------------------------------------;
/*

;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
$endif


mov r1, #0
mov r3, #0
MOV IOD, #0x00
MOV OED, #0x01
MOV IOD, #0x00
MOV OEA, #0xFF
MOV IOA, #01010001b

;======Initialization Size Endpoint Paket=================

mov PacketSizeLow,#0x00
mov PacketSizeHigh,#0x02
mov dptr,#USBCS ; bit7 - Mode jf PLL (480/12)
movx a,@dptr
ANL a,#10000000b
JNZ PLL480 ; branch if HCM != 0

mov PacketSizeLow,#0x40
mov PacketSizeHigh,#0x00
PLL480:

$if (ControlEnable)
MOV OEE, #00001000b
mov IOE, #00001000b ; Test
$endif

nop
WriteX #EP4AUTOINLENH,PacketSizeHigh;
nop
WriteX #EP4AUTOINLENL,PacketSizeLow;
nop
WriteX #EP8AUTOINLENH,PacketSizeHigh;
nop
WriteX #EP8AUTOINLENL,PacketSizeLow;

Это работает.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 23:29
Рейтинг@Mail.ru


Страница сгенерированна за 0.01339 секунд с 7
ELECTRONIX ©2004-2016