Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Зачем рабираться? Там всё прозрачно. Вот кусок исходника:

Отправлено Леонид Иванович 15 июня 2007 г. 13:40
В ответ на: Вариант конечно. Но только вемя проектирования устройства возрастет т.к. как никрути предется разбиратся с протаколами загрузки FPGA. отправлено PeterD 15 июня 2007 г. 13:24

Используется аппаратный порт SPI Меги. Вхожу в режим конфигурации вызовом FPGA_SetCfg, затем принимаю конфигурационную информацию от PC пакетами не более 256 байт, каждый пакет загружаю в FPGA вызовом FPGA_TxCfg. Когда всё готово, FPGA_TxCfg возвращает 1.


;Init:

Init: ldi temp,(1< out SPCR,temp ;SPI enable, LSB first, master
ldi temp,(1< out SPSR,temp ;double SPI speed

ldi temp,100
rcall mDel ;FPGA power-up delay 100 mS

Port_NCLR_1 ;release nCLR
ret

;----------------------------------------------------------------------------

;Set configuration mode for FPGA:

FPGA_SetCfg:

Port_nCONFIG_0 ;nCONFIG <- 0
ldi Cnt,100
rcall uDel ;delay 100 uS

Port_nCONFIG_1 ;nCONFIG <- 1
ldi Cnt,100
rcall uDel ;delay 100 uS

ret

;----------------------------------------------------------------------------

;Tx FPGA configuration data byte:
;Input: Y - pointer to configuration data (uncrypted)
; Cnt - number of bytes
;Out: temp - status: 0 - OK, 1 - Done, 2 - Error

FPGA_TxCfg:

next_b: ld temp,Y+
rcall Spi_WR ;write configuration byte
Skip_if_nSTAT_1
rjmp cfg_err
Skip_if_CONFD_0
rjmp cfg_done
dec Cnt
brne next_b
ldi temp,0 ;configuration in progress
rjmp cfg_r

cfg_done:
ldi Cnt,100
rcall uDel ;delay 100 uS
ldi temp,1 ;configuration done
rjmp cfg_r

cfg_err:
ldi temp,2 ;configuration error
cfg_r: ret

;----------------------------------------------------------------------------

;Write/Read byte via SPI:
;Input: temp - data byte to transmit
;Out: temp - recieved data byte

Spi_WR: out SPDR,temp
spwait: sbis SPSR,SPIF
rjmp spwait
in temp,SPDR
ret



Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
поделите 4 пополам:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru