недействительный TD_Init (недействительный)
{// Вызывается один раз при запуске
CPUCS = 0x12; // CLKSPD [1: 0] = 10, для работы 48MHz, выход CLKOUT
SYNCDELAY;
REVCTL = 0x03; // REVCTL.0 и REVCTL.1 набор 1
SYNCDELAY;
PINFLAGSAB = 0x08; // FLAGA- EP2EF (EP2 пустой флаг) // EP2 OUT
SYNCDELAY;
= 0x0E PINFLAGSCD; // FLAGC - EP6FF ( EP6 полный флаг) // EP6 ИН
SYNCDELAY;
// PORTACFG | = 0x80; // PA7 мультиплексирование FLAGD
// SYNCDELAY;
IFCONFIG = 0x63; // Внутренние часы, 48 МГц, интерфейс ведомого устройства FIFO
// множество externalclock является 0x63, 5МГц-48MHz
SYNCDELAY;
Определение бит информации регистра // IFCONFIG
// IFCLKSRC = 1, FIFOs выполняется на источник internalclk
// xMHz = 1, операция 48MHz
// IFCLKOE = 1, привод IFCLK at48MHz сигнала контактный
// IFCLKPOL = 0, не инвертировать IFCLK pinsignal от внутреннего CLK
// ASYNC = 0, мастер-образцы синхронного
// GSTATE = 0, не гони GPIF statesout на PORTE [2: 0], отлаживать WF
// IFCFG [1: 0] = 11, FX2 в ведомом режиме FIFO
// Примечание: Предварительно REVE EPxGPIFTCH / L регистр пострадавших, а также ...
// ... они были заменены byGPIFTC [B3: B0] регистры
// предыдущие версии EPxGPIFTCH / L регистр был GPIFTC [B3: B0] заменить регистр
// EP4 и EP8 не используются в этом варианте осуществления ... здесь не используются EP4 и EP8 конечной точки
EP1OUTCFG = 0xa0;
SYNCDELAY;
EP1INCFG = 0xa0;
SYNCDELAY;
EP2CFG = 0xAA; // из 512 / 1024bytes, 2x, сыпучие; в котором b5 / b4 бит (ТИП1 / TYPE0) по сравнению с режимом объемного переноса 10
SYNCDELAY;
EP6CFG = 0xEA; // в 512 / 1024bytes, 2x, навалочных
SYNCDELAY;
EP4CFG = 0x02; // ясно бит действительности
SYNCDELAY;
EP8CFG = 0x02; // ясно бит действительности
SYNCDELAY;
// FIFORESET состояния сброса для FIFO
FIFORESET = 0x80; // Включить NAK-Allt недействительного условие гонки
SYNCDELAY; // смотри раздел TRM 15.14
FIFORESET = 0x02; // сброс, повышение 2
SYNCDELAY; //
FIFORESET = 0x04; // сброс, роза 4
SYNCDELAY; //
FIFORESET = 0x06; // сброс, FIFO-6
SYNCDELAY;
FIFORESET = 0x08; // сброс, роза 8
SYNCDELAY; //
FIFORESET = 0x00; // Деактивировать NAK-ALL
SYNCDELAY;
// обрабатываем случай, когда мы были уже в автоматическом режиме ... EP2 настроен на автоматический режим вывода 16-разрядный
//...for пример: назад к загрузке микропрограммного назад ... EP6 набора вход 16 в автоматическом режиме
/ * EP2BCL = 0x80; // рука EP2OUT bywriting счетчик байтов ж / пропустить.
SYNCDELAY;
EP2BCL = 0x80; // рука EP2OUT bywriting счетчик байтов ж / пропустить.
SYNCDELAY;
OUTPKTEND = 0x82; // Арм и EP2 буферы toPrime в ПУМ
SYNCDELAY;
OUTPKTEND = 0x82; // Арм и EP2 буферы toPrime в ПУМ
SYNCDELAY;
// Основные потребности видеть AUTOOUT = 0 AUTOOUT = 1 переключатель вооружить ENDP-х
EP2FIFOCFG = 0x00; // AUTOOUT = 0, 1 = Wordwide
SYNCDELAY; //
EP2FIFOCFG = 0x10; // AUTOOUT = 1, WordWide = 1
SYNCDELAY; * /
// Если данные не удовлетворяют транспорта в режиме пакетной передачи данных буфера требуемого размера, например, пакет для передачи навалом в 1024,
// Если размер буфера составляет 10 байтов данных, могут быть представлены через INPKTEND
// INPKTEND = 0x84; // Арм как EP6 буферы toPrime в ПУМ
// SYNCDELAY;
// INPKTEND = 0x84; // Арм как EP6 буферы toPrime в ПУМ
// SYNCDELAY;
EP6FIFOCFG = 0x00;
SYNCDELAY; //
EP6FIFOCFG = 0x08; // AUTOIN = 1, 1 = ZEROLENIN, Wordwide = 0 (8BIT)
SYNCDELAY; //
EP6BCH = 0x03; // рука EP6OUT написав ByteCount ж / пропустить.
SYNCDELAY;
EP6BCL = 0xc0; // рука EP6OUT написав ByteCount ж / пропустить.
SYNCDELAY;
EP6BCH = 0x03; // рука EP6OUT написав ByteCount ж / пропустить.
SYNCDELAY;
EP6BCL = 0xc0; // рука EP6OUT написав ByteCount ж / пропустить.
SYNCDELAY; / ** /
FIFOPINPOLAR = 0x00; // установить все подчиненные FIFO интерфейс булавки в качестве активного минимума
SYNCDELAY;
EP6AUTOINLENH = 0x03; // EZ-USBautomatically совершает данные в 512 байт chunks03
SYNCDELAY;
EP6AUTOINLENL = 0xc0; // c0
SYNCDELAY;
// JTAG Включение и сигналы синхронизации для модуля 6 ZTEXSpartan 1.1 (настройка АСВА + FX2LP)? ? ? Какова роль FX2LP порта и ZTEX
PORTACFG & = 0xFD;
SYNCDELAY;
OEA | = 0x02; // Declare PA.1, как выход ... SLWR
SYNCDELAY;
ИОА | = 0x02; // выход 1 на PA.1
SYNCDELAY;
//OEC&=0x01;//PC.0 в качестве выходного сигнала (SYNC) сигнала синхронизации Pc.0
// SYNCDELAY;
// МОК | = 0x00; // выход 0 на Pc.0 ... SYNC сигнал LOW
// SYNCDELAY;
& = 0xFE КДИ; // Pd.0 в качестве входного сигнала (изменение Clock) Pd.0 сигнала внутренний и внешний тактовый сигнал переключения
SYNCDELAY;
// включить двойную функцию autopointer
AUTOPTRSETUP | = 0x01;
PORTACFG & = 0x7F;
SYNCDELAY;
OEA | = 0x80; // делают PA7 выходной порт , PA7 затем SLWR записи действительный сигнал
SYNCDELAY;
ИОА & = 0x7F; // делают PA7 установлен 0
SYNCDELAY;
ИОА // | = 0x80;
// SYNCDELAY;
// Настройка для внешних прерываний
PORTACFG | = 0x01; // настроить PORTA PA0 на INT0
SYNCDELAY;
TCON | = 0x01; // INT0 действует на падение
SYNCDELAY;
IE | = 0x81; // включить глобальные прерывания, INT0 разрешения прерывания
SYNCDELAY;
}
недействительный TD_Poll (недействительный)
{// Вызывается несколько раз в то время isidle устройства
если (НОР & 0x01)
{
done_frm_fpga = 1;
}
если ((done_frm_fpga) && (НОРЫ & 0x01)) // если РС.1 , когда входной сигнал низкий, переключатель на внешний входной тактовый сигнал, а счетчик затем будет Pc.0 ( сигнал синхронизации ) является высоким
{
// IFCONFIG = 0x63; // внешний тактовый вход, ведомый FIFOinterface
// SYNCDELAY;
PORTACFG & = 0xFD;
SYNCDELAY;
XXIII | = 0x02;
SYNCDELAY;
ИОА & = 0xFD; // выход 1 на PA.1 ... сигнал SLWR ВЫСОКОЕ
SYNCDELAY;
done_frm_fpga = 0;
}
если (! (EP2468STAT & bmEP6FULL)) // ENDPOINT6 FIFO 满
{
FIFORESET = 0x80; // Включить NAK-Allt недействительного условие гонки
SYNCDELAY; // смотри раздел TRM 15.14
FIFORESET = 0x06; // сброс, FIFO-6
SYNCDELAY;
FIFORESET = 0x00; // Деактивировать NAK-ALL
SYNCDELAY; / ** /
EP6BCH = 0x03; // рука EP6OUT написав ByteCount ж / пропустить.
SYNCDELAY;
EP6BCL = 0xc0; // рука EP6OUT bywriting счетчик байтов ж / пропустить.
SYNCDELAY;
EP6BCH = 0x03; // рука EP6OUT bywriting счетчик байтов ж / пропустить.
SYNCDELAY;
EP6BCL = 0xc0; // рука EP6OUT bywriting счетчик байтов ж / пропустить.
SYNCDELAY;
EP6AUTOINLENH = 0x03; // EZ-USBautomatically совершает данные в 512 байт chunks03
SYNCDELAY;
EP6AUTOINLENL = 0xc0; // c0
SYNCDELAY;
}
INTSETUP & = ~ bmAV4EN; // Отключить INT4 autovectoring так что weuse внешней INT4
}