Просыпайтесь. А то весна уже скоро.
Предлагаю обсудить SPI контроллер для Ориона на дискретных ИС.
На данный момент для Ориона есть 2 поддержанные реализации подключения SPI (а точнее SD-карт, т.е. усеченного SPI) - их схемы во вложении.
1) Схема от n8vem (тупо регистр на запись и буфер на чтение) - самая очевидная и самая медленная, в ней все импульсы реализуются программно. Скорость примерно в два-три раза медленнее дисковода (за исключением позиционирования).
2) Схема цельнотянутая с MSX (запись побитно программно, чтение автоматизировано через регистр, но 1 бит = одна команда ЦПУ). Скорость примерно в полтора раза медленнее дисковода (за исключением позиционирования).
Т.е. обе не сахар по быстродействию. Нужна схема с аппаратным сдвигом и чтением/записью данных целым байтом. Наблюдая за похожими проектами (HardwareMan, PVV) родилась мысль попробовать собрать аналог аппаратного SPI. Вот что получается прикидочно: схема по сложности равная MSX, но работать будет со скоростью близкой к авторскому IDE от PRO (ну или NEMO IDE, т.е. даже еще быстрее чем IDE на ВВ55) или схеме с внешним микроконтроллером:
В полном варианте схемы 9* корпусов с полным дешифратором (2* корпуса, в принципе у кого-то сократится на уже имеющийся) и 2 чипа на регистр выбирающий длину пакета (1..8 бит), скорость передачи (одну из двух) и SPI-устройство от одного до трех (регистр дает выбрать длину пакета менее 8 бит, чтобы подключать устройства с пакетом не кратным 8 битам, например SPI-часы и датчики многие такие). Если ограничиться только одной SD-картой (и на ИЕ7 фиксированно поставить предустановку в 7 ) и условно выкинуть дешифратор портов, то в контроллере остается 5(?) корпусов. И в любом варианте контроллер получается меньше чем контроллер НГМД или IDE варианта Nemo-like (у схемы IDE на ВВ55, понятно, конкурентов по простоте нет )
В подпрограмме spi_sel инициализация ИЕ7 (холостой прогон клоков чтобы сработал перенос и защелка предустановки из регистра) делается при сначала невыбранных устройствах.
Предлагаю обсудить - чтобы понять косяки еще до пайки (т.к. паяю и отлаживаю железки я долго и грустно, системами моделирования не владею, что явно видно по рисунку ).
Аппаратный SPI да на несколько устройств - это вообще весчь! Можно подключить не только SD-карту, но и дешевые часы-RTC и контроллеры Ethernet, различные датчики типа термометров и т.п., причем все это на общую шину MISO/MOSI/SCK - только селекты раздельные подать.