PDA

Просмотр полной версии : Самодельный компьютер на Z80 и не только



Страницы : 1 2 3 4 5 [6]

AlexG
23.10.2020, 17:10
Почитайте документацию на сайте TI.com (не стоит читать "жёлтые" сайты)

Temych640
24.10.2020, 16:29
Еще один небольшой вопрос - я видел в некоторых схемах(например, в Ленинград-1 в связке с D1_F и D8_B), что диод стоит анодом на землю, зачем это делается?

Helbr
11.03.2021, 12:46
Это узел формирования сигнала INT. Защищает логический элемент от отрицательного напряжения на входе. Скорей всего ТТЛ элемент не сгорит, но на всякий случай поставили.

Voxel
21.03.2021, 21:10
Давно ни чем не занимался, приспичило собрать некое подобие компьютера из подручных материалов. Схема из двух модулей.

Возникла такая проблема, что не работает ВВ55а. При том выглядит это так: если за место тактового генератора на 3.5 мгц, подключить генератор с регулировкой частоты на NE555 и понизить частоту до не прилично низкой, то ВВ55А начинает работать, единственное сигнал CS надо посадить на землю, потому как с моей адресацией это не работает. Но стоит поднять частоту и все ВВ55А не пашет.

Подскажите где я ошибся? Да в ПЗУ прошит код вида переводим порты в режим вывода 0x80 потом начинаем выдавать значения в порт PB от 0 до 255, потом тоже самое в порт PC.

СХЕМЫ:
https://i.ibb.co/f0gCf5G/cpu.png (https://ibb.co/f0gCf5G)
https://i.ibb.co/z22C7hw/display.png (https://ibb.co/z22C7hw)

MM
21.03.2021, 23:12
Подскажите
1. Никак нельзя повысить разрешение скриншотов ? Обычно ставят софтовый принтер для перевода в ПДФ-файлы.
2. Осликом посмотрите фактическую форму тактового сигнала ( номинальной частоты ) на входе в ЦП ( ? ) Может, кварц на 2х работает ?
3. Если работает на сверхнизких частотах - проблема в том, что какие-то адресные выводы ППЗУ/СОЗУ могут висеть в воздухе, и при быстрой выборке на них будет шум. Это относится и к КМОП логике. ( Может, колодка зафлюсована ? )
4. Сверхдешовый 8-входной ЛА в наличии ? Посмотрите, на какой частоте и как выбирается ВВ55 ? Может, и ослик сгодится для контроля доступа...

b2m
22.03.2021, 10:28
Подскажите где я ошибся?
В качестве бреда: может не стоит замешивать IORQ к сигналам чтения/записи? Раз уж он уже на CS замешан, попробуй RD/WR напрямую пустить.

- - - Добавлено - - -


CS надо посадить на землю
Не надо так делать.

Serg6845
22.03.2021, 11:43
Давно ни чем не занимался, приспичило собрать некое подобие компьютера из подручных материалов. Схема из двух модулей.

Возникла такая проблема, что не работает ВВ55а. При том выглядит это так: если за место тактового генератора на 3.5 мгц, подключить генератор с регулировкой частоты на NE555 и понизить частоту до не прилично низкой, то ВВ55А начинает работать, единственное сигнал CS надо посадить на землю, потому как с моей адресацией это не работает. Но стоит поднять частоту и все ВВ55А не пашет.



в качестве примера можно взять схему АОН на Z80
например тут (http://igorkov.org/images/z80_aon01.gif)
там точно все работало без проблем.
ну и код глянуть было бы неплохо.

b2m
22.03.2021, 15:49
понизить частоту до не прилично низкой
А неприлично низкая это какая? Так-то ВВ55 вроде как не гарантирует работу на частотах выше 3МГц (но можно подобрать конкретный экземпляр, который сможет), обычно, если надо повыше, берут 8255.

OrionExt
22.03.2021, 15:51
СХЕМЫ:
https://i.ibb.co/f0gCf5G/cpu.png (https://ibb.co/f0gCf5G)
https://i.ibb.co/z22C7hw/display.png (https://ibb.co/z22C7hw)В оригинальных версиях EAGLE (до Autodesk) можно было печатать в PDF файл. Все видно, на форум приатачивается, доступно для осмысления третьими лицами ;)

Voxel
23.03.2021, 12:29
Спасибо, что отозвались))

По поводу приборов, осциллограф у меня древний, как мамонт, но я глянул форму сигнала тактового генератора, она примерно прямоугольная, как и должна быть. Частота работы генератора 3.5 мгц по частотомеру.

Логического анализатора к сожалению нет (надо бы купить). Платы отмытые и чистые.

Пробовал подключить ВВ55А на макетке заведя IORQ как CS, RD и RW напрямую, RESET по примеру АОНа вешал на землю. Пока ни чего не получилось.
На самом деле это меня вводит в ступор, ни как не думал, что не заработает. Сижу грущу над платой не знаю куда копать. Предположения такие, либо "ПОЧЕМУ-ТО" не правильные тайменги выборки, хотя это похоже на бред, как у других то работает. Либо, по не понятной причине, не происходит инициализация ВВ55А, и порты не переходят в режим вывода.

Работать начинает при частоте в десятки Герц я думаю, хоть и не мерял. Но стоит немного частоту поднять... надо бы проверить при зацикленном выводе и увеличении частоты... хм..

Схемы в PDF


74997
74998

MM
23.03.2021, 16:27
ни как не думал
Посоветую исходить из следующих основных положений при макетировании :
1. Все или некотрые ИС неисправны, в т.ч. по вине изготовителя.
2. Монтаж не достоверен
3. В колодках нарушен контакт от вывода до точки соединения с ИС
4. Измеряющая оснастка недостоверна ( здесь, видимо, это не так ).

5. Для печатных плат. Были использованы недостоверные библиотеки, в т.ч. Бренд и от участников форума ЗХ-ПК с Очень большим стажем электронщика.
6. Для печатных плат. В некотрых Кадах по неизвестным причинам могут отсуствовать дорожки из схемы, несмотря на наличие в файле платы и отсуствии "неразведенных" - т.е. по итогам в просмотрщике Герберов нужно проводить верификацию ручками, сверяясь с схемой ( да и прикладывая компоненты к рисунку платы ).
*
По существу вопроса - рядышком с ВВ55 навесьте порт на ИР23 или ИР37 и ИС выборки, и помигайте светодиодом программно, на рабочей частоте ЦП.
Есть достаточно большая вероятность, что у ВВ55 отвалились выводы от кристалла, особенно если это русский 1834 - у них ( в магазинах ) ПВГ совсем никакой.

Xrust
23.03.2021, 19:58
Voxel, ВВ55 самая склонная к сдыханию микруха из комплекта. Мне один раз целая партия дохлых попалась, долго не мог понять что не так. Если в остальном схема работает без ошибок, и разводка правильная, почти наверняка в ней дело.

kuber
07.11.2021, 13:49
Приветствую Всех.
Активность что-то по угасла.
Неожиданно стал обладателем графических дисплеев 240х128.
Уже интересное вырисовывается в "самодельный компьютер", хотя тоже мелковат.
Выглядит информативней по сравнению с дисплеем 128х64.
Планирую к своей поделке прикрутить LCD дисплей FDCG240128B.
Кто то использовал такого типа дисплеи.
У Temych640 в планах было задействовать сей формат дисплея.
Интересно узнать как получилось?
Моя архитектура 8088.

