Перейти к содержанию
    

[email protected]

Участник
  • Постов

    13
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный
  1. Может быть, не знаю :) Я тут на коленке собрал USBTinyISP на базе attiny2313, он прекрасно шьёт все мои avr-ы :) Осталось перенести с макетки на плату, и будет мне счастье :)
  2. Получилось подобрать фьюзы. 8 МГц от внутреннего осциллятора без делителя. По итогам имею следующее - МК читается без проблем: тип, память программ, значения фьюзов. Но при записи происходит какая-то явная лажа - в память попадают откровенно мусорные данные. Пока не знаю почему, да и разбираться не собираюсь. Пришёл к выводу, что я хочу слишком странного :)
  3. Все немного сложнее. Дело в том, что этот программатор не поддерживает программирование контроллеров серии ATTINY через SPI. Атмеги - поддерижвает, а attiny только параллельно. Но я почитал datasheet`ы на контроллеры и умозаключил, что протоколы программирования по SPI у них совместимые. Отсюда у меня возникла идея, что можно попробовать программировать флеш-память attiny2313, настроив программатор на какую-нибудь атмегу, чтобы не вытаскивать каждый микросхему для перепрошивки. Кстати, у меня всё-таки получилось заставить программатор прочитать идентификатор устройства. Дело оказалось во фьюзах SUT0, SUT1 - времени запуска контроллера. Понятия не имею, в чем дело, но после конфигурирования самого быстрого времени старта контроллера его стал "видеть" программатор. Сейчас попробую что-нибудь попрограммировать в него. После пары удачных попыток контроллер снова не читается :smile3046: Надо разбираться что к чему. Да, так и есть. По умолчанию fuse`ы выставлены так, что он берет 8 МГц внутренний осциллятор и делит его на 8. Так получается 1Мгц, насколько я понимаю. Проверить кроме как миганием светодиода возможности не имею.
  4. Не совсем понял вопрос. У меня WizardProg87i, в параллельном режиме он нормально читает и прошивает контроллер. Только одно меня смущает - функция _delay_ms работает на этих контроллерах неправильно - завышает задержку в несколько раз. Сейчас замерял - при тактовой частоте в 1 МГц (от внутреннего осцияллтора) надо F_CPU выставлять в 500000 Гц, чтобы задержки были правильные.
  5. Кто-нибудь, кстати, в курсе - у разных версий 8-битных AVR-ов (attiny, atmega) протокол программирования по SPI различается чем-то, или он единый?
  6. Кварца нет, контроллер работает от внутреннего осциллятора. Частота ISP-программирования в этом программаторе не выставляется. Впрочем, я руками точно не мог превысить 1/4 тактовой частоты :)
  7. Я попробовал другой, симптомы те же: при параллельном программировании всё ОК, при ISP - не отдаёт идентификатор устройства. Скорее всего, это какая-то системная проблема понимания работы с протоколом SPI :(
  8. ATTINY2313 ISP Device code = 0x0

    Коллеги, столкнулся с забавной проблемой - при попытке считать сигнатуру устройства с attiny2313-20PU черезе SPI возвращает нули. Пробовал двумя путями: 1. Через wizardprog87i (выставив при этом тип микросхемы atmega8), подсоединив к нужным ногам его ICSP-разъем. Выдаёт "Код устройства: 00 00 00". 2. Руками по хардкору, как описано тут - https://habrahabr.ru/post/152052/. Схема корректно отрабатывает команду "program enable" - возвращает правильный отклик. Команда чтения байта из сигнатуры устройства возвращает всегда нули. При этом через тот же wizadprog в параллельном режиме контроллер определяется и программируется корректно, программа исполняется нормально. Есть идеи, что может быть не так с ISP-программированием? P.S. Atmega8 в аналогичных условиях работает.
  9. Коллеги, есть непонятная проблема. Имею систему на ПЛИС (Cyclone III) с софт-процессором и памятью на базе встроенных блоков ОЗУ. Из памяти при старте системы памяти запускается программа. Суть проблемы в том, что если процессор начинает обращаться к памяти с первых тактов, то память глючит и программа сбоит. Если перед началом обращений выдержать некоторое количество тактов, то всё работает нормально. Точное количество тактов задержки я не знаю, но с 256 ещё глючит, а с 4096 уже нет. Кто-нибудь сталкивался с подобным? Вот код модуля памяти: ENTITY integratedRam IS PORT ( clk : in std_logic; write_f : in std_logic; ce_f : in std_logic; address: in std_logic_vector (13 DOWNTO 0); data : inout std_logic_vector (15 DOWNTO 0) ); END integratedRam; ARCHITECTURE integratedRamImpl OF integratedRam IS TYPE mem IS ARRAY(0 TO 16383) OF std_logic_vector(15 DOWNTO 0); SIGNAL ram_block : mem := ( 0 => X"0000", ... - тут инициализирующие значения. 4385 => X"0000", others => X"0000"); signal data_out : std_logic_vector(15 downto 0); BEGIN data <= data_out when ce_f = '1' and write_f = '0' else (others => 'Z'); PROCESS (clk) BEGIN if (rising_edge(clk)) then if(ce_f = '1' and write_f = '1') then ram_block(to_integer(unsigned(address))) <= data; end if; if(ce_f = '1' and write_f = '0') then data_out <= ram_block(to_integer(unsigned(address))); end if; end if; END PROCESS; END integratedRamImpl;
  10. Спасибо всем за внимание, вопрос снят. Это был битый проект, я нашёл его работающий форк.
  11. Это работает. Мой собственный компьютер на этой плате тоже работает. Есть гипотеза, что я пожёг часть элементов на плате и/или чипе, и более сложный проект на ней из-за этого не работает.
  12. Добрый день. Если у кого есть плата Terasic DE0, прошу помочь. Ковыряюсь в проекте zet: https://github.com/marmolejo/zet/tree/v1.3.1 Это реализация IBM PC на ПЛИС. Проект имеет адаптацию под плату Terasic DE0. Прошивка у меня отказывается работать. У меня есть гипотеза, что я "убил" плату в одном из предшествующих экспериментов, поэтому и не работает. Если у кого есть плата, прошу протестировать прошивку. Я могу выслать .sof-файл для прошивки ПЛИС и файл с BIOS, который надо залить во flash. Заранее спасибо.
×
×
  • Создать...