====== Сампутер ====== Идея в том, чтобы спроектировать и изготовить компьютер современного уровня, доступный для повторения радиолюбителями-энтузиастами. * Открытость. Все части проекта, от схемы до исходных текстов программ, должны быть доступны для пользователя. Всякий имеет право и возможность изучать, улучшать, дополнять и распространять материалы проекта. В качестве лицензии выбрана GPL. * Полезность. Компьютер должен служить инструментом в хозяйстве радиолюбителя. Необходимо наличие возможности подключения распространенной периферии, а также простых интерфейсов расширения для других разработок и экспериментов. В качестве штатной операционной системы выбран Линукс. * Современная доступная элементная база. Используемые микросхемы и другие компоненты не должны быть дефицитными. Задача максимального снижения цены не ставится. ====== Выбор основного процессора ====== Поскольку для любительских условий монтаж по технологии BGA не представляется возможным, выбор процессора ограничивается корпусами QFP. Наиболее массовая в настоящее время архитектура для высокопроизводительных микроконтроллеров --- ARM9. Есть варианты от фирм Atmel, Cirrus Logic и Philips, с частотой до 200 МГц. Но, к сожалению, в этих процессорах отсутствует блок операций с плавающей точкой. Выбор остановился на микроконтроллере отечественной фирмы "Элвис": MCT-01. Его особенность: * Архитектура MIPS32, для которой есть достаточное количество открытого программного обеспечения, включая компиляторы и эмуляторы. * Наличие блока операций с плавающей точкой. * Корпус QFP-240. * Подробная русскоязычная документация. Единственный минус --- высокая цена. Единичные образцы MCT-01 предлагаются по 2000 рублей. Документация: {{mct-01-2007-02-19.pdf | MCT-01, руководство пользователя}} ====== Проблема VGA ====== Пока нет идеи, как малыми силами сделать видеоконтроллер. По этой причине порт VGA, а также порты PS/2 в текущей версии проекта отсутствуют. ====== Конструктор "сделай сам" ====== Сампутер можно развивать и наращивать постепенно, по мере потребностей и финансовых возможностей. - Изготавливаем основную плату, устанавливаем микроконтроллер ATmega2561 и его обвязку. Получаем 8-битный компьютер с COM-портом, частотой 14 МГц, 256 кбайт памяти команд и 8 кбайт памяти данных. На разъем расширения выведены N(?) сигналов микроконтроллера, которые можно использовать для управления внешними устройствами. - Добавляем микросхему FPGA, микросхему памяти 64 Мбайт, трансивер Ethernet и контроллер звука. Загружаем в программируемую логику прошивку микропроцессора [[http://www.opencores.org/projects.cgi/web/or1k/overview | OpenRisc 1000]] или [[http://www.opencores.org/projects.cgi/web/mips/overview | Plasma MIPS32]] (или другие). Получаем 32-битный компьютер с частотой до 20 МГц, памятью 64 Мбайт, сетью и звуком. Вместо жесткого диска и флопика используем карточки памяти SD/MMC. Можно запускать Линукс. - Добавляем процессор MCT-01 и еще одну микросхему памяти 64 Мбайт. Получаем частоту 100 МГц и аппаратную реализацию вычислений с плавающей точкой. Грубая оценка затрат: | Этап 1 - 8-битный микроконтроллер | стоимость платы + $15 | | Этап 2 - 32-битный компьютер 20 МГц с памятью 64 Мбайт, сетью Ethernet и звуком | еще $100 | | Этап 3 - компьютер 100 МГц с плавающей точкой и памятью 128 Мбайт | еще $120 | ====== Проект спецификации ====== === Процессор === Микросхема: MCT-01\\ Цена: $80 === Память === Микросхема: [[http://www.micron.com/products/dram/sdram/partlist.aspx | MT48LC32M16]], две штуки\\ Емкость: 64 Мбайт * 2\\ Цена: $40 * 2 === Программируемая логика === Используется микросхема FPGA с прошивкой, загружаемой при подаче питания. Выполняет функции контроллера SD/MMC. Также содержит память начальной загрузки (ПЗУ) с кодом первичного загрузчика для основного процессора.\\ Микросхема: [[http://www.xilinx.com/xlnx/xweb/xil_publications_display.jsp?iLanguageID=1&category=/Data+Sheets/FPGA+Device+Families/Spartan-3E | Xilinx XC3S500E]] (FPGA серии Spartan-3E)\\ Цена: $40 === Системный сопроцессор === Микросхема {{atmega2561.pdf | ATmega2561}}. Хранит прошивку FPGA, загружает её при подаче питания. Порт COM3 подключен к UART0 и порту прошивки сопроцессора, для замены прошивки. Для переключения в режим прошивки устанавливается пара джамперов. Системный сопроцессор можно также применять для отладки: останов основного процессора, потактовое выполнение, трассировка циклов на шине MPORT.\\ Цена: $15 === Порт Ethernet === Микросхема: трансивер [[http://www.micrel.com/page.do?page=product-info/fastether_trans.jsp | Micrel KS8721BL]], разъем RJ-45\\ Цена: $3 === Звук === Стерео вход/выход, пищалка на плате.\\ Микросхема: National Semiconductor LM4550B\\ Цена: $6 === Сменные носители === Два слота SD/MMC === Порты RS-232 === COM1: асинхронный приёмопередатчик, реализован в процессоре (при его наличии) или в FPGA.\\ COM2: подключен к системному сопроцессору, применяется для замены прошивки FPGA. === Слоты расширения === Двухрядные разъемы IDC от основного процессора и от FPGA.\\ EXT1: сигналы общего назначения (GPIO) от основного процессора.\\ EXT2: сигналы общего назначения от программируемой логики.\\ EXT3: сигналы общего назначения от системного сопроцессора (ATmega). SW1, SW2: порты SpaceWire с интерфейсом LVDS === Порты отладки === JTAG1: отладочный интерфейс основного процессора.\\ JTAG2: порт JTAG от FPGA для отладки прошивок OpenRisc или Plasma. === Питание === Внешний блок питания 8-12 VDC/VAC.