Sandro
07.11.2021, 16:27
Ну так паяй. Будешь героем-первопроходцем.

А мы тебя будем поддерживать и говорить всякие глупости.

Temych640
14.04.2022, 14:07
Здравствуйте. Пока не было возможности заниматься проектами, Я даже программатор ещё не купил, но плату какой-то миллионной версии своего компьютера кстати уже получил и начал сборку. Но так как в моей стране и городе началось какое-то безумие, все подробности смогу написать где-то через месяц.

Mick
13.01.2023, 19:29
Дальнейшее обсуждение на тему что посоветовать начинающему электронщику тут - https://zx-pk.ru/threads/34893-pervye-shagi-v-tsifrovom-mire.html?p=1170166&viewfull=1#post1170166

alm604
14.01.2023, 10:11
Давно слежу за этой веткой форума и мне очень нравятся поделки Ewgeny7 - столько процессоров запустить! Круто! Кроме этого мне нравится конструктор RC2014 одного британца, но вот эти контакты "расческа" мне не нравятся - платы шатаются, хлипко всё, контактов мало. Но сейчас отходит в прошлое стандарт PCI. Компактно, шаг 1.27, выводов много. Ну и решил я в эту сторону двигать. Развести основную плату со всеми контактами в параллель можно только на двуслойке, поэтому ЛУТ тут не поможет. Развел и заказал в Китае, уже пришли. Возможно, местами, неправильно некоторые решения. На дешевых платах 100*100 влезает 5 слотов. По бокам контакты для пайки - платы можно соединять (хоть это и чуть геморно) в группу, наращивая слоты.
Теперь развожу сами платки. Из архитектур у меня Z80, 8080, 8085, 8051 (да-да, там тоже можно неплохо в режиме процессора наворотить), 80188, 80186, MB90F497G, Hitachi H8/300, SH-2, SH-3. То есть и 8 и 16 бит. 32 бита уже сложнее, так как будет мало выводов в разъемах. Исходя из этого, и времени доставки плат, думаю, будет выгодно сделать максимально универсальные платы, например, памяти. Сейчас почти закончил SRAM. 4 микросхемы либо 62256 либо M5M51008. Почему такой выбор? Потому что они есть у меня и их можно купить на Али. Ну и плюсом сюда стандарт JEDEC, по которому распиновка более-менее стандартна у многих микросхем. Пайкой перемычек плата переделывается из 8 в 16 бит или наоборот. На очереди ROM. Там зверинец еще шире - DIP, PLCC, TSSOP. Надо уместить и сделать те же 8/16 бит.
По отладке сначала была мысль просто 74244 и светодиоды. Но на скоростях под 20 МГц от них толку мало. Кроме того, не все HEX просто так читают и мы не в 19 веке живем. Было у меня в одном проекте ПЛИС и 7-сементники. Удобнее. Теперь думаю уже просто ПЛИС + STM8 + USB-UART. Такой конструкцией можно перехватить шину и порыться в памяти или прошить ее. Типа отладчика выходит.
Проект весь в EasyEDA, платы максимально дешевые (100*100 мм) оттуда же заказываю на JLCPCB. Кто хочет присоединиться - добро пожаловать, могу открыть проекты для совместного пользования. У вас опыта больше, может какие-то хотелки еще появятся. Может быть я что-то изначально криво спланировал.
А то меня достал уже этот МГТФ при 16 битах шины и 20 битах адреса. Такая лапша, что всё желание пропадает искать, если что-то не работает.

- - - Добавлено - - -

78329
Как-то так. Зелёная плата - это макетка. Делал очень давно. Смысла почти нет, просто для понимания приложил.

kuber
31.03.2023, 10:51
Приветствую Всех.
Интересуюсь данной темой. Сам не определился с общим конструктивом в целом , всё получается бесформенная нагромождение плат.
Стремлюсь к унификации , процесс затягивается.
alm604 есть прогресс с Вашей задумкой?

alm604
31.03.2023, 11:15
Пару базовых плат запаял, развёл ОЗУ под планарные МС, так как первым делом буду собирать из того, что имеется. Почти развёл ПЗУ (DIP, PLCC, TSSOP), и тоже почти развёл плату отладки. Несколько плат сразу для того, чтобы понять какие выводы нужны и в каком порядке. Развожу в easyeda, пытаюсь уместиться в «почти халявные» 100*100 мм. Пока выходит аж по две платы на одном квадрате. При разводке проверяю доступность деталей на али. В одного такое не сильно просто делать(

Xrust
31.03.2023, 21:28
Я единственный серьезный недостаток усматриваю: для надежного контакта краевой разъем требует дорогое покрытие. Лужение не прокатит.

alm604
01.04.2023, 05:07
Электроника 60 на лужёных работала и работает до сих пор) На узле связи у нас на РЖД используется плата на 16 COM-портов PCI стандарта, лужёная. Проблемы были с дохлыми драйверами, но не с разъемом.
На самом деле, шатающийся разъём PLC набора RC2014 мне кажется более ненадежным. Там позже два ряда сделали, что улучшило ситуацию.

Xrust
02.04.2023, 00:42
У меня отрицательный опыт в этом вопросе. Самодельные simm30 с лужеными контактами раз в неделю приходилось перетыкать.

vegapiratradio
02.04.2023, 05:39
пф... заводские simm30 с лужением имели такую же особенность!

alm604
26.04.2023, 18:40
Товарищи, подскажите, пожалуйста, схемку бэкап питания для оперативки без спецмикросхем. Память есть и типа 62256 (один чипселект) и поболее (с двумя - /CS & CS). Места на плате осталось маловато, но вот эту штуку еще очень хочется втулить.

OlegarX
26.04.2023, 19:55
через два диода, оба катодами к вцц памяти а на аноды от батарейки и от основного питания

AlexG
26.04.2023, 20:53
по хорошему управляющие входы должны быть в неактивном состоянии при питании от батарейки. иначе "возможна не санкционированная запись в память"

alm604
26.04.2023, 21:11
по хорошему управляющие входы должны быть в неактивном состоянии при питании от батарейки. иначе "возможна не санкционированная запись в память"

Воот! А большинство памяти с CS2 еще и микропотребление обеспечивают, если Vcs2 < 0.3V (Ну или около того) и тут бы его на массу полевиком посадить, чтоб точно менее 0.3 было. Но полевику затвор надо открыть от резервной батареи. А с одним /CS - то же, но максимально к напряжению питания.

