Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Разное (http://zx-pk.ru/forumdisplay.php?f=90)
-   -   Компьютер "Агат-7": Реализация на ПЛИС (DE1) (http://zx-pk.ru/showthread.php?t=16282)

Santechnik 18th May 2013 13:46

Вполне возможно. Я не разбирался пока. Но вроде попадались мне в сети проекты C64 на ПЛИС. Но главное, чтобы железо имело возможность запустить Commodore, а там может кто-то другой сделает, когда мой девайс наконец будет готов. Идея как раз и состоит в том, чтобы сделать универсальное устройство, вложить пару-тройку компов туда для начала, а дальше пополнять коллекцию с помощью других энтузиастов, если оно начнет набирать популярность.
Я тут нашел интересный чип MachXO2 от Lattice. По сути это ПЛИС, но с интересными возможностями. Модель 640HC питается от 3.3В, не требует внешнего конфигуратора, выпускается в корпусе 100-LQFP (меньше нет, но всяко лучше чем 144) и имеет на борту быструю память (2 блока по 1024 х 9 бит со скоростью обмена до 120МГц). Стоит такой чип всего $6. Этой памяти достаточно, чтобы хранить таблицу для преобразования 1024 цветов в 18-битный RGB. То есть этого хватит на палитры от многих компьютеров. Но даже если этого будет мало, то девайс позволяет при старте загружать свою конфигурацию, вместо прошитой, по SPI или I2C для чего можно задействовать все тот же установленный на плате STM32. Причем эта конфигурация не прошивается во Flash чипа (хотя можно и прошить при желании опять таки с SD карты, например), так что при следующем запуске загрузятся прошитые палитры если их достаточно для запускаемого на данный момент компьютера. Мне кажется это решение оптимально - схема усложняется незначительно, остаются запасные пины на ПЛИС, удорожание незначительно, но при этом появляется возможность вывода 18-битного цвета (262144 цветов).

Santechnik 12th June 2013 16:41

Сегодня закончил разводить плату и отправил в производство. Не утерпел и доплатил 15$ за пересылку DHL, так что видимо на следующей неделе получу вместо трех недель обычной почтой из Китая. Все детали тоже заказал. По трекингу они должны придти в эту пятницу. Так что скоро начну сборку Rev.A. Начну с блока питания и обвязки микроконтроллера, чтобы убедиться в правильной его работе с LCD дисплеем, тач-скрин и SD картой. Буду держать в курсе.

Santechnik 21st June 2013 16:49

3 Attachment(s)
Платы сегодня дошли. :v2_dizzy_roll: Я правильно сделал, что заказал доставку DHL. Платы были в производстве неделю и в среду 19/06/13 были отправлены. А уже сегодня после обеда они были у меня. Прислали 6 плат, но одна не тестирована. Напортачили правда со слоем шелкографии - сделали какой-то круг, которого нет в моих Gerber файлах и который закрывает надписи компонентов, так что придется паять, сверяясь со схемой. Буду писать им - может быть на следующий раз скидку получу за это. Вот фотки плат. В остальном качеством доволен.
Сегодня уже спаял и проверил часть блока питания. Пришлось остановиться пока, так как надо подпилить немного радиатор для LM1117-5.0 - ошибся с размером немного - а уже поздно шуметь дремелем. Завтра с утра добью питание и займусь микроконтроллером.

Santechnik 23rd June 2013 09:37

1 Attachment(s)
Блок питания собран и работает за исключением его части, которая производит -12В и -5В. Ошибся с номиналом индуктора - заказал 150nH вместо 150uH. Посадочное место сделал тоже маленькое, так что придется подумать как воткнуть туда правильный индуктор. Но в ближайшее время это все равно не понадобится - оба напряжения нужны только для оригинальных плат расширения, а это в моих планах пока на последнем месте.
Микроконтроллер распаян и работает. Была сделана лишь небольшая ошибка, которая легко исправлена - забыл подать питание на Vref.
LCD дисплей подключен и работает. Вот фотка. Мой дисплей выполнен на чипе SSD1289 и его нет в стандартных библиотеках. Но я нашел библиотеку для этого чипа к контроллеру STM32F4 и переделал ее под свой STM32F2. Здесь без ошибки тоже не обошлось. :v2_rolley При разводке платы не учел, что пины дисплея выведены назад и соответственно зеркальны. Таким образом, надо было на плате поменять местами первый и второй ряд контактов, чтобы можно было использовать разъемы. Решил проблему припаяв шлейф прямо к плате. Конструкция не идеальна, но надеюсь, что выдержит отладку. На всякий случай пролью места соединения термоклеем.
Теперь в планах настроить тачскрин и прикрутить к дисплею GUI. Тогда, после этого, можно будет распаивать узел SD карты и отлаживать его с удобством.

Santechnik 30th June 2013 04:30

1 Attachment(s)
Сегодня заработала SD карта и FAT. :v2_dizzy_roll: Пришлось повозиться, чтобы сделать "по уму" - карта подключена по 4-х битному интерфейсу SDIO и обменивается с микроконтроллером при помощи DMA с частотой 20MHz. Такое решение позволяет осуществлять обмен со скоростью близкой к максимальной и может достигать 10Мбайт/с. Естественно существуют потери на команды, запросы ожидания карты памяти и файловую систему, но тем не менее реальная скорость обмена как минимум втрое выше, чем была в Rev.0 проекта.
Отдельной проблемой была работа с картами памяти размером более 4Гб, которая также успешно решена.
Вот фотка списка файлов 8Гб карты памяти, выводимого на LCD дисплей устройства. Поддержка длинных имен отключена для экономии памяти. Возможно, в дальнейшем эта функция будет подключена, но пока я в ней не вижу смысла - размер LCD экрана все равно не очень подходит для этого.
Тачскрин я пока не прикрутил к контроллеру. Так что возможно следующим шагом я займусь этим. А также часами реального времени (на плате я установил соответствующий кварц и батарейку).

BYTEMAN 30th June 2013 04:46

вот за что сам люблю STM - это за очень мощную системную библиотеку.. Любая периферия прикручивается на раз-два :)

Santechnik 30th June 2013 05:54

Абсолютно согласен. Правда библиотеки глючные и допиливать приходится прилично. Но это все равно, конечно, проще чем с нуля писать. И еще камешки напичканы плюшками прилично за небольшие деньги. Например, STM32F205VG, который я использую в проекте, стоит 13$, но при этом там 1Мег флэш, 128К памяти, скорость 120МГц, есть DMA, SDIO, 3xSPI, 3xI2C, часы, USB OTG и куча других вкусностей.

Santechnik 1st July 2013 16:57

Сегодня распаял FLASH-память и интерфейс программирования ПЛИС. Прикрутил к контроллеру библиотеку и опробовал запись - чтение - стирание памяти. Все работает отлично.
Еще распаял USB интерфейс, но пока его отладку оставлю на будущее - это необязательная фича.
Пожалуй пора распаивать и проверять интерфейсы клавиатуры, магнитофона, видео и пр.

BYTEMAN 1st July 2013 18:16

Quote:

Originally Posted by Santechnik (Post 612339)
И еще камешки напичканы плюшками прилично за небольшие деньги. Например, STM32F205VG, который я использую в проекте, стоит 13$, но при этом там 1Мег флэш, 128К памяти, скорость 120МГц, есть DMA, SDIO, 3xSPI, 3xI2C, часы, USB OTG и куча других вкусностей.

угу, напичканы они по самое небалуйся) юзаю 207VG (до этого был 107, сейчас посматриваю в сторону 407).

Santechnik 4th August 2013 12:48

1 Attachment(s)
Давненько я не делал апдейт. Итак, за этот месяц я припаял большинство компонентов, проверил работу звука, PS2 клавиатуры и убедился в работе нового узла видео-выхода.
ПЛИС Lattice, которую я использовал для хранения палитр, требует достаточно дорогого программатора. Их недорогая development board не имеет выхода JTAG, несмотря на наличие програматора на плате. Зато на этой плате есть удобное поле для пайки своих компонентов, так что я использовал его для установки разъема и джамперов. Теперь эта плата в зависимости от положения джамперов программирует внешний или внутренний чип. Плата на фотке справа. Я пробовал поиграться с выводом разных цветов через эту ПЛИС и результат весьма положительный - проблем с выводом различных палитр для Commodore и пр. быть не должно.
Вот фотка проекта на сегодня.
Возникла проблема с переделкой проекта под SDRAM (если помните, то я заменил SRAM на SDRAM в Rev.A). С ходу заставить работать компьютер не удалось, так что я перенес проект обратно на DE1, где и завершил работу над SDRAM контроллером. Сейчас компьютер работает на DE1 с использованием SDRAM вместо SRAM, так что следующим шагом я планирую перенос его обратно на плату Rev.A для дальнейшей работы. Надо будет еще настроить работу "дисководов" и проверить вход/выход на ленту.


All times are GMT +4. The time now is 01:06.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.