Просмотр полной версии : Приставка к порту УП для SPI
Уважаемые БКшники, разрешите начать обсуждение приставки для БК11/М ( и БК0010 тоже ) для использования БИС с интерфейсом SPI 3-вольтовым.
https://pic.maxiol.com/thumbs2/1666457738.2997898467.spi.jpg (https://pic.maxiol.com/?v=1666457738.2997898467.spi.jpg&dp=2)
В позиции ИС U1 применять ИР22 с низкими значениями напряжения переключения - 533ИР22, 1531ИР22, 1533ИР22, 1594ИР22. Применение 1564ИР22 невозможно, т.к. она скорее всего не воспримет входные напряжения +3в.
Пример БИС - 8-выводная флешка на 4 Мбайт 4 бит :
https://www.macronix.com/Lists/Datasheet/Attachments/8754/MX25L3233F,%203V,%2032Mb,%20v1.7.pdf
https://static.chipdip.ru/lib/433/DOC009433740.pdf
Типовая БИС содержит 6 шт. информационных выводов :
Д0
Д1
Д2
Д3
Синхронизация
Выбор ИС
Соответственно, на порт УП выведено :
Д0 - Д0 выход и вход
Д1
Д2
Д3
Синхросигнал - Д4 - выход и вход
Выбор ИС - Д5 - выход и вход
Д14 - разрешение обмена приставки с портом УП, для возможной комбинации порта УП например с принтером, джойстиком и др.
SPI -- это 1 бит и байтовый обмен. Режимы 2 и 4 бита у этой флешки -- это не SPI, а другой интерфейс. Кроме того, сигналов CS желательно иметь более одного. Их должно быть по количеству подключаемых устройств, если не используется подключение цепью, на что годятся далеко не все устройства.
И ещё: порог у SPI -- 1/2 от напряжения питания (КМОП уровни, иначе говоря). То есть, 3,3В SPI просто напрямую совместим с 5В ТТЛ при использовании общеизвестных приёмов.
Если не предполагается использовать порт УП с др. устройствами ( принтер, мышь, джойстик ), можно ограничиться 2 шт. 155ЛП9 ( 7407 ) или 555ЛП9 ( 74LS07 ), и 2 шт. НРками, и 6 шт. светиками.
Скорость 1-битного потока данных на БК11М с 262 т.рег-рег в ДОЗУ будет невелика - около 1 Кбайт в 1 сек, точнее надо измерять.
Можно приделывать не только флешки, но и добавить др. устройства, но ЛП9 понадобится больше 2 шт., например 3 шт. для 2+ шт. устройств, одновременно подключенных к БК.
Например, можно подключить ИС часов с батарейкой.
SPI -- это четыре линии: MOSI, MISO, CLK, CS. Обмен байтовый. В прямом смысле обмен: приёмник и передатчик меняются байтами. Их регистры данных образуют 16-битный сдвиговый регистр, в котором за 8 тактов CLK примник и передатчик меняются байтами. Сигнал CS служит как для выбора устройства, так и для обозначения начала передачи байта.
Вот это -- SPI. Всё остальное -- это изделия по мотивам. Прошу иметь в виду.
Да, я и имел в виду, что простой bit bang требует только буферов для согласования выхода с 3,3В. Буфера лучше ставить 155ЛН2, чтобы не инвертировать данные программно.
А ещё лучше всё-таки не колхозить, а сделать выделенный контроллер на каком-нибудь адресе с аппаратным сдвигом 8 бит, автостартом и автогенерацией при необходимости байта 0xff . Тут возможны скорости передачи порядка 40 Кбайт/сек.
- - - Добавлено - - -
Можно приделывать не только флешки, но и добавить др. устройства, но ЛП9 понадобится больше 2 шт., например 3 шт. для 2+ шт. устройств, одновременно подключенных к БК.
1 шт 155ИД7 и 8 резисторов дают нам 8 управляемых устройств. Занимая всего 3 бита в порту.
Поэксперементировал - да, при 4-бит ( QUAD SPI ) режиме чтения 2 Кбайт есть, может немного больше.
Да, инверсия данных по отношению к программатору была бы не лишней.
Возможно, стоит сделать отдельный порт-приставку к блоку КНГМД БК11/М, но без автоматизации потока данных, для экономии ИС. На мелких СМД ИС.
Если бы кто хотел такую приставку к блоку КНГМД БК11М в виде чистой платы 95х100 за 1 т.р. - пишите в теме, без всяких гарантий, без обязательств.
Почему так дорого - а тополог дорогой, и плата 4СПП. Ориентировочно - около 30 шт. ИС + аккум выносной, или 2032 батарея ( для часов ).
SuperMax
25.10.2022, 11:08
Есть пара вопросов
1. почему только байтовый обмен ? SPI поддерживает и словный обмен
2. какие SPI железки планируется цеплять ?
SPI поддерживает и словный обмен
В процессе потокового чтения с ИС ЭСППЗУ Макроникс ( даташит в 1-м сообщении темы ) при скорости ЦП 1.3 млн рег-рег ( измеренная ) получен поток данных 22 Кбайт/с, без инвертирования ( на 2 шт. 155ЛП9 ). Соответственно, при быстродействии БК11М 262 т. рег-рег скорость потока чтения будет в районе 4+ Кбай/с.
Но если оценивать для приставки к блоку КНГМД БК11М - там можно разместить батарейное СОЗУ с драйвером ЭСППЗУ, и получить скорость чтения немного побольше, в районе 6+ Кбайт/с, за счет прироста скорости выполнения в 1-такт СОЗУ приставки, примерно до 370 т. рег-рег ( в СОЗУ ). ( На 5-мгц БКшке - еще скорее ).
Последовательность команд чтения для ЭСППЗУ в состоянии из программатора ( все данные - в восьмеричном виде ) :
6 - разрешить запись в регистры ЭСППЗУ, без аргументов.
1 - записать регистры ЭСППЗУ данными - 102 и 000 ( разрешить 4-битное чтение ), ( нормальный режим с малыми холостыми циклами ввода-вывода )
153 - команда бесконечного считывания с последовательности адресов, вх. аргументы - 3 шт. байта адреса, например 000 000 000 ( с начала ЭСППЗУ )
Отмечу, что ИС ЭСППЗУ требует точного выполнения протокола доступа в соответствии с диаграммами в даташите, никакие программные сокращения не прокатывают.
какие SPI железки планируется цеплять ?
Наверное ИС часов, т.к. батарейка в общем планируется.
Ну и 3-е устройство - пока нет данных, заявки принимаются. Может просто маленькая гребенка - для подключения внешнего устройства.
Jarik65535
27.10.2022, 14:12
Все это можно реализовать на одной микросхеме PSoC4, которая и с 5в. сигналами может работать и при желании ПЗУ эмулировать. Пример: http://y-salnikov.github.io/uknc_sd_fdd/ Эмулятор контроллера дисковода для УКНЦ, SD-карта как раз по SPI подключена.
P.S. Извините, тему не внимательно прочитал, разъем УП это же просто параллельный порт.
SPI -- это в первую очередь память. Либо локальная флешка в SOIC8, либо SD карта, либо и то и другое. Ну а далее, разумеется, идут и часики, и ЦАП/АЦП, и дисплеи, и клавиатуры, и расширители ввода-вывода, да в принципе, там и байтбластер замутить можно.
Кстати! Насчёт байтбластера -- это идея!
- - - Добавлено - - -
Гребёнка необходима. Все 4 сигнала SPI, дополнительные CS, 5В, очень желательно -- 3,3В. SD карты хотят их. Правда, Грифон уже нечто подбное соорудил ...
- - - Добавлено - - -
Поэксперементировал - да, при 4-бит ( QUAD SPI ) режиме чтения 2 Кбайт есть, может немного больше.
Хм. Влобовая реализация 1-бит байтового обмена с развёрнутым кодом даёт 3+ кбайт/сек на чтение. Код:
; SPI bit-banging, read
; r0 -- bit shift buffer
; r1 -- destination memory pointer
; r2 -- 77777
; r3 -- SCLK->0 + SDO->1
; r4 -- 177714
; r5 -- SCLK->1 + SDO->1
; 177714.15 -- SDI
; @sp -- byte count
1$: ; 7
mov r3, @r4
cmp r0, @r4
mov r5, @r4
rolb r0
; 6
mov r3, @r4
cmp r0, @r4
mov r5, @r4
rolb r0
; 5
mov r3, @r4
cmp r0, @r4
mov r5, @r4
rolb r0
; 4
mov r3, @r4
cmp r0, @r4
mov r5, @r4
rolb r0
; 3
mov r3, @r4
cmp r0, @r4
mov r5, @r4
rolb r0
; 2
mov r3, @r4
cmp r0, @r4
mov r5, @r4
rolb r0
; 1
mov r3, @r4
cmp r0, @r4
mov r5, @r4
rolb r0
; 0
mov r3, @r4
cmp r0, @r4
mov r5, @r4
rolb r0
; store
movb r0, (r1)+
dec @sp
bne 1$
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot