Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ПРограммирование плис микроконтроллером
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
dimka2001
Люди поделитесь опытом программирования плис (FLEX 10K) микроконтроллером AVR, если ли у кого программы для AVR по программированию плис через SPI???
dimka2001
Люди поделитесь опытом программирования плис (FLEX 10K) микроконтроллером AVR, если ли у кого программы для AVR по программированию плис через SPI???
KRS
Да там же все просто
выдрал кусок из старого проекта, SPI здесь софтом делается
нужно только макросы описать для ног

Здесь прошивка PLD лежит во вторых 64к флеша меги, первые 2 байта размер прошивки


Код
#define nSTAT_PORT PINB
#define nSTAT_PIN 6
ifnSTATOn  MACRO Oper
     sbic nSTAT_PORT, nSTAT_PIN
     Oper
    ENDM
ifnSTATOff  MACRO Oper
     sbis nSTAT_PORT, nSTAT_PIN
     Oper
    ENDM

#define DCLK_PORT PORTB
#define DCLK_PIN 2
#define DCLKOn sbi DCLK_PORT, DCLK_PIN
#define DCLKOff cbi DCLK_PORT, DCLK_PIN
DCLKSpike    MACRO
     sbi DCLK_PORT, DCLK_PIN
     cbi DCLK_PORT, DCLK_PIN
    ENDM
ifDCLKOn  MACRO Oper
     sbic DCLK_PORT, DCLK_PIN
     Oper
    ENDM
ifDCLKOff  MACRO Oper
     sbis DCLK_PORT, DCLK_PIN
     Oper
    ENDM

Delay   MACRO us
        LOCAL _l
          ldi r21, CLOCK_FREQ/1000000*(us)/3
_l:       dec r21
          brne _l
        ENDM

LoadPld:
          nCONFOff
          DCLKOff
          DATA0Off
          Delay 2
          nCONFOn

          Delay 5
          ldi r16, 1
          out RAMPZ, r16
          clr ZL
          clr ZH
          in r16, DATA0_PORT
          elpm r18, Z+
          elpm r19, Z+
          cpi r19, 0xFF
          breq _ok

MainLoop:
          elpm r0, Z+
          ldi r17, 8

loop:     bst r0, 0
          bld r16, DATA0_PIN
          out DATA0_PORT, r16
          ifnSTATOff <rjmp Failed>
          lsr r0
          dec r17
          DCLKOn
          brne loop

          cp r18, ZL
          cpc r19, ZH
          brne MainLoop

          DATA0Off
          clr r16
Wait:     DCLKOn
          dec r16
          breq Failed
          DCLKOff
          ifC_DONEOff <rjmp Wait>
          ldi r16, 10
Wait2:
          DCLKOn
          dec r16
          DCLKOff
          brne Wait2
_ok:
          clr r16
          out RAMPZ, r16
          ser r16
          ret
Failed:   clr r16
          out RAMPZ, r16
          ret
vladec
Есть опыт програмирования ПЛИС Xilinx с 51
VslavX
У альтеры была такая программулина - jrunner, отдавалась с исходниками. Вполне можно портировать на контроллер.
dimka2001
А это на каком ассемблере? а есть на си?
defunct
Цитата(dimka2001 @ Mar 30 2006, 16:24) *
А это на каком ассемблере?

На AVR вестимо.
DSIoffe
Да нечем тут делиться. Просто прочитать текст про конфигурирование. Там совсем простые алгоритмы, я аж от PC через LPT заливал. Выбираете подходящий режим - и вперёд. Насчёт персонально SPI я не задумывался, но трёх свободных выводов контроллера достаточно. Для Altera текст называется Configuration Handbook, в прошлом году я его брал здесь: http://www.altera.com/literature/hb/cfg/config_handbook.pdf
dimka2001
А есть на Си (codevision)???
AVR
А есть ли вообще обобщенный алгоритм: что куда зачем и когда пересылать по SPI, чтобы зашить конфигурацию?
dimka2001
Да меня тоже этот вопрос мучает...
Shamil
Цитата(AVR @ Apr 2 2006, 04:23) *
А есть ли вообще обобщенный алгоритм: что куда зачем и когда пересылать по SPI, чтобы зашить конфигурацию?


Странно, мне казалось что у Alter-ы
в "Application Note 116" все очень подробно расписано
(что куда зачем и когда пересылать по SPI,
чтобы зашить конфигурацию).
Попытался, сейчас, найти этот документ на сайте Altera,
что бы выложить на него ссылку, но за 15 минут поисков
не нашел. Может поэтому возникают проблемы ?
На всякий случай прицепляю его...
Блин, прицепить не удалось,
поэтому выкладываю в инет:

Altera_An116.rar

У меня загрузка во Flex10K, в соответствии с этим
документом проходила без каких либо проблем.
net
Цитата(Shamil @ Apr 2 2006, 10:55) *
Цитата(AVR @ Apr 2 2006, 04:23) *

А есть ли вообще обобщенный алгоритм: что куда зачем и когда пересылать по SPI, чтобы зашить конфигурацию?


Странно, мне казалось что у Alter-ы
в "Application Note 116" все очень подробно расписано
(что куда зачем и когда пересылать по SPI,
чтобы зашить конфигурацию).
Попытался, сейчас, найти этот документ на сайте Altera,
что бы выложить на него ссылку, но за 15 минут поисков
не нашел. Может поэтому возникают проблемы ?
На всякий случай прицепляю его...
Блин, прицепить не удалось,
поэтому выкладываю в инет:

Altera_An116.rar

У меня загрузка во Flex10K, в соответствии с этим
документом проходила без каких либо проблем.


этот документ ликвидирован как класс года 2 тому назад laugh.gif
теперь все находится в томе конфигурация ПЛИС
структура документации изменена и стала как единый документ
cheers.gif
AVR
Цитата(net @ Apr 2 2006, 11:39) *
этот документ ликвидирован как класс года 2 тому назад laugh.gif
теперь все находится в томе конфигурация ПЛИС
структура документации изменена и стала как единый документ
cheers.gif

Можно ссылку на этот единый документ? unsure.gif
Что я только не писал в поиск на сайте альтеры, но так ничего конкретного не нашел...
Shamil
Цитата(AVR @ Apr 2 2006, 17:59) *
Можно ссылку на этот единый документ? unsure.gif
Что я только не писал в поиск на сайте альтеры, но так ничего конкретного не нашел...


В соседней ветке DSIoffe уже дал ссылку на этот документ.
25 МБайт однако.
net
Цитата(Shamil @ Apr 2 2006, 18:13) *
Цитата(AVR @ Apr 2 2006, 17:59) *

Можно ссылку на этот единый документ? unsure.gif
Что я только не писал в поиск на сайте альтеры, но так ничего конкретного не нашел...


В соседней ветке DSIoffe уже дал ссылку на этот документ.
25 МБайт однако.


все намного проще
http://www.altera.com/literature/lit-config.jsp
выбираете нужную часть и качаете
а найти очень просто - заходите в литературу и дальше по тому пункту который вас интересует
cheers.gif
AVR
Цитата(Shamil @ Apr 2 2006, 18:13) *
В соседней ветке DSIoffe уже дал ссылку на этот документ.
25 МБайт однако.

Спасибо.
P.S.
Я думал там платные pdfы, потому не догадался заглянуть в раздел литературы...
dimka2001
почитал Конфигурирование ПЛИС Altera со статической памятью конфигурации
http://www.altera.ru/cgi-bin/go?46#s3

Возник такой вопрос: Когда ПЛИС выдает бит CONF_DONE (конец конфигурирования), когда плис узнает о том что в нее залили всю необходимую информацию???
KRS
Цитата(dimka2001 @ Apr 3 2006, 12:52) *
почитал Конфигурирование ПЛИС Altera со статической памятью конфигурации
http://www.altera.ru/cgi-bin/go?46#s3

Возник такой вопрос: Когда ПЛИС выдает бит CONF_DONE (конец конфигурирования), когда плис узнает о том что в нее залили всю необходимую информацию???


Нужно выдавать клоки до тех пор пока CONF_DONE не установится и после этого для некоторых моделей надо еще 10 клоков выдать
прошивка может быть короче поэтому надо после нее любые данные запихать до тех пор пока CONF_DONE не установится (я ставлю еще счетчик если за 256 доп клоков не установится значит сбой) и потом еще 10 клоков

лучше всего смотреть английские даташиты там есть графики к конкретным семействам
dimka2001
То есть этот бит не установиться пока всю память ПЛИС не заполнить ???!!!
KRS
Цитата(dimka2001 @ Apr 3 2006, 13:32) *
То есть этот бит не установиться пока всю память ПЛИС не заполнить ???!!!

Не должен раньше встать, честно говоря я не проверял когда он встает сделал как в даташите напсиано, все работает.
dimka2001
Скачал английскую версию datasheet там ничего нет... Вопрос еще такой, как определить сколько байт надо отсылать в ПЛИС и как эти данные записать в микроконтроллер...
KRS
Цитата(dimka2001 @ Apr 3 2006, 13:57) *
Скачал английскую версию datasheet там ничего нет... Вопрос еще такой, как определить сколько байт надо отсылать в ПЛИС и как эти данные записать в микроконтроллер...

Определить по размеру файла прошивки.
прошивку можно в ttf сохранить там просто байты через запятую
объявить массив и воткунть этот файл
Код
__flash const unsigned char Pld[]={
#include "pld.ttf"
};


потом в программе можно его размер получить с помощью sizeof()
dimka2001
Спасибо очень полезная информация!!!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.