эт он сам воросительный знак рисует, это не я :)
я просто скриншот сделал
там принцимиально только отключить jtag (так как его ноги задействованны) и включить внешний генератор (тот что 14 МГц)
Вид для печати
Здравствуйте, syd.
Хочу сказать спасибо за плату - вчера получил. Заказал детали для сборки, теперь жду когда придут.
А вопрос собственно вот в чем - чем Вы пользовались для прошивки Альтеры, я пробовал ломаный Квартус 7, но он при компиляции ругается на то, что нет лицензии под наш чип.
Прошу прощения у модераторов, если сообщение не соответствует теме.
Получил плату. Кто-нибудь может дать совет, где можно заказать всю комплектуху по почте.
Посылторг он же Десси www.dessy.ru
Новел http://www.nowel.ru
А вот это высылает запрограммированные микроконтроллеры и пзу и плиску тоже если надо
:)
Вот что у меня получилось :) Платку делал сам ЛУТ-ом, пришлось в конце подпиливать, т.к. корпуса Z-28 не нашел; вставил в BOX FB-16. Единственно, что обидно - долго ждать загрузку:( Спасибо Syd за твою разработку!
а чё у тя вторым этажом там намастрячено?
ты чё прям на ножки процессора припаялся?
Да, проц припаян с обратной стороны монтажки и к ней же приклеен, проще ничего не придумалось :)
Может кто-то еще рискнет самостоятельно сделать плату - во вложении два слоя печатки в Sprint-Layout. Самое сложное было совместить второй слой-получилось раза с 6-ого. Генератора не нашел, развел под ЛА3+кварц (типичная схема генератора). С обратной стороны два резистора по 390 Ом.
Делал отверстия по крайним выводам микросхем и по углам. А вообще чем больше насверлишь-тем лучше. Сначала сделал одну сторону, вторую заклеивал широким скотчем, травил. Затем сверлил центрующие отверстия и совмещал вторую строну. Когда травил вторую, первую (готовую) также заклеивал скотчем. Самое интересное что из шести переводок более-менее подошла только одна. Печатал на журнальной бумаге. P.S. Может сделать отдельную ветку по самоделкам Speccy2007, чтоб здесь не засорять.
Внимание !
Как оказалось (спасибо Lskl) у транзистора bc639 другая нумерация выводов (ЭКБ вместо КБЭ) - он не подходит. Нужен транзистор КТ503 или например BC337 c выводами (КБЭ).
Бугага! Код таки меньше занимает. Добавил управление тапами клавишами '+', '-', '\' на основной клавиатуре. И вернул паузу (кл Pause/Break или F9).
А.. Еще исправил загрузку файлов по порту 31, из-за которой не грузился boot.sna при компиляции новой версией WinAVR.
Изменения только в коде АВР
Код в начале ветки.
Ещё раз спасибо :) На самом деле писал как для себя TODO-лист :)
Добавлено через 1 час 20 минут
Есть вариант использовать свободные биты (D5-D7) байта цвета бордюра (смещение +26) в header-е sna-файла для выбора банки ROM. Конечно, метод несколько кривоват - мало ли, что эмуляторы туда вставят, но попробовать можно.
Ещё одно неудобство с этим методом - ПЗУ турбо можно использовать для выхода в бейсик через RESET (хотя это не всегда срабатывает), и соотвественно если выбирать битами банку ПЗУ, то тогда эта возможность для эмуляторных снапшотов будет недоступна.
Добавлено через 12 часов 7 минут
В прошивке AVR изменил код работы с буфером клавиатуры, в GetHeaderSize() убрал switch - сделал выборку размера по таблице - код получился 16134 байт
:)
кстати Mega32 в DIP40 повыводно совместима с Mega16,стоит всего на бакс дороже но на борту имеет в два раза больше памяти : ROM 32k против 16к,RAM 2k против 1к EEPROM 1к против 0.5к. за глаза хватит на доработки ( даже по моему на установку ATMEL реализации FAT16/32) . Единственно что - надо будет сравнить header файлы - возможны различия в адресах регистров.
P.S. кстати Atmega644 также совместима по выводам но имее еще в 2 раза больше памяти. 4кб Срам имхо хватит на любую реализацию FAT даже HDD можно прицепить - нужна только плата переходник - для установки дополнительной ПЛИС или регистра защелки.
Скоро получу свою плату - начну эксперименты. а то пока только теория - не интересно.
В общем завершил свои доработки:
F12 работает теперь во всех ROM-ах;
После TURBO (ROM0 = 0, ROM1 = 1), включается последняя страница ROM0 = 1, ROM1 = 1 - я туда зашил нестандартный ROM спектрума, взятый отсюда http://www.shadowmagic.org.uk/cgi-bin/spectrum/roms.pl - 48-plus4.rom - мне понравилась фишка - набирать ключевые символы не одним нажатием, а побуквенно.
Прилагаю код main.c, надеюсь syd не обидится.
Небольшие пояснения:
После include-ов есть define-ы, 1-ый нам пока не нужен,
ALT_KEY_SET - это я для себя сделал раскладку по системным клавишам - кнопкой POWER делать резет, PRT SCRN меняет ROM-ы, дальше все стандартно.
ROM4_PRESENT - флаг присуствия 4-ой страницы в ПЗУ.
Размер кода 16134 байта, свободно 250.
Собрал speccy2007. Пока не было ПЗУ, включил - хороший такой матрас на экране :-)
ПЗУшку, к сожалению не нашел 29С020, взял 27С020. Они вроде такие же. Зашил прошивку от syd.
Вставил ПЗУ, включил. На экране такие знакомые буковки "1982 SR Ltd".
Проблема следующего характера: Что то у меня не работают два верхних ряда клавиш (это где цифры и с q по p). F12 работает. С карточки boot.sna читается. Другие снапы читаются, но после загрузки сразу сбрасываются по ресет в 48rom.
Прошивку AVR перезалил самую последнюю. Резистор подтяжки на ЦПУ поставил.
Вот интересно мне - не может же этот глюк быть из за того, что ПЗУ EEPROM, а не FLASH ?
Блин, я туплю на "раз, два три".
И ведь обидно, что сам АВРками давно уже занимаюсь :-)))
Повелся на картинку "fuses.png" от syd.
Там у него стоит JTAGEN=0 и OCDEN=0.
Программирова еще и думал - "ведь ноги эти работать не будут, странно..."
Syd, исправте картинку fuses.
Перезадал на JTAGEN=1 и всё заработало сразу как надо.
Прикольно тапы грузятся. Давно уж я магнитофоном не пользовался :-)))))
На всякий случай рекомендую FatFs имени Elm нашего Chan: http://elm-chan.org/fsw/ff/en/appnote.html
Минимальный вариант ложится в 2.5К кода и примерно 600-700 байт памяти.
Так там на плате и так два стандартных разъёма для программирования меги и плиски.Цитата:
Вопрос номер 3.
Если будут новые версии прошивок атмеги, нельзя ли выдать распиновку разъемов для программизма ? то есть официально задокументировать. И можно ли будет использовать PonyProg ?
Только для ПЗУ нужен внешний программатор.
Так она и использовалась. :)Цитата:
там картинка правильная - это скриншот из аврстудио.Цитата:
Syd, исправте картинку fuses.
а если шить другой программой то да, JTAGEN=1
сделаю немного позжеЦитата:
syd если есть возможность сделай прошивку для 32й меги...
должена работатьЦитата:
Вопрос номер 1
Я правильно понимаю, что если работает загрузка снапов, бут, то запись снапов тоже будет работать ?
Нужно немного менять прошивку плис и смотреть влезит или нет.Цитата:
Есть ли технологическая возможность зацепить туда FlashTaper или обычный мафон для загрузки с кассет ? Можно ли использовать какие-то выводы ?
Возможно проблема с кабелем раз палкодер работает - значит сигнал идет с платы нормальный.Цитата:
Вопрос номер 4
Пал-кодер от NedoPC работает более чем идеально. А вот по скарту лажа какая-то, весь экран как будто в потеках и походу нет синего цвета. Еще фишка - когда я цепляю на этот же скарт вход ДВД плеер, то он при включении сразу телек переводит "на себя" - то есть телек автоматом в режим video scart переходит.
Добавлено через 3 минуты
Мне наоборот приятно. Даеш хорошый пример. Вместо того, чтобы говорить, что что-то не устривает - взял и сделал под себя.Цитата:
Прилагаю код main.c, надеюсь syd не обидится.
Насколько я понимаю там достаточно в проекте указать, что используется mega32 вместо mega16 и пересобрать, регистры должны автоматом подхватиться. Сам собираюсь поставить 32-ую мегу и поэкспериментировать.
Собрал прошивку для mega32, функционал стандартный - плюс включен FAT32.
я тоже сегодня уже получил плату и скачал WinAvr c Qartus ом- завтра за комплектухой на рынок и начну помогать. первая идея - заюзать таки неиспользуемую часть видео озу для теневика(придется резать дорогу на раме и скорее всего менять логику выбора сегментов памяти в CPLD ).
насчет CPLD как выяснилось в таком же корпусе есть чип с большим количеством ячеек - не намного ячейки на 32 всего - но ето тоже чтото уже.
EPM7160S
Usable Gates 3,200
Macrocells 160
Maximum User I/O Pins 100
IO pins 84-Pin PLCC 64
вот только ног доступных на 4 меньше :(
Уф, тут уже вовсю модифицирует =)
У меня вопрос попроще. Ну как диод, показывающий питание припаять - совершенно понятно.
А можно ли как-то индикатор обмена с флешкой прикрутить ? Ну как на кардридере например.
Заранее спасибо.
Ну раз товарищ syd не обижается, вставлю и я свои 5 копеек :-)
Помнится давно, когда у меня был ещё "нормальный железный спек", у меня была расширенная клавиатура. Это где всякие служебные команды были вынесены на отдельные кнопки.
Клава PC имеет целую кучу кнопочек. Вот и захотелось сделать из нее что то подобное.
Дописал немного программу для AVR. Наклеил наклейки. Получилось прикольно.
Добавил кнопки:
Edit,Graphics,CapsLock,ExtMode,
+ - / * ; " , . :
Понравилось от denisv - Reset на "power" и смену ромов на "PrintScreen".
Можно ещё на ESC CS+BREAKSPACE заделать.
В key_matrix.c размер массива увеличиваем с 72 до 73 и в конце перед элементом со всеми нулями добавляем
{ 0, 0x76, 0x0, 0x1, 0x7, 0x1 }
denisv, я правильно понял, что беру ТЕКУЩИЙ исходник с первой страницы, подкладываю эти патчи (плюс патч для ESC), собираю, и должно быть счастье с A4Tech клавиатурой ?
Да, все правильно. Только обратите внимание - в моё патче ROM4_PRESENT установлен в 1, а если 4-ая страница FLASH-а пустая, при переключении после ROM-турбо спек подвиснет и надо будет ещё раз переключить ром, либо просто ROM4_PRESENT установить в 0.
Да и ещё, после проделывания вышеперечисленных действий желательно в main.c
подправить размер массива key_matrix:
extern byte PROGMEM key_matrix[59][6];
59 изменить на 73.
Совсем закопался в сигналах, тупо не могу понять.
Суть вот в чем (привожу кусок кода VHDL из прошивки CPLD):
TRDOS_ENTRY <= '1' when M1 = '0' and MREQ = '0' and IOREQ = '1' and VideoRead = '1' and (A15 = '0' and A14 = '0' and VA(13 downto 8) = "111101") else '0';
Данный сигнал выведен наружу в CPLD-шке:
По идее когда процессор производит исполняет команду с адресов 0x3d00-0x3dff, этот сигнал должен быть в единице, и в 0 в противном случае. На деле же получается, что сигнал периодически устанавливается в 1, даже когда команды оттуда не выбираются.
Подскажите это я туплю или так и должно быть?