Про диоды-то для меня не секрет. И то бы их на полевики поменять. Просто думал у кого-то есть уже обкатанная схема, а то в продакшн платы отправлю, а потом мгтф опять(((.

AlexG
26.04.2023, 22:18
а доку почитать на память есть вариант? там может быть рекомендуемая схема включения.
пс: тип памяти в студию.
псп: часы именно на диодах резервируют практически все производители.

- - - Добавлено - - -

к примеру UTRON UT62256C требуется чтоб /ce был подтянут к питанию резерва (hi level) и брать надо
не UT62256CSC-70 (5ма), а UT62256CSC-70L (100мкА) или UT62256CSC-70LL (40мкА) (там где суффикс L или LL)

alm604
27.04.2023, 04:24
Благо распиновка JEDEC почти у всех. Именно я рассчитывал на 62256 и M5M51008, так как имеются и доступны на али. Сейчас ДШ на последнюю смотрел - уровень даже VCC-0.2 обеспечивает минимальный ток хранения. Про диоды по питанию согласен, Шоттки туда поставлю. Но вот на чипселект не хотелось бы мудрить дополнительную логику, что тоже есть просит.
А ещё для меня неприятной неожиданностью сегодня стала новость о невозможности заказа плат с JLCPCB в РФ. Верю, что всё изменится, но пока вот так. А я хотел уже плату доразвести и заказать(((

max232cpe
27.04.2023, 20:32
Благо распиновка JEDEC почти у всех. Именно я рассчитывал на 62256 и M5M51008, так как имеются и доступны на али. Сейчас ДШ на последнюю смотрел - уровень даже VCC-0.2 обеспечивает минимальный ток хранения. Про диоды по питанию согласен, Шоттки туда поставлю. Но вот на чипселект не хотелось бы мудрить дополнительную логику, что тоже есть просит.
А ещё для меня неприятной неожиданностью сегодня стала новость о невозможности заказа плат с JLCPCB в РФ. Верю, что всё изменится, но пока вот так. А я хотел уже плату доразвести и заказать(((

Я платы заказал через алит цены конечно по выше чем у JLC но зато отправляют в рф. Судя по отзывам и фото делают на томже заводе тока посредник другой.

AlexG
27.04.2023, 21:10
диод на vcc и другой на ce. ???
ps: 5 ма для батарейки литиевой cr2032 это дофига много. ищи память с микропотреблением.

Tronix
10.05.2023, 13:22
А у меня как всегда вместо компуцхера опять часики получились. Ну, в свое оправдание могу сказать, что камень все-таки компуцхерный - ВМ80:

http://forumimage.ru/uploads/20230223/167713627531269529.jpg

Вверху платы блок питания. Плата питается от входящих 12 вольт и формирует: минус 5 вольт, они появляются первыми, затем спустя ~15мс одновременно поднимаются 5 вольт и 12 вольт. Выполнено из того, что было прям сейчас под рукой, поэтому такое странное сочетание qfn, 0402, МЛТ, КТ315 и DIP =\ Минус пять вольт формируются на базе 1006ВИ1 по типовой схеме накачки электролита включенного обратно-полярно, далее линейный стабилизатор 7905.

На плате есть часы RTC PCF8563 (i2c шина), внешний датчик тепературы DS18B20 (1-wire шина), символьный 4-ех строчный дисплей (i2c шина), ну и кнопки конечно для установки часов/минут/enter. Все это обслуживает ВВ55:

http://forumimage.ru/uploads/20230225/167735188264218283.jpg

На этот момент мне казалось, что я наигралс с ВМ80 и его ассемблером, аж мозг раком встал. Все-таки наплодили они сущностей, DCR-DCX, CMP-CPI и тд - без открытой на втором мониторе мурзилки постоянно синтаксис путаю. Как же все-таки прекрасен x86 ассемблер, в который раз убеждаюсь ))) Ну ладно, это я что-то не по теме уже. Вообщем, ~33 килобайта ассемблерного таксебе_кода меня немного утомили и я решил как-то финализировать все это.

Поэтому, что бы плата просто так не валялась на столе сбацал коробку из веточек и спермоклея:

http://forumimage.ru/uploads/20230303/167782751200621649.jpg

Какая-то шкатулка из фанеры из фикс-прайса за 99.9 руб. Варварски дремелем пропилил отверстие под экран, по разметке "на глазок", оставив при этом по краям благородное винтажное обугливание фанеры и места пропилов по всему периметру среза =\
Внутри нет ни единого винта, все обильно залито спермоклеем в лучших китайских традициях:

http://forumimage.ru/uploads/20230303/167782777094554662.jpg

Кстати, часы дополнились тут после сборки платой о трех транзисторах:

http://forumimage.ru/uploads/20230303/167782790139017178.jpg

Это, как уже все догадались, регулятор подсветки. Потому что когда первый раз собрал офигел ночью - лупит эта подсветка по умолчанию ни чуть не хуже светильника ватт так на 15, всю комнату освещает всратым лунно-желто-блеклым светом. Ажно испугался сначала =\

Поэтому просто три ключа с разными резисторами в коллекторах - 15кОм, 10кОм и 0 ом (то есть полная). Таким образом есть теперь 4 положения подсветки - минимальная (15кОм), низкая (10кОм), средняя (15кОм+10кОм параллель=6кОм) и на "все бабки". В прошивке просто составил табличку по каким часам какую подсветку включать, типа того:


; abjust backlight level
; 06-07 = low
; 08-10 = medium
; 11-18 = high
; 19-20 = medium
; 21-22 = low
; 23-05 = minimum
abjust_backlight:

lda hours
call bcd2bin
lxi h,HR_TBL
mov e,a
mvi d,0
dad d
xchg
ldax d
sta backlight
ret
; 00 01 02 03 04 05 06 07 08 09 10 11
HR_TBL: db 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 3, 4
; 12 13 14 15 16 17 18 19 20 21 22 23
db 4, 4, 4, 4, 4, 4, 4, 3, 3, 2, 2, 1
Стало вполне хорошо.

Но.
Но! Спустя какое-то время решил развести нормальную плату, так как почуствовал, что еще не наигрался с ВМ80. И развел:

http://forumimage.ru/uploads/20230508/168355590579716569.jpg

Жопко:

http://forumimage.ru/uploads/20230508/168355590894676023.jpg

Дичайший микс (мешанина) из smd 0402, 0805, qfn, DIP и МЛТ. Потому что делал под себя, ориентируясь на то, какие детали у меня есть в наличии, что бы ничего не покупать для сборки.
Плату сделал еще в марте, 15 марта китайцы отправили и 4 мая платы приехали. То есть без недели доставка заняла ровно 2 месяца.
Ну и значит собрал экземплярчик:

http://forumimage.ru/uploads/20230508/16835562124258582.jpg

Все стартануло сразу, без всяких танцев с бубном, чему я несказанно рад. Даже кварц влепил ради эксперимента на 32 МГц, что дает нам 32/9=3,5555555555555556 MHz тактовой на ВМ80, и ГФ24 даже зачем-то вполне вменяемо работает на пару с ВМ80.

Это наверное даже уже не только часы, а и просто некая отладочная платка с ВМ80 на борту, к которой можно цеплять всякие интересные штуки как по GPIO с ВВ55, так и напрямую на шину данных - для этого служит вторая гребенка рядом с RAM с отдельным /CS по IO порту.
Например, есть желание прицепить сюда средних размеров экран с шиной, как бы странно это не звучало, 8080 и посмотреть с какой скоростью будет происходить заливка экрана 480x320. Ну и подобные эксперименты.

vegapiratradio
10.05.2023, 19:25
шикарно получилось, только один вопрос - вы уверены, что кварц запустился на частоте 32 мгц, а не на 10,666 мгц ?

Tronix
10.05.2023, 19:53
шикарно получилось, только один вопрос - вы уверены, что кварц запустился на частоте 32 мгц, а не на 10,666 мгц ?

Уверен, смотрел по ослу. На тех часах, что на макетке и в коробке стоит кварц 27 МГц, и в принципе, это предельно допустимое даташитное значение на i8224, но работает и с ГФ24 уже, считай, три месяца в режиме 24/7. Если не ошибаюсь, там стоят резисторы от ножек кварца на землю по 510 ом, как и сказано в интеловском даташите для кварцев >=18 MHz что бы как раз гасить не основные гармоники.

У той платы, что новая и только недавно собрал - у той поставил 32 МГц, и с резисторами от ножек кварца на землю по 510 ом как раз завелась на ~10 МГц. Но стоило их убрать и кварц завелся на номинале. Но справедливости ради, вроде частота немного плавает, и на выходе получается не ровно 32/9=3.555555556 MHz, а чуть меньше, примерно ~3.4 MHz. С разными ГФ24 получается разный результат, но в пределах 3.2 - 3.4 MHz.
Но оно и понятно, не расчетный режим. Но отладка на то и отладка, что бы всякие эксперименты ставить.

M80
10.05.2023, 20:33
Мужики! Но ведь в чём то фишка должна быть! В чём?

vegapiratradio
10.05.2023, 21:44
да не, я не за то, что гф24 на пределе, а за то, что обычно после 27 мег кварцы гармониковые идут и работаю на частоте в 3 раза ниже, кроме специальных.

- - - Добавлено - - -

to m80
фишка в том, чтоб создать что-то с нуля и заставить работать так, как тебе этого хочется.
разработка схемы, потом платы, пайка, написание прошивки, отладка, изготовление корпуса и вот, на выходе устройство!
получил опыт, кайфанул, можно переключаться на что-то другое, а приборчик, тем временем, приносит пользу и радует!))

Rio444
10.05.2023, 22:58
обычно после 27 мег кварцы гармониковые идут и работают на частоте в 3 раза ниже
Откуда инфа? Куча плат есть, на которых кварц 24...30 МГц, и работают вообще без проблем.
Обычно сложности начинаются, когда >30. И то, при правильной схеме генератора до 36 вполне работают.
Например, вот видеокарта, тут 35,5 http://www.amoretro.de/wp-content/uploads/oak_technology_oti037C_8bit_vga_grafikkarte.jpg

vegapiratradio
10.05.2023, 23:52
Откуда инфа?
опыт. перебрана не одна коробка кварцев и попадаются даже на 27 мег ровно, которые работают на 9мгц.


Куча плат есть, на которых кварц 24...30 МГц, и работают вообще без проблем.
так и пусть работают. это спец кварцы для цифровой техники.


Обычно сложности начинаются, когда >30. И то, при правильной схеме генератора до 36 вполне работают.
есть и на 36 мег кварцы которые не гармониковые.

Rio444
11.05.2023, 00:37
опыт. перебрана не одна коробка кварцев и попадаются даже на 27 мег ровно, которые работают на 9мгц.
В каком корпусе? Какая схема?
Честно говоря, плохо себе представляю, как работает гармониковый кварц. Имхо зависит от схемы. К какой частоте ближе собственная частота схемы, на той кварц и работает. Не так?
Было и такое, что 24 МГц работал на 8.

vegapiratradio
11.05.2023, 00:53
В каком корпусе?
в основном корпус МД в российском обозначении или забугорное HC49U.
схема обычная емкостная трехточка.
гармониковый, это когда основная частота в 3... 5... раз ниже и нужен еще контур на рабочую частоту и тогда все будет ок.



Имхо зависит от схемы.
для гармоникового исключительно зависит от схемы! более того, в основном, классическая схема на двух логических элементах, запускает гармониковые кварцы не на основной частоте, а в несколько раз ниже.

Было и такое, что 24 МГц работал на 8.
не могу сказать, что я удивлен, но гармоникового на 24 мег в моей коллекции нет.

Rio444
11.05.2023, 09:36
не могу сказать, что я удивлен, но гармоникового на 24 мег в моей коллекции нет.
Так он и не гармониковый. У него номинал 24 30.
Вспомнил, что всё же номинал 30, а работал на 10.
В то время, как 24 и и 27 как раз работали на номинале.
То есть видимо схема не тянула 30 и он заводился только на 10.


более того, в основном, классическая схема на двух логических элементах, запускает гармониковые кварцы не на основной частоте, а в несколько раз ниже.Видимо в этом и дело. Быстродействия инверторов не хватает. Нужно оставлять один.


P.S.
Вот интересная схема. Используется всего один довольно медленный инвертор 74LS04 https://b.itemimg.com/i/292733929.0.jpg
78866

Serg6845
11.05.2023, 13:08
не могу сказать, что я удивлен, но гармоникового на 24 мег в моей коллекции нет.

я столкнулся. там правда непонятная история - на древней мультикарте перестал работать флоп. расследование показало что кварц на 24 (маркировка 24.000) генерит 8МГц. ставлю другой с такой же маркировкой - генерит 24. причем этот который генерит 8 - изначально на этой плате работал...

andrews
11.05.2023, 13:36
Состарился и параметры поплыли. У генераторов Mercury это в паспорте оговаривается насколько я помню.
Типо "Aging △F / F : ± 3 ppm / year ( max.)"
24.000 так вроде гармониковые и обозначаются. Значит генерил новый на третьей гармонике.

- - - Добавлено - - -


ставлю другой с такой же маркировкой - генерит 24
не работал должно быть, вот и не состарился. К тому же где гарантия, что оба из одной партии? Если тираж не 1000 шт. почему бы генератор smd вместо кварца не поставить? Если процессор от генератора умеет работать.

Serg6845
11.05.2023, 15:41
24.000 так вроде гармониковые и обозначаются. Значит генерил новый на третьей гармонике.


достоверной информации не нашел. но в наличии есть с маркировкой 4.000 и 6.000 на 4 и 6МГц соответственно - сильно сомневаюсь что они гармониковые.


не работал должно быть, вот и не состарился. К тому же где гарантия, что оба из одной партии? Если тираж не 1000 шт. почему бы генератор smd вместо кварца не поставить? Если процессор от генератора умеет работать.

тираж - 1 штука, починится - хорошо, нет - и хрен с ней. тот генератор стоить будет дороже всей карты. а кварц - он в тумбочке есть.

i8088
11.05.2023, 16:25
У той платы, что новая и только недавно собрал - у той поставил 32 МГц, и с резисторами от ножек кварца на землю по 510 ом как раз завелась на ~10 МГц. Но стоило их убрать и кварц завелся на номинале. Но справедливости ради, вроде частота немного плавает, и на выходе получается не ровно 32/9=3.555555556 MHz, а чуть меньше, примерно ~3.4 MHz. С разными ГФ24 получается разный результат, но в пределах 3.2 - 3.4 MHz.
Но оно и понятно, не расчетный режим. Но отладка на то и отладка, что бы всякие эксперименты ставить.
Многовероятно, что у Вас кварц в таком случае работает просто как емкость, тк такого большого отклонения с
кварцем не должно быть. Собственно, на ГФ24 я даже функциональный генератор делал, и статью писал про это (стр15).
https://djvu.online/file/BP8UF4pjvnOdu?ysclid=lhjeebmmp555410888

А устройство классное, большой респект!!+++++

Rio444
11.05.2023, 17:01
кварц в таком случае работает просто как емкость, тк такого большого отклонения с
кварцем не должно бытьЛогично. Но почему он не заработал на третьей гармонике?
Кстати, Эмиль, тебе не попадалась методика расчета кварцевого генератора на одном (КМОП) и двух (TTL) инверторах?
В частности этой схемы:
78867
Как подбирать значения резисторов и конденсатора, в зависимости от частоты?

andrews
11.05.2023, 17:12
достоверной информации не нашел. но в наличии есть с маркировкой 4.000 и 6.000 на 4 и 6МГц соответственно - сильно сомневаюсь что они гармониковые
уточнил, так что можно не сомневаться если написано 4000 кГц то работает на первой гармонике, а если 4.000 MHz то этот работает на 3 гармонике. Надежнее(при прочих равных) естественно те, что работают на первой.

Rio444
11.05.2023, 17:15
если написано 4000 кГц то работает на первой гармонике, а если 4.000 MHz то этот работает на 3 гармонике
Интересно. Это касается только отечественных кварцев, или всех?
Есть, так сказать, официальная информация по этому поводу?

andrews
11.05.2023, 17:18
что кварц на 24 (маркировка 24.000) генерит 8МГц
вместо 3 гармоники заводится на первой!

- - - Добавлено - - -


Это касается только отечественных кварцев, или всех?
я про это узнал от одного прошаренного перца во времена СССР в начале 90-х( он у меня работал типо главным проектировщиком в двух проектах, а до этого вед. инженером-электронщиком в известной ленинградской конторе, которую закрыли в 90-е внезапно. Люди пришли в пндк на работу, а на входе автоматчики и всех в отдел кадров на увольнение без компенсаций и выплат выходных пособий) и у меня самого в коллекции больше советские кварцы. Лежали без работы 35 лет, так что надо проверить не состарились ли гармониковые?

Вот видео есть, но это конечно не официальная информация
https://electroinfo.net/radiodetali/kvarcevye-rezonatory-princip-raboty-i-sfera-primenenija.html
Режим работы резонатора (номер гармоники)

Serg6845
11.05.2023, 17:56
Интересно. Это касается только отечественных кварцев, или всех?
Есть, так сказать, официальная информация по этому поводу?

если написано 4000_кГц_ - то явно отечественный (точнее скорей советский). и по ним была информация (хоть и на уровне ОБС) что если маркировка в кГц - основной, если в МГц - гармониковый. у меня в данном случае импортные, и достоверной информации я не нашел.

вот еще нашел - маркировка 1.8432
если 4МГц сильно притянув за уши еще можно поверить что гармониковый - то этот - я лично не верю.

Rio444
11.05.2023, 18:02
Да, путаница с этими кварцами.
Если кварц может работать на частоте 30 МГц и 10 МГц, какая из этих частот основная, какая гармониковая (3-я гармоника)?
Разобрался.

Основная частота кварца не бывает больше 20 мгц. Это связано с размерами и конструкцией пластины. Частоты выше 20 мгц получают возбуждением генератора на нечетных гармониках. Третья, пятая, седьмая и т. д. Обычно используют возбуждение на двух первых, ибо на более высоких гармониках возбуждение менее устойчиво и низкая амплитуда на выходе.
Если на корпусе обозначена частота более 20 мгц, это означает, что резонатор гармониковый. Конструкция пластины и вид колебаний пластины специально рассчитан для работы на этой частоте. Но это не значит, что он не будет работать на первой гармонике.
То есть, для всех кварцев с номинальной частотой выше 20 МГц, эта частота является 3-й гармоникой.
Но если схема генераторы не тянет такую частоту, то кварц может переходить на первую гармонику, то есть на частоту в 3 раза меньше.

Serg6845
11.05.2023, 18:11
Да, путаница с этими кварцами.
Если кварц может работать на частоте 30 МГц и 10 МГц, какая из этих частот основная, какая гармониковая (3-я гармоника)?

гармоника по определению больше основной частоты. основная - 10, гармоника - 30. оптимизирован под ту частоту что указана в маркировке.

Rio444
11.05.2023, 18:13
Serg6845, спасибо, выше это же и написал.
Больше всего сбивает с толку "основная частота" и "номинальная".
"Номинальная" вполне может быть и "основной" и "гармониковой". А "основная" не быть "номинальной".

M80
11.05.2023, 19:22
фишка в том, чтоб создать что-то с нуля и заставить работать так, как тебе этого хочется.
разработка схемы, потом платы, пайка, написание прошивки, отладка, изготовление корпуса и вот, на выходе устройство!
получил опыт, кайфанул, можно переключаться на что-то другое, а приборчик, тем временем, приносит пользу и радует!))
Ну да, согласен. Только сейчас есть помощники в виде ПК, планшета и прочих. А вот в своё время ничего этого не было. И тогда действительно приходилось лепить с нуля! Просто с нуля! Пультик, пошагиватель... Набиваешь программку... Затем программируешь УФ ПЗУ... Вот она молодость! Да и девки совсем другие были...)))

ivagor
11.05.2023, 20:27
Основная частота кварца не бывает больше 20 мгц.
Это взято из какой-нибудь книги советского времени? С тех пор многое поменялось, можно посмотреть каталог производителя (например (https://www.endrich.com/sixcms/media.php/2308/SMI%20catalogue%202015.pdf)) и увидеть у кварцев с Fundamental (не с 3rd или 5th Overtone) диапазоны частот. Или глянуть каталог отечественных продавцов, для примера тут (https://www.quartz1.com/price/price.php?par1=32000&par2=&par3=&par4=&par5=&group=430&freq1=30000&freq2=40000) для 32 МГц из 65 примерно половина с 1Г.

Tronix
11.05.2023, 20:48
Многовероятно, что у Вас кварц в таком случае работает просто как емкость, тк такого большого отклонения с
кварцем не должно быть. Собственно, на ГФ24 я даже функциональный генератор делал, и статью писал про это (стр15).
https://djvu.online/file/BP8UF4pjvnOdu?ysclid=lhjeebmmp555410888

А устройство классное, большой респект!!+++++

Очень даже может быть, спасибо, почитал статью с интересом. Ну я думаю, что буду еще играть с кварцем и ГФ24 и проведу ряд экспериментов.

Rio444
11.05.2023, 20:57
Это взято из какой-нибудь книги советского времени?Нет, это с одного из радиолюбительских форумов.
Естественно информация могла устареть. Но в данном случае главное - сама идея, почему существуют гармониковые кварцы.
И в моём случае это актуально, т.к. в сфере интересов старая техника, выпускавшаяся 20-лет назад и ранее.

i8088
12.05.2023, 09:52
Кстати, Эмиль, тебе не попадалась методика расчета кварцевого генератора на одном (КМОП) и двух (TTL) инверторах?
В частности этой схемы:
Нажмите на изображение для увеличения. Название: PC_XT.jpg Просмотров: 7 Размер: 21.6 Кб ID: 78867
Как подбирать значения резисторов и конденсатора, в зависимости от частоты?
Методики не припоминаю. Соображения такие. Для TTL резисторы должны хотя бы обеспечивать линейный
режим работы элемента. Собственная частота колебаний в схеме (если она возбуждается с одними емкостями)
должна быть близка к желаемой.

Или же для возбуждения на желаемой гармонике коэффициент передачи дифференцирующей CR цепи (C81R07)
на первой гармонике должен быть заметно меньше, чем на третьей. Те частота среза CR цепи (1/(6.28*RC)) должна
быть около желаемой частоты возбуждения. Иногда (особенно в приемопередающей технике) применяют настроенный
контур, для возбуждения на нужной гармонике.

Собственно, гармониковые кварцы используются из-за затруднительности изготовления резонаторов на большие частоты
и падения добротности их выше определенной частоты. Я посмотрю дома у меня есть хорошая старая двухтомная книга
" Радиотехнический справочник" (перевод с немецкого), где целая глава про кварцы

i8088
13.05.2023, 12:05
Я немного добавлю свои соображения.

У кварцев могут быть еще паразитные частоты (не гармоники), при не совсем
качественном изготовлении (из книги). Там же указано, что наилучшие результаты
получаются от 60KHz до 5Mhz (не спроста в старых частотомерах ставили кварц на
5MHz, а потом умножали частоту).

Более строго, относительно работы на гармониках. Чтобы возбудить кварц на желаемой
гармонике, нужно чтобы коэффициент передачи цепи ОС на желаемой частоте был
выше, чем на других. Но посколько добротность кварца на гармониках скорее всего
меньше, то при примерно равных коэффициентах передачи цепи ОС (с учетом сдвига
фазы, тк этот сдвиг фазы кварцу придется компенсировать для выполнения условия
самовозбуждения), можно предположить, что будет более вероятно возбуждение на
низшей гармонике (в пределах одинакового коэффициента передачи ОС). А для работы
на нужной гармонике нужно добится увеличения коэффициента передачи на ней, в
простейшем случае хотя бы подстройкой CR звена, как я писал выше.

Это легче представить себе, если вспомнить эквивалентную схему резонатора:
последовательно включенные большая индуктивность, маленькая емкость и
сопротивление потерь. И все это зашунтировано емкостью кварц-держателя.
Гармониковые частоты можно представить себе как дополнительные
последовательные LCR цепи, включенные параллельно основной. Понятно, что
в таких цепях в определенных условиях возможна генерация на разных частотах
и даже перескок частоты при внешнем воздействии.

Ну и не забываем про то, что у кварца возможны два резонанса - последовательный
и параллельный. Частота параллельного резонанса чуть выше и определяется той
же фиктивной индуктивностью и емкостью кварц-держателя, включенной
последовательно с маленькой эквивалентной емкостью кварца. Чем выше
добротность резонатора, тем меньше отношение этих частот.

- - - Добавлено - - -


Дичайший микс (мешанина) из smd 0402, 0805, qfn, DIP и МЛТ. Потому что делал под себя, ориентируясь на то, какие детали у меня есть в наличии, что бы ничего не покупать для сборки.
А кстати, напомнили. У меня есть старые промышленные платы (Motorola, Alcatel)
от коммуникационного оборудования, так там смесь - и DIP, и SMD, и планарные
микросхемы (причем последние припаяны с обратной стороны платы). Еще
применяются интересные SMD резисторы, круглые, синего цвета.

Tronix
03.10.2023, 09:54
Меж делом завел экранчик 480x320 3.5" ili9486 8 bit parallel (SKU:MAR3501) на платке с ВМ80, которую тут показывал парой страниц ранее:
https://zx-pk.ru/threads/25682-samodelnyj-kompyuter-na-z80-i-ne-tolko.html?p=1178397&viewfull=1#post1178397

http://forumimage.ru/uploads/20230927/169583872051176026.jpg

Честно сказать - намучился я с ним прилично. Сначала не мог его заинитить - собирал по всему инету последовательность инициализации, включая какие-то китайские борды, форумы андруинщиков, github - нет инита и всё. А дело было всего-лишь в перепутанных проводах к экрану D6 и D7 - просто воткнул неправильно пины. Потом начал ловить какие-то внезапные перезагрузки прошивки, сделал даже "шагатель" по классике из журнала Радио, хотя он мне мало помог. Короче дело было в том, что на плате у меня на процессоре перепутаны адресные линии A14 и A12 местами, поэтому когда прошивка выросла код улетал в неведомые дали. А распиновку 8080 я взял похоже просто в гугле забив "8080 pinout", и первая подвернувшаяся картинка оказалась неправильной. Ладно, исправил парой проводков МГТФ и все уже поехало как надо.
Какие из этой грустной истории выводы? Да банальные - 1) всегда читай официальные даташиты и мануалы от производителя, а не смотри картинки в гугле; 2) сделал жгут проводов - прозвони его тестером, что соединение есть и что провод А приходит в точку А, а не в точку Б;

Когда все заработало как надо по аппаратной части переписал на асм основные функции работы с дисплеем и особенно функции заливки дисплея, скорость возросла в разы по сравнению с си-вариантом. Тут тот самый случай, когда важен каждый такт и одна лишняя инструкция в цикле существенно сказывается на быстродействии. Ведь старичку ВМ80 для полной заливки экрана нужно прокачать 480x320x2 байт (~300 Кб) через шину. Конечно, экран очищается не моментально, но уже терпимо. Ну и до кучи прикинул шрифт с альфаблендингом (плавным переходом цветов на краях изображения), что потребовало чисел с плавающей запятой:

http://forumimage.ru/uploads/20230927/169583872279574962.jpg

Благо в z88dk это решается просто подключением математической библиотеки. Она конечно жрет место, и очень даже заметно, но на период отладки терпимо. Дальше можно все в таблицы загнать, когда будет понимание всех цветов и элементов интерфейса.

С этим экраном без нормального отладчика работать такое себе, это не ИН'ки или матричные светодиодики... Каждый раз доставать из панельки, стирать EEPROM'ку, прошивать EEPROM'ку, вставлять обратно в панельку - и так сотни раз на период рисования интерфейса - удобства доставляют мало. Да, я знаю что есть "эмуляторы ПЗУ", знаю что можно было бы просто поставить на плату USART (да хоть тот же 580ВВ51), написать небольшой бутлоадер и шить флешку прямо в схеме и тд и тп. Но как сделано так сделано. Поэтому пришлось написать на скорую руку типа эмулятор данной 8080 платформы - ядро эмулятора 8080 ctrl+c/ctrl+v с гитхаба, вывод на экран через SDL, обработка кнопок там же. Ну и сбоку немножко логики заполнения экрана ili9486 и обработки портов в/в. Стало гораздо проще и плату можно вообще пока отложить в сторону.

http://forumimage.ru/uploads/20231003/169631554797952846.png

А вчера вечером решил прикрутить кнопки и внезапно столкнулся с глюком - при чтении данных из порта 580ВВ55 у меня читался мусор. Понятно, что конфликт на шине, я предположил что виной всему упрощенный дешифратор адреса порта в/в, выполненный на одном инвертере - а именно /CS ВВ55 это линия A4, а /CS на экран - это инвертированная A4, таким образом по задумке 0-Fh это порты ВВ55, а 10h-1Fh это порты экрана. Думал что из-за задержки прохождения сигнала через инвертер возникает иголка и экран и ВВ55 одновременно отвечают и вот он и глюк. Сидел пол-ночи ловил эти иголки, переделал дешифратор на ИД7 - нихрена. А утром взглянул на сам экран - и вот оно. На экране установлены пара левел-шифтеров, выполненных на 74LVC245, и у одного из них, отвечающего за шину данных /OE жестко прибит на землю:

http://forumimage.ru/uploads/20231003/169631572175627523.png


Поэтому когда я читаю что-либо из какого угодно порта он выставляет на шину мусор. Солюшен прост - отрезать /OE от земли и завести его на /CS экрана, что и было проделано с помощью скальпеля и МГТФ:

http://forumimage.ru/uploads/20231003/169631572863177181.jpg

Ох уж эти китайцы затейники, ладно, продолжаем...

http://forumimage.ru/uploads/20231003/1696315725842410063.jpg

M80
03.10.2023, 10:50
Каждый раз доставать из панельки, стирать EEPROM'ку, прошивать EEPROM'ку, вставлять обратно в панельку - и так сотни раз на период рисования интерфейса - удобства доставляют мало.
Не люблю дурную работу. С начала 2000-х активно использовал параллельную Flash 28-й и 29-й серии. Программируется внутрисхемно, по последу. Нет аппаратного - легко пишется программный. Да и с любыми МК аналогично. Эти вынимания/вставляния просто бесят.

ALS
03.10.2023, 13:31
Как компромиссный вариант - ПЗУ вставляется в панельку, а уже та - в панель на плате.
"Доставаемость" такого бутерброда улучшается в разы.

Reobne
03.10.2023, 14:38
что потребовало чисел с плавающей запятой:
Есть ещё числа с фиксированной запятой...

M80
03.10.2023, 16:41
"Доставаемость" такого бутерброда улучшается в разы.Тут же не только доставаемость. Самый простой вариант - ОЗУ, даже без батарейки, чисто для отладки. Остаётся только загрузка - уж чем хош.)
Ну да. Хотя бы на один раз батарейка нужна.)

Hunta
03.10.2023, 16:57
Как компромиссный вариант - ПЗУ вставляется в
http://www.kpxx.ru/dnepr/MS1201/V2.0/ZIF/WP_20190831_007.jpg

ALS
03.10.2023, 17:32
Hunta, ну да, точно. "Семён Семёныч..." (с)

M80
03.10.2023, 17:46
Офигеть! Это когда нет доступа к ПО и тупо играешься прошивками. Тогда да, прогресс!

ALS
03.10.2023, 18:26
M80, таладно )
Тупо - это когда на ровном месте сливают в тему какой-то свой особо выстраданный негатив.
Порекомендовали 28-29 серии ? Спасибо. А зачем дальше-то офигевать ?

M80
03.10.2023, 20:07
Та ладно.) Только не надо мне указывать что делать - лучше аргументы. И я высказываю своё личное мнение. ОК? Ну, если не нравится - что ж поделаешь...

Tronix
04.10.2023, 07:40
Не люблю дурную работу. С начала 2000-х активно использовал параллельную Flash 28-й и 29-й серии. Программируется внутрисхемно, по последу.


Да, я знаю что есть "эмуляторы ПЗУ", знаю что можно было бы просто поставить на плату USART (да хоть тот же 580ВВ51), написать небольшой бутлоадер и шить флешку прямо в схеме и тд и тп.


Нет аппаратного - легко пишется программный.
Насчет программного - не так что бы легко, но пишется, да. А не легко, потому что скорость ногодрыга ВВ55 ограничивается 10-тью тактами команд in/out + плюс еще нужно куда-то положить байт который приняли и это простым поллингом, потому что никаких прерываний от ВВ55 разумеется нет. То есть нужно посчить потактово всю функцию целиком приема байта, как-то подогнать ее под скорость тактирования ВМ80 что-бы она хоть издали напоминала какой-то стандартный баудрейт. Плюс надо когда получили байт как-то умудрится еще не потерять следующий байт, пока мы с первым возимся. Ну и в результате скорость по грубым прикидкам вряд-ли будет больше 2400 bps, а возможно даже еще меньше, типа 1200 bps. На 1200 bps прокинуть 32 Кб - это чуть ли не медленнее, чем вытащить микруху и прошить в программаторе.


Да и с любыми МК аналогично. Эти вынимания/вставляния просто бесят.
любые МК, даже ацки древние, имеют на борту хотя-бы один таймер и прерывание от него, что в разы упрощает программный UART, и на МК действительно программный UART пишется легко и непринужденно. Но у меня тут как бы не МК, если что.

Если вы думаете, что вы открываете мне какую-то ИСТИНУ, то смею заверить что это не так. Я довольно много работал/работаю и с PIC16, и с MSP430, и с NXP ARM (LPC2364/8) и с STM32 и некоторые базовые вещи типа программного UART и/или бутлоадера позволяющего прошить внешнюю или внутреннюю флешку разумею. Но повторюсь - тут у меня не МК и есть некоторые нюансы.

Поэтому решение с эмулятором в данном конкретном случае перевесило все за и против по сравнению с внутрисхемной прошивкой.

M80
04.10.2023, 08:35
Некоторые сложности перевешиваются удобством. Делается то один раз, а используется всё время. Естественно, это когда интенсивно меняется программа - тут уж сами должны считать что затратнее. Конечно, если есть эмулятор - это, в общем то, излишнее.
Касательно софтового UART - немножко муторно конечно. Нужно суетиться и считать такты. С 8080 я не делал, делал на Z80 - ну а какая разница? Z80 4мгц - 9600 без проблем, на 8 - 38400, с ухищрениями - 76800, выше не пытался. Это ввод/вывод на терминал - при загрузке же вообще никто не мешает.

Tronix
08.10.2023, 18:47
Пилю потихоньку прошивку для часиков на 580ВМ80 с TFT-экранчиком. Набросал интерфейс а-ля "я у мамы UX/UI дизайнер". Избавился от чисел с запятой, перевел все на целочисленную арифметику, оптимизировал альфа-бленд. Сделал самую нудную часть, а именно режим установки и изменения даты/времени с кнопок. Три кнопки - кнопка "SET" - попеременно перебирает все изменяемые параметры (часы/минуты/день недели/день/месяц/год), подсвечивая текущий параметр оранжевым:

http://forumimage.ru/uploads/20231008/169677924850197073.jpg

И кнопки "плюс" и "минус" - соответственно меняют текущий параметр. Если после нажатия "SET" никакая кнопка не нажимается в течении 5 секунд, то выходит из режима установки. Итого, уже работают: собственно, часы и календарь, режим установки параметров, показывается реальная температура с 1-wire датчика DS18B20. Не сделано - датчик влажности, на экране просто пока статичная надпись 67% (заглушка):

http://forumimage.ru/uploads/20231008/16967793958177810.jpg

Когда доделаю влажность, в конце еще хочу график на плитках температуры и влажности прикрутить, что-то по типу как на картинке:

http://forumimage.ru/uploads/20231008/16967794742473639.jpg

Но пока не понял еще - то ли сплайнами его рисовать или всякими кривыми Бизье, то ли просто точками. Надо поэкспериментировать с разным набором данных... Сплайнами конечно красиво будет, но что-то я уже начинаю постепенно упираться в размер 32Кб EEPROM'ки. Си конечно всем хорош, кроме как размером бинарников. А целиком на асме я бы погиб такое писать -) Ладно, посмотрим как пойдет.

M80
08.10.2023, 19:04
ОК. Зацепили Tronix меня ваши проблемы. Решил собрать UART на безымянном контроллере - минимум проводов. Накидал, только не отладился ешшо.

Tronix
08.10.2023, 19:15
Зацепили Tronix меня ваши проблемы.
Да вроде бы у меня особых проблем нет, ну по крайней мере с этой платой и часиками -)

M80
09.10.2023, 08:41
Ну а кто, как не вы, говорили о проблеме 100-разовой перепрошивки 27хх? И я это прекрасно понимаю. Сам такой был.

M80
17.10.2023, 18:04
Думаю, наиболее просто иметь Ардуино, и подключаться 3-мя концами к схеме на CPU 8080. У меня z80/2 мгц. На 2,5 мгц тоже работает.
Идея в том, что Ардуино по запросам от CPU выставляет данные с USB-UART. При этом CPU нет необходимости привязываться к временам UART. Скоростью UART можно играться. Думаю, 38400 вполне.
Код Ардуино очень прост:

// z80 <- Arduino serial 17:27 17.10.2023 OKF

#define NAME "z80 <- Arduino serial"
#define VERSION "0.3"
#define UART_BAUDRATE 19200

#define WAIT_TIME 0 //debug

// GND
#define WAIT 2 //PORTD!
#define DATA 3
#define IOR 4

#define in(x) DDRD &= ~(1<<(x))
#define out(x) DDRD |= 1<<(x)
#define on(x) PORTD |= 1<<(x)
#define off(x) PORTD &= ~(1<<(x))
#define pin(x) (PIND & 1<<(x))

#define di() cli()
#define BAUD_SETTING ((F_CPU / 4 / UART_BAUDRATE - 1) / 2)
#define con_begin() (UBRR0H = BAUD_SETTING>>8, UBRR0L = BAUD_SETTING, \
UCSR0A = 1<<U2X0 | 1<<UDRE0, UCSR0B = 1<<RXEN0)
#define con_available() (UCSR0A & 1<<RXC0)
#define con_read() UDR0


void setup() {
on(WAIT); out(WAIT);
con_begin();
di();
}


// выставим стартовый бит по запросу от CPU
inline void put_start() {
while (pin(IOR)); //ждём IOR
off(WAIT); //тормозим CPU
off(DATA);
out(DATA); //выставляем старт бит
_delay_ms(WAIT_TIME);
on(WAIT); //запускаем CPU
while (!pin(IOR)); //ождаем снятия IOR
in(DATA); //убираем старт
}


// биты данных по запросу от CPU
inline void put_data(uint8_t c) {
while (pin(IOR));
off(WAIT);
c & 1 ? on(DATA) : off(DATA); //выставляем данные аналогично старт
out(DATA);
_delay_ms(WAIT_TIME);
on(WAIT);
while (!pin(IOR));
in(DATA);
}


// стоповый бит
inline void put_stop() {
while (pin(IOR));
off(WAIT);
on(DATA);
out(DATA); //стоп
on(WAIT);
while (!pin(IOR));
in(DATA);
}


void loop() {
if (con_available()) {
uint8_t ch = con_read();
put_start();
for (uint8_t i = 0; i < 8; i++, ch >>= 1)
put_data(ch);
}
put_stop();
}


Со стороны CPU:

; serial from Arduino

PIN equ 0 ;RX_PORT, D7 - data


; wait start bit
loop1 defl $
in a,(PIN) ;wait request
ld b,4
loop defl $
djnz loop

rlca ;d7
jr c,loop1

ld b,8 ;receive data
loop defl $
in a,(PIN)
rlca ;d7
rr c
djnz loop

loop defl $
in a,(PIN) ;stop
rlca ;d7
jr nc,loop

call ConOut
jr loop1

Tronix
17.11.2023, 12:01
Значит, купил я на алишке все-таки датчик давления/влаги типа BME280. По этому случаю в интерфейсе опять появились снизу три плитки, как и было задумано с самого начального начала. Собственно, для температуры, влажности и давления:

http://forumimage.ru/uploads/20231027/16983967279205936.jpg

Теперь у меня даже есть две температуры - одна с датчика DS18B20 и вторая с BME280. Решил температуру показывать с DS18B20, так как она поточнее:

http://forumimage.ru/uploads/20231027/169839673306872463.jpg

Оказалось, что 32 килобайта EEPROM - это не так уж и много для 8080, си и картинок. В таком виде почти уперся в 30 килобайт. В целом это уже вполне рабочие часы/градусник/показометр, но на разные свисто-перделки места остается маловато. Адресное пространство щаз поделено поровну - 32кб ROM и 32кб RAM. При этом битовое представление шрифтов + иконки занимают 24469 байт, упаковываются алгоритмом типа lz (zx0) в ~13910 байт и стыкуются с кодом. Сам код занимает ~16 кб. Но к нему прибавляется упакованный битмап ~14кб и получаем 30кб которые надо писать во флеху (EEPROM). При старте платы из EEPROM весь этот статичный упакованный массив битмапов распаковывается в RAM и уже код работает с ним. Итого, помимо почти забитого 30кб EEPROM при старте еще и RAM заполняется минимум на 24 кб, без учета стека, глобальных переменных и массивов.

Варианты развития событий конечно есть:
1) Забить и оставить примерно все как есть на данный момент. Просто часы/дата/термометр/показометр;
2) Прицепить сбоку SPI-флешку, куда засунуть все битмапы;
3) Городить маппер (схему, позволяющую переключаться между различными банками памяти в одинаковом адресном пространстве), две EEPROM по 32к и переключаться между ними; То есть окутывать плату МГТФ-ом, либо разводить новую плату.

Разумеется, выбран был первый вариант, быгыг -) Тем более начал тут убирать часики в коробку в начале месяца и кокнул экранчик (потрачено):

http://forumimage.ru/uploads/20231116/170012966904227030.jpg

Перезаказал экран на али, и вот, спустя пару недель новый экран приехал, и теперь коробка собралась и закрылась:

http://forumimage.ru/uploads/20231116/170012967398128860.jpg

Сделал еще краткосрочный предсказатель погоды по алгоритму Замбретти - рисует разные иконки в верхнем левом углу экране (солнечно/пасмурно/дождь/и тд). Особо не тестировал, но вроде чето показывает там...

http://forumimage.ru/uploads/20231116/170012967817483675.jpg

Но к этому времени уже откровенно надоело. Поэтому всё, достаточно возни с i8080, вроде наигрался сполна.

На всякий случай выложил все по данному проекту "как есть" здесь: https://github.com/Tronix286/i8080_clock

Но особого смысла повторять именно эту плату нет, так как она делалась исключительно под себя с имеющимися у меня прямо в ящике стола деталями. Именно отсюда на плате винегрет из SMD 0402(!), 0603, 0805, QFN, МЛТ резисторы, мосфеты в ТО220 на 180 или больше омпэр (!) и прочий лулз. BGA разве только здесь для кучи не хватает. Не знаю вообщем, это конечно нужно очень сильно кому-то захотеть, что бы такой мозговырвный набор рассыпухи специально закупать для этого проекта... Но в моем телеграм канале просили выложить - я выложил :biggrin: