Просмотр полной версии : ]Ламерских вопросов пост[
research
28.08.2013, 17:37
Решил создать один, чтобы не плодить зоопарк.
Вопрос первый (начинаю издали).
Изобретаю велосипед - SPI из говна и палок.
Спектрум будет master девайсом.
Тактовые импульсы будут подаваться дерганьем отдельного бита данных. Еще один бит будет для MISO и один для MOSI. Итого, 3 бита на шине данных. Остальные пока в резерве.
Чтобы избежать проблем с полетом мусора на подключаемое устройство (slave) биты идущие SCK и MISO будут защелкиваться в D-триггеры.
Чтобы не пожечь ШД спека, MOSI на шину данных будет даваться через MOSFET в распор (шинный формирователь ради одного бита считаю расточительством).
Собсно, вопрос по декодированию порта и рулежке данными.
Шину адреса понятно, 4-5 бит декодировать, /IORQ тоже понятно. Не понятно, почему аналогичные девайсы обходятся одним /WR (без /RD) - боюсь шину спалить, но и лишнего лепить не хочется.
Так понимаю, если активный /IORQ , то если не выставлен /WR, значит гарантированно активный /RD?
И не понятно, зачем M1 используется во всех этих делах.
Диаграммы зетника на чтение/запись ввода-вывода в даташите смотрел. М1 там нет.
Диаграммы зетника на чтение/запись ввода-вывода в даташите смотрел. М1 там нет.
зато есть iorq в цикле подтверджения прерывания, емнип.
Страница (http://www.zilog.com/force_download.php?filepath=YUhSMGNEb3ZMM2QzZHk1Nm FXeHZaeTVqYjIwdlpHOWpjeTk2T0RBdmRXMHdNRGd3TG5Ca1pn PT0=) 34/308.
research
29.08.2013, 01:47
TSL - те диаграммы ничего не прояснили
Тогда уж не знаю, что сможет прояснить...
research
29.08.2013, 02:17
там графики чтения/записи в память и т.п. про ввод/вывод и м1 - тишина
я могу и не врубаясь срисовать это дело со схем AY или вроде того, просто охота понять, зачем М1 в пачке
При ~IORQ должен быть неактивным ~M1 (так мы отличаем ин/аут от подтверждения ИНТа), а дальше - если не ~WR, значит всегда ~RD.
Запишу на верилоге:
wire io_n = iorq_n || !m1_n;
wire iord_n = io_n || !wr_n;
wire iowr_n = io_n || wr_n;
research
29.08.2013, 08:46
спасибо большое!
И это, не судите строго, пост все-таки ламерских вопросов.
Надеюсь замакетить железяку в ближайшем будущем.
shurik-ua
29.08.2013, 19:00
Чтобы не пожечь ШД спека, MOSI на шину данных будет даваться через MOSFET в распор (шинный формирователь ради одного бита считаю расточительством).
если нужно 1 бит забуферизировать - есть замечательная микруха
SN74AHC1G125
http://datasheet.octopart.com/SN74AHC1G125DCKR-Texas-Instruments-datasheet-13906.pdf
research
29.08.2013, 23:45
если нужно 1 бит забуферизировать - есть замечательная микруха
SN74AHC1G125
http://datasheet.octopart.com/SN74AHC1G125DCKR-Texas-Instruments-datasheet-13906.pdf
видел я ее на шилдах ардуины. она достаточно непросто добывается, а 2N7000 или BS170 есть на любом углу.
http://kosmodrom.com.ua/prodlist.php?page=0&name=+SN74AHC1G125&okbutton=%CF%EE%E8%F1%EA
research
30.08.2013, 01:24
Любимый магаз RST7, где есть ARM'ы по 3 бакса и т.п. В питере и тольятти таких магазов нет, например. По этому, только древность, только хардкор.
В питере и тольятти таких магазов нет
http://www.icshop.ru/Index/index?search=SN74AHC1G125
research
30.08.2013, 11:23
питерские торгаши способны выиграть конкурс на самую кислую рожу, когда узнают, что чип нужен один, а не 5 вагонов
для сравнения - www.icshop.ru/Index/index?search=2n700
(по идее, годятся и bs170 и 2n7000, 2n7002 и т.п. И они бывают TO-92 , можно макетить без особого гемора.). Так, что в данном случае, попытка сунуть мосфет (а не несколько в виде чипа) мне кажется оправданной.
---------- Post added at 11:23 ---------- Previous post was at 11:18 ----------
Еще ламерский вопрос
Дешифрация порта ввода-вывода ведется по ограниченному числу бит, обычно 3-5. Как делаются дешифраторы в таком случае?
Я имею в виду
а) по зажженым 4м битам шины адреса,
б)погашенным, или
в) смотрят что осталось из рассыпухи и раскидывают, чтобы маска порта совпадала и остальным портам не мешало?
Некорректный вопрос. Берутся те биты адреса, которые представляют интерес (остальные - в игнор), и составляется логическая функция, которая даст на выходе 0 или 1 (что именно нужно) при условии, что биты приняли именно те значения, что надо.
Про кислые рожи питерских торгашей вкурси :)
research
30.08.2013, 12:04
просто, компаратором не решился назвать, хотя логичнее компаратором - биты совпали с заданными, на выходе сигнал равенства.
Логическую функцию можно по разному оптимизировать, было интересно как обычно делается - исходя из красоты, или исходя из того, что есть в загашниках и чтобы корпусов было поменьше.
solegstar
30.08.2013, 12:49
Дешифрация порта ввода-вывода ведется по ограниченному числу бит, обычно 3-5. Как делаются дешифраторы в таком случае?
"обычно" - это 90-е года. сейчас делают жесткую дешифрацию по всем битам адреса, чтобы не было конфликтов с другими устройствами на шине данных.
если это будет карта для zx-bus, при операции "чтение из порта" желательно формировать сигнал "/iorqge" = 1 для отключения других устройств в слотах с меньшим приоритетом, а правильнее формировать "/iorqge" вообще только из шины адреса, вне зависимости от операции чтение/запись. "/iorqge" в неактивном состоянии должен быть в Z-состоянии.
[оффтоп] интересно, на сколько денег потянет эта рассыпуха и не дешевле ли сделать схему на EPM3032 с имеющейся прошивкой... [/оффтоп]
PS: автор молодец. упорство в нашем деле нужная вещь! :)
research
30.08.2013, 13:23
ну, я в альтерах не силен, но на атмеге 8, которая стоит меньше доллара, все делается.
Но тогда вопрос, кто к кому подключен?
По этому делаю на олдскуле, 555/1533/1564 (или что поменьше жрет, вроде 74HC/HCT , тем более их проще достать. ).
Рассыпуху шить ненадо, а значит осилит любой дядя вася, завязавший с паялом 30 лет назад. Три проводка почти везде отменяются, у всех ноуты, и нет RS232/LPT, еще один аргумент против программируемой логики. а 3-4 DIP микрухи распаять, почти любому под силу.
/iorge зачем давать? если вдруг дешифрация портов у нескольких железок сработает? На сколько помню, на скорпах такого сигнала нет. Только кай-пентева.
solegstar
30.08.2013, 14:41
/iorge зачем давать? если вдруг дешифрация портов у нескольких железок сработает?
при чтении из устройств два выхода на одну дорогу попадут - и хорошо, если они одного уровня будут, а если разного, то кз ессно.
На сколько помню, на скорпах такого сигнала нет. Только кай-пентева.
даже в желтом есть - /iorqce сигнал.
ну если драйверок будет, то отлично :) это ж таки программный будет SPI, а не аппаратный. если скорость обмена будет устраивать, то почему-бы и нет. ждемс схемку. :)
---------- Post added at 13:41 ---------- Previous post was at 13:04 ----------
Тактовые импульсы будут подаваться дерганьем отдельного бита данных. Еще один бит будет для MISO и один для MOSI. Итого, 3 бита на шине данных. Остальные пока в резерве.
Чтобы избежать проблем с полетом мусора на подключаемое устройство (slave) биты идущие SCK и MISO будут защелкиваться в D-триггеры.
для начала, надо бы разобраться в сокращениях:
MOSI (MASTER OUT SLAVE IN) - выход ведущего на вход ведомого.
MISO (MASTER IN SLAVE OUT) - выход ведомого на вход ведущего.
у тебя наоборот логика. У SPI есть еще и 4 пин - /CS выбор ведомого.
http://ru.wikipedia.org/wiki/Serial_Peripheral_Interface
Чтобы не пожечь ШД спека, MOSI на шину данных будет даваться через MOSFET в распор (шинный формирователь ради одного бита считаю расточительством).
на MISO можно поставить просто диод, катодом к MISO, анодом к биту шины данных. 0 будет проходить через диод, а 1 будет браться с резистора подтяжки шины данных.
research
30.08.2013, 16:11
Спасибо, перепутал ведущий и ведомый местами. Ламер :)
скорость будет катастрофа, осталось подтвердить это экспериментально. Главное, что делается из говна и палок, все вримитивно и стандартизоровано на сколько это возможно.
Сейчас даже WiFi сетевухи в SD формате есть, и много других SPI устройств. Если они терпеливые к быстродействию спектрума, то почему бы не задействовать их во благо?
Что до /IORGE , то чтение с двух устройств пойдет, если дешифраторы портов совсем кривые.
solegstar
30.08.2013, 16:24
...если дешифраторы портов совсем кривые.
бывает и такое.
скорость будет катастрофа, осталось подтвердить это экспериментально. Главное, что делается из говна и палок, все вримитивно и стандартизоровано на сколько это возможно.
Сейчас даже WiFi сетевухи в SD формате есть, и много других SPI устройств. Если они терпеливые к быстродействию спектрума, то почему бы не задействовать их во благо?
если уж собрался делать программный SPI, то почему не хочешь использовать магнитофонный вход (MISO) и выход (MOSI) в качестве сигналов SPI? они есть во всех спектрумах, остается сделать только SCK и /CS, которые можно повесить на тот же порт FE? Биты 5-7 свободны ведь. из микросхем - 1 защелка.
research
30.08.2013, 16:36
оно логично, но тогда карточкой в ZX-BUS дело не обойдется, каждый спек препарировать персонально.
solegstar
30.08.2013, 16:40
research, ладно, это всё лирика на тему "из г. и палок"... ждем схему)
research
31.08.2013, 00:22
да, работы по железу еще на месяцок моими черепашьими темпами. и софт надо бы
research
31.08.2013, 13:51
вот, нашел полезный документ:
http://zxdn.narod.ru/coding/zg45pent.txt видно, что подвязано как бог на душу положит, лишь бы уникальный набор адресных бит
research
06.09.2013, 00:29
Еще ламерский вопрос:
на сколько моветон делать "или" диодами?
research
09.09.2013, 01:52
еще вопрос: у спека притянута шина данных к питашке? можно же не давать с периферийного устройства явную "1", как с открытым коллектором? Шина адреса не подтянута?
На сколько сильно у них проседают уровни?
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot