Комментарии 382
А я вот не согласен с такой категоричностью. Ученик должен понимать, что такое напряжение и ток, для чего нужны резисторы и как используются в тех или иных случаях. Никаких 3 курсов вуза для усвоения этого не требуется, и изучению цифровой электроники ни разу не мешает -- а вот помочь может. Скажем, начнёт ученик что-то делать самостоятельно, захочет прицепить микруху по I2C -- а у него нифига не работает, поскольку нет подтягивающих резисторов, о которых он и слыхом не слыхивал.
То же самое относится и к генераторам: нет никаких проблем показать и 555, и вообще мультивибратор на транзисторах, а заодно намекнуть, что там, где раньше требовались эти два транзистора, сейчас ставят 4-ядерный проц с 100500 млрд транзисторов -- лишь бы мозги не включать.
Ну а FIFO -- вещь продвинутая, явно не для первых занятий.
Я стараюсь провести школьника сначала к твердому пониманию комбинационной и последовательностной логики (абстракции на уровне модели Хаффмана), а потом - к микроархитектурным конструкциям основанным на ней (конечный автомат, конвейер, FIFO), чтобы подсоединить это к взрослой профессии RTL-проектировщика и микроархитектора цифровых блоков. Если я буду заходить в аналоговую электронику, а тем более разбор с дифференциальными уравнениями 555, то у него утеряется внимание и до конца мы не дойдем.
Но вы можете сделать свой курс разумеется.
мне понравилось, типа кратчайший путь заинтересовать детей, дальше incremental bootstrapping, imho так надо всему учиться кроме возможно математики
Если вы готовите людей, которые проектирую чипы, то зачем вообще демонстрировать работу железа вживую?
Можно показать, как простые узлы в симуляторе работают, а дальше уже переходить к программированию на HDL.
Убирать резисторы из "железа" - это отрывать работу с "железом" от ... работы с "железом".
Симуляторы на уровне schematic entry (например wokwi) нудные. Чем возить мышкой по экрану, лучше воткнуть провод на макетной платке.
А симулятор на уровне register transfer level (RTL) может не соотвествовать тому что происходит в реальном железе.
Вообще занятия с микросхемами малой интеграции на макетной плате хорошо ставят мозг именно перед HDL, чтобы на нем именно не "программировали", а строили комбинационные облака (из логических элементов) и элементы состояния (D-триггеры).
С микросхемами малой степени интеграции хорошо еще и то, что с ними можно проводить семинары хоть в лесу в местности без доступа к электричеству и интернету. Даже компьютер не нужен, если от батарейки питать. Только компоненты, ручка, бумага, преподователь и дети с родителями.
На счёт симуляторов, вы не смотрели Turing Complete? Мне в своё время очень зашло (хотя я не электронщик ни разу). Когда дети подрастут, попробую их тоже подсадить их на эту игрушку.
В 2.0 alpha автор убрал весь сюжет и юмор, но надеюсь, ещё вернёт к релизу.
"Из обучения школьников цифре на макетке нужно", а далее оказывается что обучают "работе проектировщика современного чипа". Тут мерещится обман, вот о чём речь
JK-триггеры и SR-защелки - это неотъемлемая часть цифровой логики
Мне платят зарплату как проектировщику блока в графическом процессоре чипа в телефоне (а до этого - в магистральном маршрутизаторе). Я пишу код на языке описания аппаратуры SystemVerilog и синтезирую его с помощью Synopsys Design Fusion и Cadence Genus / Innovus - маршруте проектирования для ASIC. В отчетах синтеза нет никаких JK-триггеров и SR-защелок. Их нет также и в FPGA flow, хотя если постараться и найти исключение, то такое вроде есть в Altera MAX10, но это исключение подтверждающее правило. А вот D-триггеров навалом и местами D-защелки (clock gaters и latch arrays).
Полностью согласен! Это как начинать учить программированию с С или C++. Нужно подходить сверху от структур данных а не железа. И лучше всего здесь Haskell, OCaml, LISP и прочие
Ну в конечном итоге Си все-таки стоит привязывать к уровню архитектуры системы команд (ISA), показывать как транслируется в ассемблер if, циклы и вызов функции. Это актуально для программистов встроенных систем, ядер ОС и компиляторщиков. Но требовать от каждого Си-программиста скажем знать микроархитектуру конвейера CPU, причем еще до начала преподавания Си - это маразм, согласен.
В Lisp слишком много скобок :-) Хотя сделать интерпретатор подмножества лиспа на Си с функциями CAR и CDR - это хорошая учебная задача. Мнения про Haskell у меня не сложилось.
И лучше всего здесь Haskell, OCaml, LISP
Первые два не знаю, но учить детей лиспу -- это, имхо, перебор.
Возможно, меня закидают тапками, но моё мнение -- для начального обучения принципам программирования за последние полвека лучше Бейсика ничего не придумали. В нём есть всё, для этого нужное, и при этом нет того, что избыточно, вроде обязательного объявления переменных (что само по себе хорошо в реальном программировании, но для новичков это лишняя сложность) или обязательного обозначения конца строки символом ";", что было ценно в эпоху бумажных листингов, но довольно бессмысленно сейчас. Ну и немалым его плюсом для начинающих мне представляется его семантическая полнота: в отличие от Си-подобных языков с универсальным выделением блоков {}-скобками или питона с выделением блоков табами, в бейсике каждый блок закрывается своим ключевым словом, что очень положительно сказывается на читабельности кода слабоподготовленным человеком. FOR-NEXT, DO-LOOP, SELECT CASE-CASE-END SELECT, IF-ELSEIF-ELSE-END IF, SUB-END SUB. Намного понятнее для новичка, чем несколько одинаковых закрывающих скобок подряд, где для понимания смысла каждой скобки надо вернуться вверх по тексту и найти парную ей открывающую скобку.
Ну это вы небось про Visual Basic, до него был Бейсик с номерами строк - вокруг него было много споров в середине 1980-х портит ли он стиль.
Ну, номера строк -- это скорее функциональная особенность среды, чем правило языка. Поскольку все ранние бейсики были операционными интерпретаторами и не имели в своём составе выделенного текстового редактора, там была реализована простая схема: если в начале строки нет числа, по нажатию "энтер" строка немедленно исполняется. Если строка начинается с числа -- значит, пользователь хочет сохранить её как часть программы.
В середине восьмидесятых М$ наконец сделали QB, где был реализован нормальный редактор кода, а немедленное исполнение вынесено в отдельное окно -- с тех пор номера строк в программах стали необязательны, хотя и поддерживаются до сих пор (да, в VBA можно писать код с номерами строк -- но эти номера воспринимаются исключительно как метки, т.е. могут идти не подряд и могут повторяться в разных процедурах одной программы)
Что до VB/VBA (не путать с VB.NET, это сильно другой язык, хоть и тоже бейсик) -- ничего принципиально нового в синтаксис бейсика он не внёс, кроме урезанного ООП.
Начинать обучение программированию с LISP-а странно, он концептуально интересен, но требует несколько вывернутых мозгов. После него освоить процедурный подход будет сложнее. Поэтому так никто не делает.
Тоже удивился, что автор предлагает перепрыгнуть базу и сразу учить более абстрактные категории. Я сам такой вот самоучка и при общении с дедами, имеющими профильное образование чувствуется качественная разница.
В итоге таких модернизаций получаем "спецов", которые кодят на vhdl/verilog конструкции, которые физически не ложатся на железо и искренне не понимают почему - язык ведь позволяет так писать!
Какое отношение имеет сборка таймера 555 к синтезируемости верилога? А, я догадался: при соединении на макетной плате микросхемы таймера 555 с двумя конденсаторами и тремя сопротивлениями - тренируется мелкая моторика пальцев. Которая потом позволяет быстрее нажимать на клавиатуру при вводе кода на SystemVerilog в компьтютер.
Есть определённый здравым смыслом предел того, насколько глубоко в "базу" надо лезть. Так-то, реальной базой электроники является квантовая физика, но так глубоко никто ведь не копает.
Или вот, скажем, гидравлика. Каждый школьник знает, что жидкость состоит из молекул, каждая из которых имеет энергию, за счёт которой сопротивляется сближению с другими молекулами, ну и т.д. -- и инженер-гидравлик это в принципе знает, но в своей работе старательно игнорирует, рассматривая гидрожидкость не как группу молекул, а как "рабочее тело".
и инженер-гидравлик это в принципе знает, но в своей работе старательно игнорирует, рассматривая гидрожидкость не как группу молекул, а как "рабочее тело"
... до тех пор, пока в инженерной системе не начнут происходить чудеса, объяснить которые на уровне «рабочего тела» не представляется возможным.
Да, "чудеса" бывают, но они, в общем-то, типовые, как и решения. Например, если жидкость в в гидросистеме закипит (что для неё нормально, если вспомнить о том, что она -- жидкость, но противоречит концепции "рабочего тела"), это нарушит её работу -- но это, в общем, типовая проблема с типовым решением: меняем жидкость на более высокотемпературную, или просто меняем условия работы, чтоб жидкость не могла перегреться.
Так и в цифровой электронике. Закон Ома не обязателен, но нужно знать, что один выход такой-то микросхемы тянет не более N входов: надо больше -- используй повторители, буферы и шинные формирователи.
Автор статьи описал рациональный подход обучения школьников основам цифровой электроники. Предложенная «стерильная» среда, по-видимому, действительно позволяет продемонстрировать предусмотренные программой вопросы без лишних на данном этапе отвлечений. Глупо было бы требовать инженерных познаний от школьников.
Главное, чтобы эту методику не приняли на вооружения те, кто обучает инженеров. Эмпирических правил вроде "такой-то выход микросхемы тянет не более N входов" или ранее распространённого "четырёх концентраторов", возможно, достаточно для техника. Но инженер должен понимать, где находятся истоки этих правил.
Но инженер должен понимать, где находятся истоки этих правил.
Разумеется. Но учить этому надо не "снизу вверх", а "сверху вниз". Сначала знание о работе устройства (скажем, элемента 2И-НЕ), потом знание о наличии физических ограничений, потом знание об их природе.
Честно говоря, мне странно, что в традиционном обучении часто используют не естественный принцип "от общего к частностям", а контринтуитивный "от частностей к общему".
Единственное объяснение этому я вижу в том, что так легче и быстрее добиться высоких ФОРМАЛЬНЫХ показателей успеваемости.
Вот возьмём, к примеру, типичного автолюбителя прошлого века, который сам чинит свой авто. В начале "карьеры" он имеет лишь общее представление об устройстве автомобиля, и расширяет свои знания сверху вниз, от общего к частному, по мере того, как отдельные узлы ломаются и ему приходится их чинить, попутно изучая их устройство всё глубже и глубже. Когда у меня была "Волга", я, кроме прочего, наизусть помнил порядок затяжки всех крышек и значения моментов -- не потому, что специально учил, а потому что довольно часто это делал. Сначала смотрел в книжке, потом запомнилось.
А теперь смотрим на ПТУ автомехаников. "Так, пацаны, у машины есть карбюратор. Вот запомните десять схем устройства карбюраторов разных марок, и выучите вот эту таблицу с сечениями разных жиклёров для разных двигателей". Пацаны выучили, сдали зачёт и забыли -- но формальная оценка в табеле уже стоит, есть чем отчитаться. Вот только на работу такой автослесарь приходит не с оценками, а с общим представлением об устройстве автомобиля и чудом сохранившимися обрывками знаний, которые не может применить, потому что в систему они у него не сложились.
Когда у меня была "Волга"
А если бы это была не "Волга", а ZX Spectrum, то Вы бы тоже полезли ремонтировать его не имея базовых знаний по схемотехнике?
К "Волге" у меня была толстая книжка, "ГАЗ-3110. Устройство, обслуживание и ремонт".
Если б у меня к спектруму (который был) была бы подобная книжка "Спектрум-как-у-Паладина, что в нём может сломаться и как это починить" -- чо б и не полезть-то?
Впрочем, возможно, я не объективен, базовые знания по схемотехнике и навыки пользования паяльником, тестером и осциллографом у меня с детства есть (как и навыки ремонта механизмов), так что я не очень представляю, как люди без них живут.
Если б у меня к спектруму (который был) была бы подобная книжка "Спектрум-как-у-Паладина, что в нём может сломаться и как это починить" -- чо б и не полезть-то?
Вы действительно не понимаете, что такой книжки в принципе не могло быть в природе? Вместо такой книжки была только принципиальная схема. И мне этого, справочников по элементной базе и моих собственных знаний по схемотехнике хватало, чтобы ремонтировать эти Спектрумы десятками, включая НГМД. И если даже некоторые неисправности были подобные, например, дефекты платы или пайки, то даже места их локализации не повторялись.
Что мог сделать человек без знаний схемотехники, даже имея в руках "Искусство схемотехники" Хоровица и Хилла - я не представляю.
я не очень представляю, как люди без них живут
Вы не поверите, но подавляющее большинство людей живут даже не подозревая о том, что те же дефекты платы или пайки часто проявляются в виде заваленных фронтов из-за паразитной емкости этих дефектов.
Вы действительно не понимаете, что такой книжки в принципе не могло быть в природе?
С чего вдруг? У бати была куча книг про устройство и ремонт совеццких телевизоров, так что не вижу причин, почему подобная книга по ремонту "спектрумов" в принципе не могла существовать. Она не появилась только потому, что спрос на неё был слишком мал.
Именно спектрумы мне чинить не случилось, но довелось несколько лет ковыряться в полусотне их чуть более продвинутых родственников -- двухпроцессорных (две одинаковых платы с Z80, одна рулит станком, вторая обслуживает дисплей, клавиатуру и дисковод) крейтовых промЭВМ "СУАПЭ Соболь", они же в девичестве итальянские Протти. Не могу сказать, что это было ОЧЕНЬ сложной работой. Чинить фашистский "универсаль" (к счастью, он у нас был всего один, да и ломался редко), к которому вообще не было документации, было куда как сложнее.
Однако, мне кажется, вы несколько отклонились от темы обсуждения. Автор учит детей не на ремонтников какого-то оборудования, а на основы разработки цифро-логических схем, что прям очень-очень другое.
У бати была куча книг про устройство и ремонт совеццких телевизоров, так что не вижу причин, почему подобная книга по ремонту "спектрумов" в принципе не могла существовать.
По той простой причине, что компьютеры, даже такие простые, были на порядок или два сложнее тех древних телевизоров, о которых Вы ведете речь. Например, если для телевизоров можно было указать осциллограммы в контрольных точках, то для ZX Spectrum это было просто не реально.
промЭВМ "СУАПЭ Соболь"
Именно поэтому я и завёл речь о Спектрумах. Есть очень большая разница между ремонтом оборудования, которое когда-то работало и свежеспаянным студентом Спектрумом, который не работал никогда и в котором возможны даже ошибки как в выбранной этим студентом схеме, так и в вытравленной плате. Если для первого достаточно навыков техника, то второе явно требует уже инженера, который хорошо понимает как же в этой схеме реализован очередной клон Спектрума.
Однако, мне кажется, вы несколько отклонились от темы обсуждения. Автор учит детей не на ремонтников какого-то оборудования, а на основы разработки цифро-логических схем, что прям очень-очень другое.
Ну так это Вы предложили обучать конструкторов автомобилей по книжкам по их ремонту для автослесарей )))
По той простой причине, что компьютеры, даже такие простые, были на порядок или два сложнее тех древних телевизоров, о которых Вы ведете речь.
Категорически не соглашусь.Классический восьмибитный компьютер, на уровне микросхем (если внутрь их не лезть), устройство много более простое, чем аналоговый цветной телевизор.
Например, если для телевизоров можно было указать осциллограммы в контрольных точках, то для ZX Spectrum это было просто не реально.
"А мужики-то и не знали..." (с)
Есть очень большая разница между ремонтом оборудования, которое когда-то работало и свежеспаянным студентом
Не очень большая. Совсем не факт, что в "оборудовании, которое когда-то работало", до вас не покопался кто-то другой, и не оставил там сюрпризов. У меня раз было, несколько часов ковырялся в плате, а потом обнаружил, что сменщик, зараза, менял микруху и новую воткнул наоборот, ключом направо, а не налево, как все остальные. И "сопля" (советские платы без маски, коррозия дорожек -- обычное дело) может оказаться подвешенной не туда, куда надо. Тоже раз было. Помню, что вот на эту плату сам сопли вешал, так что в них сомнения нет -- а потом оказалось, что сменщик менял сомнительный транзистор, ему моя сопля мешала, он её отпаял, а потом припаял обратно -- но не туда, куда надо.
Ну так это Вы предложили обучать конструкторов автомобилей по книжкам по их ремонту для автослесарей
Не предлагал. Просто привёл удачный пример изучения сверху вниз.
Категорически не соглашусь.
Ваши проблемы. Можете даже считать, что бытовые компьютеры появились до телевизоров, так как они "устройство много более простое" )))
"А мужики-то и не знали..."
То есть Вы можете привести тут осцилограммы для адресных линий РУ5 в "Ленинграде"? После такого заявления, последующим Вашим сказкам уже совсем нет доверия.
Можете даже считать, что бытовые компьютеры появились до телевизоров, так как они "устройство много более простое"
Бытовые компьютеры сложнее "внутри микросхем". Но на уровне "платы с детальками" они намного проще телевизора.
То есть Вы можете привести тут осцилограммы для адресных линий РУ5 в "Ленинграде"?
Конечно не могу, у меня "Ленинграда" не было. )
И для "Соболя" не могу, мне их в голову не приходило зарисовывать или тем более фоткать. Осциллограф при ремонте тех ЭВМ нужен не чтоб "осциллограммы линий" смотреть, а чтоб убедиться, что какой-никакой поток на линиях есть, оценить уровни, крутизну фронтов, наличие/отсутствие помех. Для того, чтоб проц с тестовой ПЗУ стартанул, устранения найденных таким способом проблем достаточно, а РУшки уже мемтест проверит.
Бытовые компьютеры сложнее "внутри микросхем".
Но для того, чтобы его ремонтировать, нужно, как минимум, знать datasheet всех этих микросхем. Тогда как даже только импульсный БП в этом Спектруме схемотехнически сложнее, чем весь ламповый цветной телевизор, которых я тоже починил за свою юность изрядно.
убедиться, что какой-никакой поток на линиях есть, оценить уровни, крутизну фронтов, наличие/отсутствие помех
ChatGPT Вас подвёл. Осциллограмму на адресных линиях РУ5 в ZX Spectrum смотрят, в первую очередь, для проверки видеоконтроллера.
Но для того, чтобы его ремонтировать, нужно, как минимум, знать datasheet всех этих микросхем.
Не нужно. Назначение, функционал и распиновка очевидны из схемы.
Тогда как даже только импульсный БП в этом Спектруме
Никогда не видел. Может и бывало такое, но я не видел. Всегда или квадратный 50Гц трансформатор с КРЕНкой во внешнем ящике, или тороидальник в общем корпусе. Мода на импульсники пришла уже в этом веке, когда мосфеты стали дешевле меди и железа, идущих на трансформатор.
ChatGPT Вас подвёл
Я им пользуюсь только в качестве умного калькулятора. Вы видите здесь какие-то вычисления? Их нет, значит ИИшкой я не пользовался.
Ну и да, я повторюсь: опыт ремонта древних ЭВМ у меня есть, но это не спектрумы, так что я не в курсе, зачем кто-то смотрел в спектрумах, да ещё конкретно в ленинградах, осциллограммы на РУ5.
Кстати, а как РУ5 связаны с видео??? в нормальном спектруме видеопамять (вернее, нижняя страница ОЗУ, адреса 16384-32767) собиралась на РУ6, а блок РУ5 (использовалась только верхняя половина чипов) отражался на верхнюю страницу, 32768-65535. Почему не использовали для верхней страницы 32-кбитные РУ4, как в оригинальном спектруме (ну, там конечно другие микрухи были, но таки на 32К) -- понятия не имею, не интересовался. Может, РУ4 были дефицитом, а может, у них характеристики были хуже, чем у пятых и шестых, хз.
пруф

Зачем такой изврат? А потому что нижняя страница ОЗУ была в приоритетном пользовании видеоформирователя: если проц пытался обратиться к ней, когда формирователь читает очередную строку, тот бил процу по рукам, типа, не мешай. Поэтому тайм-критикл код мог работать только из ПЗУ или из верхней страницы ОЗУ, при работе кода в нижней странице его тайминги плыли.
Не нужно.
ChatGPT снова Вас обманул )))
Например, для "Ленинграда" РУ5Д имели недостаточное быстродействие и компьютер с ними мог глючить. Как повезёт. С РУ5Б или РУ5В это было исключено.
Всегда или квадратный 50Гц трансформатор с КРЕНкой во внешнем ящике, или тороидальник в общем корпусе.
И опять ChatGPT обманывает. Даже TEAC легко жрал до 20 Вт, так что просто трансформаторный БП начинал стоить неприлично дорого. А советские НГМД при разгоне с одновременным тестом головок и 25-30 Вт могли сожрать.
Мода на импульсники пришла уже в этом веке
Импульсные БП в цветных телевизорах в СССР стали ставить ещё в самом начале 80-х. Тот же РТА-80 (несложно догадаться, когда он был разработан), который подключал к Синклеру в качестве принтера, тоже был с импульсным блоком питания.
конкретно в ленинградах, осциллограммы на РУ5
нижняя страница ОЗУ, адреса 16384-32767) собиралась на РУ6
Ещё раз, не верьте ChatGPT! Такая конфигурация была в оригинальном Спектруме и первых клонах, вроде "Львова" или "Дубны". А в Ленинграде РУ6 не было вообще, как и в подавляющем большинстве остальных клонах.
Может, РУ4 были дефицитом
Да никому даже в голову не приходило тогда использовать RAM емкостью 4Кx1, когда уже были 64Кх1 РУ5 или хотя бы 16Кх1 РУ6.
тайм-критикл код мог работать только из ПЗУ или из верхней страницы ОЗУ, при работе кода в нижней странице его тайминги плыли.
Опять Вас обманули. Применялось весьма изящное решение с использованием сигнала регенерации (RESH) и буферизации данных в КП13, что позволяло выставлять WAIT на Z80 только в очень редких случаях. В более поздних клонах, на более быстродействующих РУ7, выставлять WAIT на Z80 вообще не требовалось.
трансформаторный БП начинал стоить неприлично дорого
Не представляю, где вы это берёте, но трансформаторный БП начал стоить дороже аналогичного по мощности импульсника в нулевых годах этого века.
Тот же РТА-80 (несложно догадаться, когда он был разработан), который подключал к Синклеру в качестве принтера, тоже был с импульсным блоком питания.
Может, кто и подключал, я не в курсе. Почему там был ИБП -- понятия не имею. Возможно, этот аппарат -- клон какого-то импортного прибора.
Импульсные БП в цветных телевизорах в СССР стали ставить ещё в самом начале 80-х.
Это прям боль советской электронной промышленности. После реформы Косыгина-Либермана, привязавшей норму прибыли предприятия (из которой шли премии, социалка и пр.) к себестоимости продукции, общей тенденцией стало усложнение схемотехники ради повышения себестоимости. В советском магнитофоне ценой в зарплату инженера было полста+ транзисторов (с пропорциональным числом других деталей), но работал он хуже, чем китайский плеер, где транзисторов было всего семь, и который стоил, как блок сигарет.
С импульсниками для телевизоров та же фигня. На них перешли именно потому, что они были сложнее и дороже -- а значит, выгоднее советскому заводу.
Но "Спектрумы" производили не советские заводы, а кооператоры, так что завышать себестоимость им никакого резона не было. Наоборот, её всячески старались снизить, чтоб или получить больше выгоды при той же цене, или снизить отпускную цену, чтоб больше продать.
Такая конфигурация была в оригинальном Спектруме и первых клонах, вроде "Львова" или "Дубны". А в Ленинграде РУ6 не было вообще, как и в подавляющем большинстве остальных клонах.
Да. Потому что первый "ленинград" был не клоном спектрума, а лишь условно-совместимым с ним. Программы на бейсике выполнялись ок, а половина игрушек глючила, как я слышал.
Да никому даже в голову не приходило тогда использовать RAM емкостью 4Кx1, когда уже были 64Кх1 РУ5 или хотя бы 16Кх1 РУ6.
Мой косяк. Мне почему-то казалось, что были микросхемы РУ4 на 32К, а нет, не было таких. Тогда понятно, почему верхняя страница на 32К была набрана из чипов на 64кбит, чипов на 32к просто не выпускалось.
Применялось весьма изящное решение
В сортах ленинградов не разбираюсь, но, наверное, не зря над их владельцами все смеялись, типа, "у него не спектрум, у него ленинград"?
С "Дубной", кстати, та же фигня, это "ненастоящий спектрум", там зачем-то тактовую урезали, поэтому некоторые игры с собственным загрузчиком на ней не грузились.
В советском магнитофоне ценой в зарплату инженера было полста+ транзисторов
Хм. Например?
но работал он хуже, чем китайский плеер, где транзисторов было всего семь, и который стоил, как блок сигарет.
Хм.. Когда был СССР - китайских плееров не существовало. А плеер на транзисторах будет иметь размеры советского магнитофона.
В плеере главное механика.
Например?
Соната-211. Я лично считал, 49 транзисторов.
Когда был СССР - китайских плееров не существовало.
Может не китайский, может Малайзия какая-нибудь. Пара лет лага ничего не меняет, плеер я покупал в 92 или 93м году, когда советские магнитофоны ещё в каждых культтоварах стояли. На нём было написано "Sanyo", "мейд ин джяпан", "патентед чего-то там" и прочее, но судя по цене, правдой это не могло быть. Стоил он реально как блок LM. Не помню сколько именно по деньгам, только соотношение запомнилось.
А плеер на транзисторах будет иметь размеры советского магнитофона.
Семь транзисторов, монофонический звук (как и у сонаты). Да ещё и лентопротяжка-то не простая, а с реверсом.
Покупал я его, чтоб слушать, но когда обнаружил, что игры с него комп грузит лучше, чем с сонаты...
В плеере главное механика.
Пластик почти полностью. Однако, негативного влияния на качество звука это почему-то не давало.
Соната-211.
Аппарат 70-х годов по сути. Рестайлинг чего то древнего.
Пластик почти полностью.
Ну не умели в СССР в точное пластиковое литье.
Аппарат 70-х годов по сути.
Это как-то оправдывает переусложнённую схему? Мне так не кажется.
Ну не умели в СССР в точное пластиковое литье.
Знаю, так что к механизму ЛПМ "Сонаты" у меняя претензий не очень много. Ну, то есть, он был паршивым, но с учётом общего уровня технологий -- не очень паршивым. Конечно, если б эту погань проектировал я, в ней были бы несколько фторопластовых (ну, или хотя бы полиамидных. На край -- даже капролон сгодился бы) "башмаков", и она перестала бы клинить -- но для советского магнитофона второго класса ЛПМ была вполне обычной.
Соната-211. Я лично считал, 49 транзисторов.
А если не считать, а проанализировать схему и попытаться хотя бы в усилителе НЧ сократить количество транзисторов на той же элементной базе? Ну не раскачаете одним каскадом 315/361 выходные 816/817 без диких искажений. В ключевом режиме - пожалуйста. В усилительном - ну никак.
Да просто возьмите и сравните характеристики КТ315 и, например, S8050, который массово начали выпускать за рубежом как раз в конце 80-х.
Кстати, S8050/S8550 с их 700ма и 1 Вт вполне можно использовать на плеере сразу в выходном каскаде. Да и скоростью лентопротяжного механизма они могут управлять тоже одним каскадом - итого уже минус десяток транзисторов при первом же взгляде.
ок. У нас есть образец: мы знаем, что на "современных" (массовых в конце 80ых или прям в первые годы 90ых) транзисторах, хороший монофонический плеер можно сделать на семи транзисторах.
Ну ок, добавляем к семи ещё десять транзисторов в усилитель НЧ. Не знаю, зачем столько: у меня целый радиоприёмник на десяти 315/361 транзисторах был, орал громко и не сказать, что с плохим качеством. Ну, без высоких частот, но это нормально для СВ/ДВ.
Ок, допустим, старый совковый транзистор не мог в одиночку регулировать мотор (к тому же, мотор в сонате был намного больше, чем в плеере). Решительно добавим ещё три транзистора. Я не знаю, сколько реально надо, но вряд ли больше.
О! Соната, она ж пишущая! Смело добавим десять транзисторов на тракт записи, уж не знаю, нафига там столько, но чужих денег не жалко.
Ах, да. соната питалась от сети (хотя и отсек для батареек был). От души добавим аж целых три транзистора на стабилизатор. Не знаю, куда там третий сунуть, но пусть будет, не выбрасывать же.
А ещё она умела мигать светодиодом "сеть", уж не помню, о чём сообщая. Что-то насчёт батарейки. Нам народных денег не жалко, или схем мигалок на одном транзисторе мы не знаем, так что ставим мультивибратор на двух. В точности, как в реале.
Итого? А итого у нас получилось 35 транзисторов. Это прям верхний край, разумно всунуть куда-то ещё 14 не получается ну прям вообще никак. А они всунули.
Слов много, толку мало. Давайте так. Вот принципиальная схема. Укажите конкретно, где и как можно уменьшить количество транзисторов без ухудшения характеристик.
Я, например, посмотрел на схему УНЧ и не увидел, как можно там уменьшить количество транзисторов. Ваш ход.
А итого у нас получилось 35 транзисторов
В схеме Сонаты 211 28 биполярных транзисторов и один полевик.
. Вот принципиальная схема.
Это НЕ ТА "Соната-211", которая была у меня. В схеме моей сонаты транзисторы обозначались "VT", а диоды и стабилитрон -- "VD", и номера транзисторов были от VT1 до VT49 (все 49 на схеме имелись, я проверял). В этой схеме все полупроводниковые элементы обозначены буквами V, независимо от типа. Схема стабилизатора двигателя точно не та, что была у меня -- у меня мотор и стабилизатор были импортные (хз, наверное, польша, чехословакия или гдр -- судя по маркировкам латиницей)
В схеме Сонаты 211 28 биполярных транзисторов и один полевик.
Я два раза пересчитал транзисторы на схеме, ссылку на которую дали вы. Потом подумал, и пересчитал ещё раз, более тшательно, но результат не изменился. На ней 32 (ТРИДЦАТЬ ДВА, не двадцать восемь) биполярника и один полевик. Итого 33
Это НЕ ТА "Соната-211", которая была у меня.
Да без проблем. Давайте ссылку на принципиальную схему Вашей "Соната-211". И уже по ней укажите, как можно упростить схему не ухудшив характеристики.
На ней 32
Простите, пропустил 4 транзистора на so211b.pdf внизу. Но всё равно не 35 или 49, как Вы писали выше.
У нас есть образец
У нас, теперь - есть. У советских инженеров референсной схемы не было, они изобрели сами. Да, говнокод, можно оптимизировать как японцы - у них, я уверен, не с первой итерации вышло. Можно, но техзадание выполнено же? И так сойдет.
где вы это берёте
Я был уже достаточно взрослый в эти годы и поэтому сам не раз применял тот же МП3-3 от советских телевизоров 3УСЦТ, выпускавшихся с начала 80-х.
трансформаторный БП начал стоить дороже аналогичного по мощности импульсника в нулевых годах этого века
Вы, конечно, можете тут утверждать, что в СССР и инженеры, и руководство были некомпетентны, перейдя в третьем поколении унифицированных телевизоров на импульсные блоки питания. Но в это тут вряд ли кто поверит.
Почему там был ИБП -- понятия не имею.
Потому что увесистый тороидальный трансформатор на 50 Гц, позволяющий снять с него 80 Вт стабилизированного питания, стоил бы намного дороже импульсника на КТ838А. Более древние импульсники 70-х годов выпускались на 2Т809А, весьма популярного у радиолюбителей для изготовления цветомузыки.
Впрочем даже Вектор-06Ц выпускался с 1987 года с импульсным блоком питания.
выгоднее советскому заводу
Завод, как не сложно догадаться, к разработке УСЦТ имеет очень слабое отношение. Первая буква на это явно указывает.
Но "Спектрумы" производили не советские заводы, а кооператоры, так что завышать себестоимость им никакого резона не было. Наоборот, её всячески старались снизить, чтоб или получить больше выгоды при той же цене, или снизить отпускную цену, чтоб больше продать.
Ну так именно по этой причине и ставили готовые серийные БП. В том числе и МП3-3, которые к тому времени можно было покупать по дешёвке на умирающих советских телевизионных заводах. И которые элементарно переделывались на 5 и 12 В. Около 60 Вт с него вполне можно было снять, что позволяло ему тянуть даже два НГМД. Проверено лично )
Не с импульсными БП на 10-15 Вт продавались только клоны Синклера, которые в принципе не предусматривали подключения НГМД, так как 12 В питания даже не предусматривали. Исходя из того, что Beta Disk Interface с TR DOS выпускался с 1985 года, а первые клоны в СССР появились только в 1986 году, то необходимость подключения к нему обычно учитывалась.
половина игрушек глючила, как я слышал
Не верьте слухам и ChatGPT. Где-то на несколько сотен программ и попадалась одна с глюками, но мне пришлось патчить буквально три-четыре, не более. Причем это, скорее всего, были всё же последствия защиты от копирования, чем неполной совместимости клонов.
первый "ленинград" был не клоном спектрума, а лишь условно-совместимым с ним
Ленинград Вы сами упомянули. Я лишь указал, что из десятков клонов ZX Spectrum, только два-три самых первых имели РУ6. Остальные обходились без них, так как программным путём обнаружить такое схемотехническое решение было невозможно.
Ленинград же был немного быстрее оригинала, что действительно можно было обнаружить программно. Однако намного больший эффект в несовместимости Ленинграда вносила неудачная схема включения СА3, что не позволяло загружать большинство программ с защитой от копирования даже с оригинальных кассет. Впрочем, доработать схему включения компаратора было очень просто. Да и благодаря программам копирования образов magic с диска на кассету (одну из них я сам как-то за выходные написал), эта проблема мало кого волновала.
С "Дубной", кстати, та же фигня
У меня референсным был собранный мной в конце 1986 года "Львов".
Ваша проблема в том, что черпаете информацию из слухов и галлюцинаций AI. А я сам был в этой сфере и разработчиком, и программистом с 1986 года.
Ваша проблема в том, что черпаете информацию из слухов и галлюцинаций AI. А я сам был в этой сфере и разработчиком, и программистом с 1986 года.
Ваша же проблема в том, что вы составили для себя парадигму, и сидите в ней, игнорируя то, что в неё не вписывается.
Да, вы чуть постарше меня (но в нашем возрасте это уже не добавляет авторитета, скорее даже наоборот), и, возможно, успели глубже вкатиться в тему спектрумов, чем успел я. Вот только это не значит, что вы везде правы, а я нет. Ниже поясню.
Вы, конечно, можете тут утверждать, что в СССР и инженеры, и руководство были некомпетентны, перейдя в третьем поколении унифицированных телевизоров на импульсные блоки питания. Но в это тут вряд ли кто поверит.
Я не утверждал, что некомпетентны. Просто приоритеты были другие. Любое изделие, выпускаемое по госзаказу, требовалось на этапе проектирования всячески усложнять, чтоб во-первых, обоснованно поднять его себестоимость, а во-вторых, уже после начала производства таки отменив некоторые усложнения, собрать премии за рацухи.
Завод, как не сложно догадаться, к разработке УСЦТ имеет очень слабое отношение. Первая буква на это явно указывает.
Завод не один, да и вообще, интриг в министерствах было полно. Если б заводу было неинтересно выпускать какой-то продукт -- нашлись бы причины, почему он никак не может его выпускать. В завышении себестоимости были заинтересованы не только отдельные заводы, но и их министерства.
Потому что увесистый тороидальный трансформатор на 50 Гц, позволяющий снять с него 80 Вт стабилизированного питания, стоил бы намного дороже импульсника на КТ838А.
Вы сейчас про спектрум или про телеграфный аппарат?
Спектруму 80 ватт нафиг не нужны, он меньше десяти жрёт. Трансформатор, два диода (не помню, как это называется, вроде, "двухполупериодный выпрямитель" -- когда есть возможность использовать трансформатор с отводом от середины обмотки), несколько кондёров, и КРЕНка. Ну и светодиод с резистором ещё.
Телеграфу, в принципе, 80 СТАБИЛИЗИРОВАННЫХ ватт тоже не нужны. Для электроники много не надо, а нормально спроектированная механика колебаний питания моторов и электромагнитов в ±20% от номинала даже не заметит. Поэтому категорически одно из двух: или импульсник там -- наследие от импортного предка, или его туда засунули, чтоб повысить себестоимость. Инженерной логики в этом ноль.
Потому что увесистый тороидальный трансформатор на 50 Гц, позволяющий снять с него 80 Вт стабилизированного питания, стоил бы намного дороже импульсника на КТ838А.
Издеваетесь? Железо и медь в ссср почти ничего не стоили по сравнению со стоимостью электронной платы, их не экономили.
К слову. В упомянутых выше СУАПЭ "Соболь" (85-86й год разработки, судя по подписям на чертежах), в отличие от оригинальной Протти, блоки питания были трансформаторные. В протти всё питание -- не помню число, вроде, 5 или 6, коробки размером с литровый тетрапак. В "Соболях" -- трёхфазный трансформатор размером с коробку А4 (в которой пять стандартных пачек по 500 листов) и алюминиевая плита игольчатого радиатора на всю заднюю стенку стойки, с тремя десятками транзисторов -- не помню уже, каких именно -- такие здоровенные круглые шляпы из никелированной меди, цены конской.
Не с импульсными БП на 10-15 Вт продавались только клоны Синклера, которые в принципе не предусматривали подключения НГМД
Ну, то есть, примерно 95-98% всего парка спектрумов в ех-ссср.
Я понимаю, у вас в столицах было иначе, но у нас в провинции про спектрум с дискетами многие слышали, но никто его не видел. Это к вопросу "кто больше прав". И ваша, и моя точки зрения основаны на субъективном опыте двух разных людей из двух разных местностей, и, возможно, даже в каком-то смысле из разных эпох. Опыт, внезапно, разный -- и точки зрения тоже. Это не значит, что один из нас неправ.
Ленинград Вы сами упомянули.
Перечитайте тред. На "ленинград" перевели вы. Я сам про него и не вспомнил бы, как и про "львов". Про львовский спектрум я вообще относительно недавно узнал, что такой был, до этого я знал только тот "львов", который "оригинальная разработка", ни с чем не совместимый комп на 580м проце.
после начала производства таки отменив некоторые усложнения, собрать премии за рацухи.
Хм. Никогда не видел ничего бытового, чтобы схема не соответствовала тушке. Ну и на платах пустых мест не помню, не то что сейчас, когда разводят плату под несколько вариантов корпусов, а паяют что то одно. Или rev.0 от rev.1 отличается практически всем кроме корпуса.
На этапе подготовки производства - возможно.
В паспорте от усилителя "вега" у нас была вклейка -- "узел непомнючего изменён в соответствии с нижеприведённой схемой", схема и список деталей, что-то исключено, что-то добавлено. По окончании гарантии было проведено вскрытие поцыэнта для замены хрустящих резисторов, никаких следов колхоза на указанной плате не обнаружилось: очевидно, изменение схемы сопровождалось заменой чертежа платы.
В какой-то советской автомагнитоле, "урал" или "звезда", видел заводскую, судя по пломбе на корпусе, модификацию: дорожка аккуратно перерезана бормашиной, один конец свободный, на другой напаян резистор куда-то в другое место. Обычный млт 0.125 в винилке, со стороны печати, прям "в наброс", без дырочек. Не знаю, зачем, мЕлок был, не разбирался, просто батя показал, смотри мол, какую шляпу на заводе лепят.
требовалось на этапе проектирования всячески усложнять
Это пока догма и лирика. Раз у нас техническая дискуссия, то попробуйте взять принципиальную схему любой бытовой радиоэлектронной аппаратуры тех времён и показать тут всем, как можно упростить схему на той же самой элементной базе, не ухудшив характеристики.
Вы сейчас про спектрум или про телеграфный аппарат?
Про телеграфный аппарат, наличие в котором импульсника так Вам не понравилось.
Спектруму 80 ватт нафиг не нужны, он меньше десяти жрёт.
Для примера, для одного TEAC FD-55 DC power supply (+12V, 1.2A and +5V, 2A). Итого 24,4 Вт. Beta Disk Interface позволял подключение двух НГМД. Поэтому оригинальный ZX Spectrum с 1985 года комплектовался импульсным БП +5V/4.0A, +12V/2.0A, -12V/0.5A - 45 Вт.
Даже самые первые Sinclair ZX Spectrum 48k (1981 год), не поддерживающие Beta Disk Interface, комплектовались БП 9V/1.4A - 12.6 Вт.
Откуда Вы взяли меньше десяти ватт?
Ну, то есть, примерно 95-98% всего парка спектрумов в ех-ссср.
Я везде ссылки, подтверждающие мои слова привёл. А вот ссылки, подтверждающей такое смелое Ваше утверждение я не вижу. У нас теологическая дискуссия или всё же техническая? )))
у нас в провинции про спектрум с дискетами многие слышали, но никто его не видел
Да я сам скупал десятками некондиционные MC 5311 на зеленоградском Кванте, ремонтировал их и затем продавал. В частности, во Львов я привёз их около десятка и они разлетелись за один день, как горячие пирожки, потому что я мог продавать их почти в два раза дешевле TEAC FD-55, которые туда привозили поляки. Или полторы тысячи километров от Москвы - это ещё не провинция? )))
Откуда Вы взяли меньше десяти ватт?
Из паспорта "Дубны" и её схем. По паспорту, она жрёт от своего внешнего БП (схему которого я описал выше. Трансформатор, два диода, кондёры, двухамперная крен5Б, т.е. больше 10 ватт в принципе невозможно) 5В 1.7А, т.е. 8.5Вт
Даже самые первые Sinclair ZX Spectrum 48k (1981 год), не поддерживающие Beta Disk Interface, комплектовались БП 9V/1.4A - 12.6 Вт.
Вот только внутри у спектрума, прям возле разъёма, стоит та же КРЕНка, делающая из 9В -- пять. При том же токе, минус не помню сколько-несколько миллиампер её собственного потребления. 5*1.4 = 7Вт
Пруфы
Вот тут фотки плат оригинальных спектрумов. На тёмно-зелёной плате (ревизия 4S) хорошо читается маркировка трёхножки между разъёмом и дросселем: GL7805.

Ну или вот: ZXspectrum mb - ZX Spectrum — Википедия. Фотка ревизии 3B, тоже отлично видна маркировка 7805 на кренке

Beta Disk Interface позволял подключение двух НГМД.
Четырёх, а не двух. Два -- это в советских недоклонах, урезанных по принципу "мне не нужно -- никому не нужно". Вот только оригинальный бетадиск-интерфейс не позволял запитать дисководы от спектрума, у него был только порт шугарт (34 пина, стандартный шлейф), и от БП спектрума питался только сам контроллер. Питание на дисковод(ы) следовало подавать от отдельного источника, либо купить дисководы со встроенным сетевым БП (было и такое).
Пруфы


Или полторы тысячи километров от Москвы - это ещё не провинция
Город Львов -- это областной центр, город-миллионник. А я жил в райцентре с населением в 40К, пусть и поближе к мск.
Из паспорта "Дубны"
Для начала, где ссылка? А потом уже мы будем разбирать, обоснованность такого перехода от частного к общему.
она жрёт от своего внешнего БП
Не подменяйте тезис! Это для импульсного БП или DC-DC преобразователя ещё как-то допустимо приравнивать потребляемую мощность БП с выходной. Но у нас то линейник, с которым КПД стабилизированного блока питания 60% от силы. Собственно говоря именно катастрофически низкий КПД линейных стабилизаторов был причиной перехода на импульсные БП,
Вот только внутри у спектрума, прям возле разъёма, стоит та же КРЕНка, делающая из 9В -- пять.
Это как-то влияет на мощность БП?
При том же токе, минус не помню сколько-несколько миллиампер её собственного потребления.
Вы явно перепутали линейный стабилизатор с импульсным DC-DC преобразователем, или напрочь забыли о законе Кирхгофа. Какой ток на входе линейника, такой и на выходе, за вычетом действительно ничтожного тока на управляющем электроде.
Четырёх, а не двух. Два -- это в советских
Ну так мы о блоках питания для последних и говорили.
Вот только оригинальный бетадиск-интерфейс не позволял запитать дисководы от спектрума
Вы потерялись в разнообразии спектрумов. Применялись разные решения, в том числе и с интегрированным дисководом.
А вот по поводу питания дисководов от Спектрума Вы заблуждаетесь. Необходимы 12 и 5 В на внешнем порту там были. Аналогично поступали и на клонах с поддержкой НГМД.
Город Львов -- это областной центр, город-миллионник.
Назовите пожалуйста год, когда население Львова достигло миллиона. А то я впервые об таком слышу.
А если считать не провинцией все областные города, то это получится почти половина населения страны, а вовсе не те 2-5%, которые Вы указали и для которых до сих пор не привели ссылки.
Назовите пожалуйста год, когда население Львова достигло миллиона. А то я впервые об таком слышу.
Фактическое население агломерации Львов -- 1.15 млн.ч. Население административной единицы "город Львов" -- 0.75млн.ч.
Пардон, не туда глянул. По факту город-миллионник есть, но формально часть этих людей как бы не считается.
Для начала, где ссылка?
Документы от моей "Дубны" -- в коробке с самой "дубной", коробка в отцовском доме на чердаке. Извиняйте, но я не поеду их фоткать. Во всяком случае, не в ближайшие дни.
В отсканированном виде я их в инете не нашёл, хотя помню, видел лет десять назад. Хотите ссылку -- вот вам википедия, написанное там совпадает с тем, что помню я.
Собственно говоря именно катастрофически низкий КПД линейных стабилизаторов был причиной перехода на импульсные БП
Собственно, ТОГДА это никого не заботило. Ну, подумаешь, БП отдаёт в нагрузку 8Вт, а от сети жрёт 20-30. Это не было поводом, чтоб заменять простой и надёжный узел на сложный, дорогой и капризный.
Это как-то влияет на мощность БП?
Эта кренка -- фактически, часть БП, вынесенная из внешнего блока внутрь компа. То есть, потребляемую компьютером мощность надо считать по выходу кренки, а не по входу.
Какой ток на входе линейника, такой и на выходе, за вычетом действительно ничтожного тока на управляющем электроде.
Так я именно это и сказал. Только собственный ток у них не очень ничтожный, 5-15мА, зависимо от конкретной марки.
Применялись разные решения, в том числе и с интегрированным дисководом.
Это уже не настоящий спектрум. Это Amstrad Spectrum 3+, 1987го года и позже, заточенный под СР/М с частичной потерей совместимости с оригинальными спектрумами.
А вот по поводу питания дисководов от Спектрума Вы заблуждаетесь. Необходимы 12 и 5 В на внешнем порту там были.
Покажите мне, где на плате спектрума степ-ап преобразователь, который из девяти вольт сделает 12, да ещё с током, достаточным для работы четырёх пятидюймовок?
Ну и заодно, покажите, где у бетадиска (фото оригинальных плат я привёл выше) выходы для питания этих дисководов. Нет их. только шугарт сбоку и дубликат системной шины сзади.
Думаю, утверждение о наличии выхода 12В на системном разъёме спектрумов 16/48К, имеющееся в статье, на которую вы ссылаетесь -- ошибка. его там чисто технически не может быть.
Хм. Паял я к спектруму контроллер флопика, и он даже работал. И не помню чтобы сильно упарывался в питание. БП был на трансформаторе и КРЕН, но 30 Вт там и близко не было. Дисковод он же не постоянно крутится, перегреваться не успевал.
То есть, Вы опровергаете официальную спецификацию TEAC FD-55 DC power supply (+12V, 1.2A and +5V, 2A)? А с КР142ЕН5, позволяющей максимальный ток 1.5А, снимали больше 3А, исходя из того, что сам Синклер жрал ну уж никак не меньше 1А?
Вам не кажется, что столь смелые утверждения требуют весьма серьёзных доказательств?
Очевидно, в официальной спецификации указаны пиковые токи, которые заведомо не будут превышены.
Если я сделал какое-то устройство и написал "5В 2А" -- это не значит, что оно жрёт 2А непрерывно 24/7, это значит лишь, что если вы его запитаете от БП, способного без просадки выдавать 2А, всё будет нормально работать.
Фактическое население
Где ссылка на источник? Или так как в Википедии "источник не указан", то этому нужно верить, как Ветхому Завету? )))
И почему вдруг агломерация, когда речь шла о городе? К тому же о конце 80-х годов.
я не поеду их фоткать
Значит об этом можно забыть, в связи с невозможностью подтвердить или опровергнуть информацию.
написанное там совпадает с тем, что помню я.
Не совпадает, так как по ссылке указано потребление уже стабилизированных 5 В. То есть, даже при минимально допустимых 7 В до линейника, потребление получается 1.7*7=11.9 Вт, что явно больше 10 Вт.
Так я именно это и сказал.
Тогда почему при расчёте мощности умножаете ток не на входное, а на выходное напряжение?
это никого не заботило
Опять забыли ссылку. Совсем-совсем никого? )))
А то что в той же "Дубне" потребление 1.7А, при том, что по паспорту у КР142ЕН5 максимальный ток 1.5А - это тоже никого не заботило? )))
Чтобы доказать, что это никого не заботило, а импульсники использовались только ради усложнения бытовых электроприборов, нам нужно вернуться к Вашему изначальному утверждению. А для этого дайте ссылку на схему советской бытовой радиоэлектронной техники и укажите, как её упростить без ухудшения её характеристик на той же элементной базе.
Вот после этого продолжим техническую дискуссию без теологических элементов в ней )))
потребляемую компьютером мощность надо считать по выходу кренки, а не по входу
По ГОСТ IEC 62301-2016 измерение мощности бытовых электроприборов в РФ производится по питанию от сети 240 В 50 Гц. Откуда Вы почерпнули иное? Где ссылка?
Покажите мне, где на плате спектрума степ-ап преобразователь, который из девяти вольт сделает 12
А Вы ссылку откройте. Там 12 В хорошо видно. А преобразователя там и не нужно, так как 12 В давал импульсный БП.
где у бетадиска (фото оригинальных плат я привёл выше) выходы для питания этих дисководов
А зачем они на интерфейсной плате? 12 и 5 В от Синклера проходили сквозь него и были выведены вместе со всем остальным с другой стороны. Откуда их и можно было брать для питания дисководов, если те не имели собственного БП.
А зачем они на интерфейсной плате? 12 и 5 В от Синклера проходили сквозь него и были выведены вместе со всем остальным с другой стороны. Откуда их и можно было брать для питания дисководов, если те не имели собственного БП.
Их нельзя было брать с другой стороны. Другая сторона -- это "зеркало" системной шины, предназначенное для подключения какого-нить другого устройства. Если б через бетадиск можно было взять питание для дисковода с системной шины компа, у него был бы специальный разъём для этого.
А Вы ссылку откройте. Там 12 В хорошо видно. А преобразователя там и не нужно, так как 12 В давал импульсный БП.
Спектрум 16/48К питался от ДЕВЯТИВОЛЬТОВОГО внешнего блока питания.
Пруф

И я процентов на 70 уверен, что БП был трансформаторным, как и у 90% другой дешёвой маломощной бытовой техники того времени.
По ГОСТ IEC 62301-2016 измерение мощности бытовых электроприборов в РФ производится по питанию от сети 240 В 50 Гц. Откуда Вы почерпнули иное?
Из логики. Мы тут обсуждали мощность именно компьютера, а не комплекса компьютера с разными БП.
А то что в той же "Дубне" потребление 1.7А, при том, что по паспорту у КР142ЕН5 максимальный ток 1.5А - это тоже никого не заботило?
Серьёзно? Вы не в курсе, что КРЕН5 были с разными буквами?
даташит

Чтобы доказать, что это никого не заботило, а импульсники использовались только ради усложнения бытовых электроприборов, нам нужно вернуться к Вашему изначальному утверждению. А для этого дайте ссылку на схему советской бытовой радиоэлектронной техники и укажите, как её упростить без ухудшения её характеристик на той же элементной базе.
Не годится. Базу усложняли не просто так, а именно завышением характеристик.
Импульсный БП в телевизоре восьмидесятых годов, очевидно, был абсолютно не нужен -- и медь с железом, и электроэнергия тогда были очень дёшевы, по сравнению с высоковольтными ключевыми транзисторами -- но такой БП кагбэ "лучше": экономичнее и легче. Завысили бесполезные характеристики, получили усложнение и удорожание, что и требовалось.
Тогда почему при расчёте мощности умножаете ток не на входное, а на выходное напряжение?
Очевидно потому, что мы обсуждаем энергопотребление самого компьютера, а не его БП.
Базу усложняли не просто так, а именно завышением характеристик.
Это что-то новенькое. О каких же завышенных характеристиках у ИБП в тех же 3УСЦТ Вы ведете речь?
Нет, давайте всё же вернёмся к первоначальному Вашему утверждению:
усложнение схемотехники ради повышения себестоимости
В советском магнитофоне ценой в зарплату инженера было полста+ транзисторов (с пропорциональным числом других деталей), но работал он хуже, чем китайский плеер, где транзисторов было всего семь
Давайте сначала докажите это утверждение на схеме конкретного магнитофона на Ваш выбор, а потом уже вернёмся к тому, какие же завышенные характеристики были у этого советского магнитофона и чем они потребителей не устраивали.
А уже про логику, противоречащую ГОСТ мы пообщаемся после этого. Так же как и о стоимости импульсных БП и обычных трансформаторных.
Прошу прощения, забыл сразу исторический ликбез провести...
самые первые Sinclair ZX Spectrum 48k (1981 год), не поддерживающие Beta Disk Interface
Первые Sinclair ZX Spectrum, 16К и 48К (идентичные схемно, просто в 16К вместо восьми чипов памяти на 32кбит стояли пустые панельки) представлены в апреле 82го года, и они, разумеется, поддерживали бетадиск, который был разработан именно для них в 84м году.
Спектрум-128 выпущен в январе 86го года (и вот он, как раз, был несовместим с бетадиском!)
Бетадиск-128, совместимый со спектрумом 128, был выпущен только в 87м году.
В 1981м году Синклер выпускал абсллютно другой компьютер, ZX81 -- несовместимый ни с бетадиском, ни со спектрумом.
Тоже бином ньтона ;) Главные болячки тех самоделок - плохие пайки, КЗ и бракованные микроскемы. От КЗ помогает просто тыкать осциллографом в шину. Есть сигнал с четкими 0/1 - скорее всего ок. Нет сигнала - ищем пуговицу.
А почему не было книг по ремонту Спектрумов? Да потому что они не ломались ;) Там нет ничего мощного и сильногреющегося. Если работает - значит работает.
они не ломались
Ошибка выжившего. В своё время я их ремонтировал десятками.
Это не "ошибка выжившего", это "смещение отбора".
Телевизоры ломались часто, с их поломкой сталкивался почти каждый, а "ремонтировали десятками" их, наверное, сотни тысяч людей.
Спектрумы ломались редко: кроме вас их ремонтировали, да ешё и десятками, вероятно, несколько сотен человек на весь союз.
А зачем Вы решили подменить тезис? При чём тут вообще телевизоры? Так Синклеры не ломались или ломались?
Гдей-то я подменяю тезис? Обычное расширение аргумента.
Вы говорите: "спектрумы ломались часто, я видел".
Я отвечаю: "нет, это телевизоры ломались часто, это видели все, а вот спектрумы сломанные кроме вас кто видел?"
Наверное, спектрумы ломались. Было бы глупо утверждать обратное, ибо ломается всё.
ОДНАКО, ломались они экстремально редко, ибо цифровая электроника в этом смысле крайне стабильна -- либо сразу не работает, и её чинят прям в процессе изготовления, либо запускается и исправно работает долгое время. О том, чтоб у кого-то из знакомых или знакомых знакомых спектрум работал, а потом сломался, я не слышал никогда. Конечно, с кем-то другим такое наверняка случалось -- но это явно было редким, редчайшим событием.
Гдей-то я подменяю тезис?
Вот тут:

Спектрумы ломались редко
"Не ломались" и "ломались редко" - это совершенно разные тезисы.
Вы говорите: "спектрумы ломались часто, я видел".
Вы лжёте, я такого не говорил.
Было бы глупо утверждать обратное, ибо ломается всё.
На на скрине Выше утверждалось именно это )
цифровая электроника в этом смысле крайне стабильна -- либо сразу не работает, и её чинят прям в процессе изготовления, либо запускается и исправно работает долгое время
Во-первых, это не верно даже при строгом соблюдении техпроцесса. Для примера, для обслуживания ЕС ЭВМ в штате всегда были инженеры-электроники, занимавшиеся их ремонтом на постоянной основе. А дохлые ТЭЗы лежали грудами в коробках. Даже ЕС-1046 80-х годов разработки ломалась в среднем раз в неделю. Пруфы нужны или сами найдете?
Во-вторых, мало того, что кооперативные клоны Синклеров собирались с грубыми нарушениями техпроцесса (перечислить подробней?), ручной пайкой, часто даже с ортофосфорной кислотой (последствия понятны?), так ещё и элементная база была непонятного происхождения и состояния. Например, РУ5 массово воровались с Ангстрема ещё до ОТК.
Да и сейчас с Aliexpress порой можно получить платы ESP32 или STM32, умирающие через несколько месяцев. Могу поискать даже у себя и сделать фото плат с явными следами коррозии или неотмытым флюсом.
Но инженер должен понимать, где находятся истоки этих правил.
Будет интересоваться - инженер разберëтся и поймëт, что потребуется. Невозможно выучить всë заранее. Главное, чтоб интерес не угас.
Да и не все истоки доступны. Мы, например, сейчас чисто эмпирически знаем, что сигнал нельзя передать быстрее скорости света.
Либо живëм с этим, и решаем инженерные задачи, либо двигаем науку дальше, если уж так разобраться хочется.
В случае с микросхемами CMOS 4000 которые я использую для школьников, я помню что один выход может драйвить много входов, более чем достаточно. Хотя я могу ошибаться - это надо перепроверить. Если я ошибаюсь - можно использовать буфер cmos 4050.
Выходы как и входы бывают ох как разные: где-то напряжения логических уровней разное, где-то нужна активная нагрузка и т.д. И надо понимать почему так, зачем так и как решать задачи стыковок разнородных серий. И вот внезапно уже и частоту сигналов надо учитывать и много чего ещё. Как мне кажется учить работать с железом надо именно детей постарше, где уже хотя бы школьный курс физики затронул базовые понятия (тока, напряжения, мощности), чтобы как раз перейти от "сухой" теории к практике. И любая железка в моем понимании лучше симулятора, так как для ребенка важен осязаемый результат, а не просто картинка на мониторе.
Тоже удивился, что автор предлагает перепрыгнуть базу и сразу учить более абстрактные категории
Абстрактные категории – и есть база!
Тоже удивился, что автор предлагает перепрыгнуть базу
автор готовит кадры для другого мира, там нужна узкая специализация
к мероприятию торговой палаты города Маунтин-Вью, Калифорния
Тут вроде речь об американских школьниках.
Я это разрекламировал преимуществено в русско-эмигрантских группа фейсбука, хотя пришли и пара индусов и один китайский школьник. Просто у меня на этом мероприятии будет стенд http://verilog-meetup.com , поэтому я и решил привлечь детей русских иммигрантов чтобы сделать это интереснее. Типа они там будут там стоять и показывать всякие проекты.
вероятно сейчас пришло время учить детей robotics, подобно Вашей программе, отдельно от всего основного, не по VEX как в школе, ближе к уровню книги Peter Corke "Robotics, Vision, Control ..." (адаптированной), это может быть супер интересно и полезно, не знаю есть ли люди способные это сделать, это настолько важно, что imho тянет на свою школу, подобную RSM
Robotics - это, насколько я понимаю, в основном про программирование встроенных систем и system design. Интеграция микроконтроллеров, встроенных процессоров, датчиков, систем зрения. Цифровая логика тут может играть небольшую роль, как FPGA который обрабатывает данные от сенсоров и передает микроконтроллеру.
У меня другой фокус - выучить будущих проектировщиков компонент (процессоров, GPU, сетевых чипов) и пользователей FPGA (для ЦОС, обработки звука и видео).
И ученику становится скучно и он старается слиться пораньше от этой нудятины.
Когда ему реально понадобится знание про резисторы к i2c, он уже будет основательно втянут в процесс и эти знания естественным образом усвоятся.
Это называется прогресс. Сегодня никто из тех кто изучает двигатель внутреннего сгорания для зачёта не должен знать устройство парового двигателя по вполне очевидным причинам. А так получается консерватизм, а консерватизм как известно равно деградация
Но при обучении конструкторов ДВС, неожиданно, знание паровых машин оказалось востребовано. Для гибридных автомобилей такой поход выглядит перспективно. Почему бы не заряжать АКБ, используя не только механическую энергию, но и тепло ДВС?
Можно привести пример независимого определения прогресса как незнания чего либо :)?
Знания не бывают бесполезными. И если ты работаешь с двигателями, лучше бы не только про паровые знать, но и про стирлинга...
но тогда лучше учить в обратной последовательности. А то если ты знаешь стирлинга и паровой, но еще не дошел до векторного управления синхронным - то лучше бы про стирлинга не знал.
Знания не бывают бесполезными.
В масштабах человечества -- да. Но для отдельного человека -- запросто. Я вас уверяю, информация о личной жизни и политических взглядах писателей 18-19го века, которой нас пичкали в школе, мне не пригодилась в жизни ни разу, и с вероятностью, неотличимой от 100%, не пригодится и далее. И если б школьный курс ботаники ужать до пары часов -- в эти два часа поместилась бы вся информация из него, которая мне когда-либо была полезна. Нет, все эти знания не бесполезные в принципе, для кого-то другого -- но они бесполезны для меня, причём я ещё тогда, в школе, знал, что они мне не пригодятся.
Кстати школьный курс ботаники удручающе неэффективен. Почти никто во взрослом состоянии не знает что в цветковых растениях тоже есть спорофиты и гаметофиты как у папоротников и мхов, но в скрытой форме. А чередование поколений спорофит/гаметофит как основа жизненных циклов растений - это центральная идея ботаники, как модель Хаффмана для цифровой электроники.
Почти никто во взрослом состоянии не знает что в цветковых растениях тоже есть спорофиты и гаметофиты
Возмутительно. Но еще более никто не знает, зачем окучивают картошку, как правильно ее сажать и викакое время. Прикладная ботаника - отсутствует полностью. С выращиванием и сбором растений люди чаще сталкиваются чем с классификацией.
"Прикладная ботаника", это, наверное, больше агрономия. Но в целом я с вами согласен, средний уровень знаний в этой области у народа просто ужасающе низок.
См. исправленный коммент ниже
Спорофиты/гаметофиты - это не классификация, это внутреннее устройство растения. Главная идея ботаники выглядит так: представьте, что бесполые организмы (спорофиты) вместо того чтобы делать секс напрямую, отпочковывали бы от себя два организма (мини-мужчину и мини-женщину, с половинными числом хромосом - гаметофиты) и секс имели бы эти мини-организмы - один бы выпускал сперматозиоды, а другой формировал бы яйцеклетку. Наглядно это видно у мхов и папоротников, где разделение на большие и вспомогательные организмы явное. Но это есть и у цветковых тоже: частица пыльцы - это отдельный организм (гаметофит) который после приземления на пестик выпускает две клетки-спермии.
Если вы это не знаете, то вы никогда не изучали ботанику. Вы изучали какую-то поп-ботанику, в которой реальной ботаники то ли не было, то ли она не была в достаточно явной форме:

У цветковых бесполое (спорофиты) и половое (гаметофиты) поколения если и упоминаются, то вскользь, как внутренняя промежуточная фаза:

Почти никто во взрослом состоянии не знает что в цветковых растениях тоже есть спорофиты и гаметофиты как у папоротников и мхов, но в скрытой форме. А чередование поколений спорофит/гаметофит как основа жизненных циклов растений
А вы очень расстроитесь, если я признАюсь, что вообще не имею представления, о чём вы сейчас говорите?
Наверное, это важное знание... для специалистов соответствующих профилей. Но большинству других, "обычных", людей его знать, я полагаю, незачем. Во всяком случае, я почти полвека без этого знания прожил, и сколько мне ещё осталось, тоже без него проживу. Вот сейчас, пока я его не распомнил за ненадобностью, я прикидываю, как это знание могло бы повлиять на мою жизнь и работу, и как бы я мог его применить -- а никак. Для меня это знание совершенно бесполезно.
Поправленный коммент ниже
Я вовсе не говорю, что вам нужно знать ботанику. Я говорю о том, что так как ее преподают - это все равно что вообще не преподают. Или преподают какую-то "поп-ботанику" которая просто занимает время, без четкой формулировки что есть растение на самом деле. Одна из главных фич растения - это организм с чередованием поколений : бесполое (спорофиты) и половое (гаметофиты).
Я написал выше:
Спорофиты/гаметофиты - это не классификация, это внутреннее устройство растения. Главная идея ботаники выглядит так: представьте, что бесполые организмы (спорофиты) вместо того чтобы делать секс напрямую, отпочковывали бы от себя два организма (мини-мужчину и мини-женщину, с половинными числом хромосом - гаметофиты) и секс имели бы эти мини-организмы - один бы выпускал сперматозиоды, а другой формировал бы яйцеклетку. Наглядно это видно у мхов и папоротников, где разделение на большие и вспомогательные организмы явное. Но это есть и у цветковых тоже: частица пыльцы - это отдельный организм (гаметофит) который после приземления на пестик выпускает две клетки-спермии.
См. с картинками https://habr.com/en/articles/1058154/comments/#comment_30233652
так как ее преподают - это все равно что вообще не преподают
Ну, с любым школьным предметом так ;) впихивают в моск какой то слегка связанный набор фактов. Тычинки, пестики, фотосинтез. А таких странных слов в наше время не было ;)
Или преподают какую-то "поп-ботанику" которая просто занимает время, без четкой формулировки что есть растение на самом деле.
Ну, не знаю. Тут, наверное, нужно определиться с целями, для которых в школе преподают ботанику -- очевидно, от этих целей зависит, какие именно её разделы и на какую глубину там нужны.
Информация, что растения не занимаются сексом лично, а делегируют эту работу специально созданным потомкам-миньонам, конечно, забавна -- но её полезность кажется мне крайне сомнительной -- не только "бытовая полезность", но даже и практическая.
Вот я сейчас просмотрел на википедии статью "пыльца" -- там есть такая информация, которой я раньше не знал: оказывается, у двуполых растений количество пыльцы, попавшее на женские цветки, может регулировать распределение полов у потомства. Много пыльцы -- будут преимущественно женские особи. Мало пыльцы -- будет поровну, или даже больше мужских.
Лично мне это не нужно, но это явно полезное знание, которое я понимаю, как можно использовать "в народном хозяйстве". А вот это вот, про спорофитов -- не понимаю, как можно использовать.
Закон Ома часто преподают точно также, к сожалению.
Самые шедевры




То есть я удалил как кучу лишних резисторов на плате, так и необходимость объяснять законы Ома и Кирхгофа.
Как можно объяснять что-то связанное с электричеством, игнорируя закон Ома?
Смысл его тактики понятен. Мы же не изучаем строение x86 чтобы программировать, к примеру, на пайтоне? Но с точки зрения электроники решение не верное.
И, подозреваю, реально приведёт к "дебилизации": когда типовые решения будут успешно делать, но при этом толком не понимать, а как оно в действительности работает...
Вовсе нет. Если другой преподаватель (скажем вы) проведет детей через аналоговую / mixed signal ориентацию -то все будет хорошо. А вот если вы уговорите меня поменять программу и рассказывать им про внутренности 555 - то они не дойдут до результата - реализации микроархитектурных конструкций.
Вы кидаетесь из крайности в крайность. ЗАЧЕМ нужны какие-то дифуры, чтобы просто собрать работающий генератор на 555? ЗАЧЕМ нужно подробно изучать его внутреннее устройство, чтобы просто его использовать в качестве генератора?
Так я его и использую. Как уже собранный модуль.
А зачем его использовать как генератор не понимая как он работает, тут путь Юрия ближе, используем готовый генератор, результат тот же, что и простое повторение схемы на 555.
Человеку, например, может потребоваться генератор на другую частоту. Так что показать, как 555 использовать и как изменение номиналов резисторов-конденсаторов влияет на частоту, вполне можно и нужно -- дифуры для этого не требуются. Зато полезно сказать, почему в глубины функционирования 555 погружаться не будем (это аналоговая электроника, а наш курс посвящён "цифре", поэтому аналоговыми вещами занимаемся лишь в минимально необходимом объёме; в данном случае, нам нужен генератор сигналов, а как именно он работает внутри, нам без разницы), а заодно указать, где и что могут почитать те, кому интересно узнать об этих вещах более подробно.
Так на этом модуле можно частоту просто отверткой подкрутить или ногтем - там переменное сопротивление стоит. И в чем смысл давать детям формулу вывода частоты из двух сопротивлений и емкости если к ней нет ее вывода?
Чтобы знали что формула существует. Никто же не изобретает генератор на 555 с нуля? Есть уже изобретенная схема, и выведенная заранее формула.
В смартфоне или там аппаратном ускорителе нейросетей не стоит генератор на 555. Современные генераторы тактовой частоты как и всякие PLL к нему другие. То есть знание той формулы никак не привязано к работам в промышленности.
Ваша аналогия особенно верна в том, что x86 плох даже для обучения процессорам - он хранит для обратной совместимости тупики 1970-х например сегментные регистры. Сейчас надо учить на risc-v , это уже де-факто новый академический стандарт.
Тоже крайность. Изучение ошибок зачастую полезнее изучения "лучших практик" без указания на возможные ошибки и почему именно это является ошибкой.
Компиляцию ошибок и практик которые имели смысл раньше, но не имеют теперь - это все можно дать потом, когда основной материал рассказан. Например "50 лет назад задержки при обращении к памяти были ниже чем задержки на арифметических операциях, поэтому имело смысл делать аккумуляторные машины, а не большие регистровые файлы и кэши, как потом"
про RISC-V правильно, если для общего развития можно CDC 6600, красивая машина, и хорошая история
Мы же не изучаем строение x86 чтобы программировать, к примеру, на пайтоне?
Не просто можно, а нужно. Дело в том, что теория логических схем с электричеством связана примерно никак. Какой-нить RS-триггер совершенно одинаково работает хоть электрический, хоть гидропневматический или механический. Закон Ома -- это частность, необходимая для конкретной реализации этого триггера в виде именно электрической схемы.
Здесь, я напомню, что некоторые характеристики работы будут заметно различаться в случае когда за этим триггером будет следовать один другой триггер и в случае когда за этим триггером будет 1 миллион триггеров. Тоесть в случае когда у драйвера ‘Q’ один потребитель и в случае когда их очень много. Хотя бы поверхностное понимание “ёмкости” может подарить понимание что будет происходить и почему. Понимание основ аналоговой части будет отражаться на финальном дизайне цифровой части. С этим рано или поздно придется знакомиться, хотя и соглашусь что это можно сделать не на ранних этапах.
Но это уже не логика, а материальная реализация, которая зависит от точных свойств конкретного железа. Не надо грузить этим новичков, только начинающих изучать построение логических схем!
Это как с программированием.
Что нагляднее объясняет суть переменных и циклов, такой вот код:
LET a = 1
LET b = 1
PRINT a
PRINT b
FOR n = 3 TO 10
LET c = a + b
PRINT c
LET a = b
LET b = c
NEXT nили километр листинга, который вывалит дизассемблер, которому скормили Win32-приложение, скомпилированное из этого кода?
Да даже если в листинг выше добавить необязательные в бейсике декларации переменных, уже намного непонятнее будет, ученик будет вынужден отвлечься от понимания концепции переменных как таковых на ненужные ему СЕЙЧАС подробности о способах их хранения. А если завернуть код в SUB main (), как стало принято в более новых, чем GW, версиях бейсиков -- придётся ещё объяснять ученику концепцию процедур и функций, которая на данном этапе изучения предмета ему нафиг не нужна. Ну, или как было на уроках поцкала в школьной программе -- "вот это для дела, а вот на это не обращайте внимания, это такая специальная магия, так надо. нет, комьютер не тупой, но без ; он не поймёт, что строчка кончилась. просто так принято.".
А уж что творилось в головах тех бедняг, которые начали знакомство с программированием с паскаля, мне и представить страшно, там на каждый полезный символ программы приходится по одному мусорному (без шуток, на бейсике сто байт текста, на паскале двести)
; А вот такое тоже надо бы)))
var_a dq 1
var_b dq 1
var_c dq ?
; Цикл на 7 итераций
MOV ECX,7
start_loop:
; c = a+b
MOV EAX,var_a
ADD EAX, var_b
MOV var_c, EAX
: a = b
mov EAX, var_b
mov var_a,EAX
; b = c
mov EAX, var_с
mov var_b,EAX
LOOP start_loop;
нагляднее объясняет суть переменных и циклов
именно вот этот ассемблерный код, если понимать слово "суть" по определению как самое главное и существенное в ком-либо или чём-либо. А если товарищ реально считает, что бейсик чем-то отличается от паскаля, то суть тут вовсе не в переменных.
Естественно, что я никогда не буду в реальных приложениях писать на ассемблере, но вот понимать, как что-то можно сделать максимально эффективно на конкретном железе, я считаю прямо обязательным. Особенно если потом разрабатывать реальные устройства. И никакое ардуино тут не поможет, поскольку в реальном проекте обычно утыкаешься в какое-нибудь узкое место или кривую библиотеку и в итоге уже лезешь в тот самый код из дизассемблера, только вот его не понимаешь и логику тоже. А языки это всё просто инструмент. А так я очень люблю прям копаться в мелочах в свободное время)
Естественно, что я никогда не буду в реальных приложениях писать на ассемблере
Почему бы и нет? В bare metal программах все на Си писать неудобно - инициализацию (startup.S) или там обработчик прерывания может быть удобнее писать на ассемблере.
На С всегда удобнее чем на ассемблере. Кроме случаев когда необходимо байто/тактоложество.
Можете привести пример программы PIO в RP2040 на С, а не на pioasm?
Я ардуинщик ненастоящий, про ту программу впервые слышу ;) Ну раз кто то написал программу на ассемблере - наверное у него были мотивы. Может тактоложество, может just for fun. Алгоритм удобнее натягивать на операторы С чем на регистры и флаги проца.
про ту программу впервые слышу
PIO в RP2040 - это не программа, а устройство программируемого ввода-вывода с собственной специализированной системой команд.
С таким же успехом могу предложить Вам написать на C канальную программу для мейнфрема.
Алгоритм удобнее натягивать на операторы С чем на регистры и флаги проца.
Вот и попробуйте хотя бы помигать светодиодом на PIO без использования pioasm.
устройство программируемого ввода-вывода с собственной специализированной системой команд.
А.. это что то типа специального языка с ключевыми словами от ассемблера? Ну так специальные языки рулят в своей нише.
Про специальные языки для написания канальных программ я пока не слышал. Так что остаётся только ассемблер.
Да и использование intrinsics функций, без которых не обойтись, тоже, по сути, ассемблер в С коде.
Ну, строго говоря, написать канальную программу на Сях можно: как и в случае с ассемблером, реально она пишется как структура данных, а не как выполнимая программа. Ну а закодировать корректным образом содержимое CCW можно хоть на ассемблере, хоть на сях, хоть на любом другом компилируемом языке.
Напишите на Си переключение контекстов задач в обработчике прерывания по таймеру. Вот на ассемблере (я это писал в качестве примера недавно, поэтому это первое что приходит в голову) -
Особенно после строки 100 и в районе 214
А иногда иначе просто невозможно. Скажем, в серии микроконтроллеров STM32H7, если внимательно читать их описание, перед тем, как начать обращаться к внутреннему ОЗУ МК, необходимо хотя бы в минимальной степени настроить питание: сразу после сброса установлен такой режим, при котором доступ к ОЗУ документация запрещает. Но на Сях написать эту настройку будет невозможно, поскольку компилятор будет в любом случае обращаться к стеку и т.п., одними регистрами процессора он не обойдётся.
Тут конечно да. Если нужен доступ к регистрам проца - в С нет такого понятия как регистр ;)
Там не нужен доступ к регистрам проца, там запрещён доступ к внутреннему ОЗУ МК -- т.е., в том числе, и к стеку. Написать эту инициализацию на ассемблере можно и без обращений к памяти, регистров процессора вполне достаточно (реально хватает двух регистров), но компилятор-то так не умеет. Точней, в теории, он может весь код и без доступа к стеку сгенерить, но вот 100% гарантии такого поведения нет.
Если нужен доступ к регистрам проца - в С нет такого понятия как регистр ;)
Нет, вы просто не знаете как можно извращаться на Си с конструкцией asm. Вот гуглим про прямой доступ на Си к регистру:
example of direct to a register in c program using asm contruct in risc-v
Получаем:

Выглядит неправдоподобно. Есть ссылки или скриншоты? Я просто железячник больше, и на другие штуки обращаю внимание.
То есть, встроенный загрузчик такой запускается, позволяя загрузить софт почти со всех интерфейсов H7 кроме таймеров, а потом вдруг - опаньки, а мозги-то я вам отключил?
ARM же обычно как раз и стандартизирует инициализацию стека сразу, чтоб по адресу 00, IRQ0 он уже был. И чтоб весь код выглядел без всяких iret. Или я что-то пропустил?
Например, берём документ RM0399 Rev 4 "Reference Manual STM32H745/755 and STM32H747/757 advanced Arm®-based32-bit MCUs" от июня 2023 года (аналогичные докунметы существуют и на другие МК этого семейства, отличаясь лишь деталями).
Смотрим подраздел 7.4.1 "System supply startup", стр. 276. Приведу выдержки из него (выделено жирним мною):
4. Once the oscillator is stable, the system is initialized: Flash memory and option bytes are loaded and the CPU starts in limited run mode (Run*).
5. The software shall then initialize the system including supply configuration...
...
a) As long as ACTVOSRDY indicates that voltage levels are invalid, the system is in Run* mode, write accesses to the RAMs are not permitted and VOS shall not bechanged.
b) Once ACTVOSRDY indicates that voltage levels are valid, the system is in normal Run mode, write accesses to RAMs are allowed and VOS can be changed.
Так что, как видите, пока МК находится в этом режиме Run*, устанавливаемом сразу после сброса, доступ на запись к ОЗУ запрещён, и нужно сначала инициализировать схему управления питанием (supply configuration) хотя бы в минимальной степени.
То есть, встроенный загрузчик такой запускается, позволяя загрузить софт почти со всех интерфейсов H7 кроме таймеров, а потом вдруг - опаньки, а мозги-то я вам отключил?
Встроенный загрузчик, надо полагать, выполняет минимально необходимую настройку питания и лишь затем производит загрузку и всё такое (я никогда его не использовал, поэтому не интересовался, что и как он настраивает). Я же говорю о случае, когда выполняться начинает сразу твоя собственная прошивка, ранее записанная во флэш-память, без всяких загрузчиков.
ARM же обычно как раз и стандартизирует инициализацию стека сразу, чтоб по адресу 00, IRQ0 он уже был. И чтоб весь код выглядел без всяких iret. Или я что-то пропустил?
Пропустили, ага :) Речь же не о процессорном ядре "в вакууме", а обо всём микроконтроллере. Само ядро (или два ядра в зависимости от варианта STM32H7), естественно, соблюдают все принципы архитектуры ARMv7-M, поэтому уже при сбросе указатель стека будет загружен из таблицы векторов вместе с адресом точки входа в обработчик сброса. Вот только пользоваться этим стеком нельзя, пока питание не настроили, поскольку доступ на запись к ОЗУ запрещён производителем МК, а это, в свою очередь, требует написания обработчика сброса на ассемблере, поскольку при написании на любом языке высокого уровня нельзя гарантировать отсутствие обращений к памяти до завершения инициализации питания: компилятор-то про эти запреты не в курсе.
https://github.com/HeartBIeed/stm32h745/blob/main/Core/Startup/startup_stm32h745xx.s :243
Да, есть некий вызов ExitRun0Mode. Но это обычная сишная функция.
И тут как раз в основном на си стартап, вставки на асме тут в принципе не нужны:
https://github.com/elzoughby/STM32H7xx-Startup/blob/master/src/startup_stm32h743xx.c
И что? Есть документация производителя, и там, наверное, не просто так написали про запрет записи в память.
Да, этот момент мне теперь понятен, весьма интересно.
Но в итоге включает питание памяти сишная функция ExitRun0Mode() без ассемблерных вставок. В ARM, получается, так можно.
Походу специальная уличная армовская магия. Чтобы вызвать функцию - нужно же иметь возможность писать что то в стек.
Именно эта функция значит не использует стек. Возможно она inline. Но эта директива не требует от компилятора поступать именно так.
Не инлайн, я специально код привëл.
Чтобы вызвать функцию - нужно же иметь возможность писать что то в стек.
В "процессоре здорового человека" - нужно, а в ARM - не нужно. Адрес возврата хранится в регистре проца, и есть соглашение, кому какие регистры нужно сохранять при вызове, а какие - нет. Поэтому использование стека можно чëтко предсказать.
Поэтому использование стека можно чëтко предсказать.
В том-то и дело, что нельзя. Сменится компилятор -- сменится генерируемый им код. Никаких гарантий сохранения поведения даже в том же компиляторе, но другой версии, нет. Поэтому, чтоб всегда и при любых условиях соблюдать данное требование документации, необходимо написать начало инициализации на ассемблере -- благо, это всего несколько команд.
Ну а что народ не особо читает документацию и склонен забивать, поскольку "и так работает" -- вещь известная. Я подозреваю, что в большинстве случаев запись в память будет-таки работать и до выхода из режима Run* в нормальный -- просто нет 100% гарантии, что это так.
Иногда гарантии есть.
Стандарт языка таких гарантий не даёт -- значит, их нет: компиляторы могут творить всё, что угодно.
И это, кстати, код от производителя мк
Это, скорей, отрицательная характеристика: код для STMок нередко крайне низкого качества. "Эталонный быдлокод", несколько лет промелькнувший здесь, был как раз оттуда.
Поэтому использование стека можно чëтко предсказать.
Вы чего-то не то говорите. Используется ли стек или нет зависит например от уровня оптимизации. Запустите компилятор с опцией -O3 - небольшие переменные будут на регистрах (пока регистры не кончатся), а запустите -O0 - компилятор будет вынужден поместить их все на стек.
В данном случае
локальных переменных нет. Вложенных вызовов тоже нет. И по соглашению для вызов Си-функций есть целая пачка регистров ЦП, которую не нужно сохранять. Соглашение одинаково для всех компиляторов.
Понятно, что в общем случае гарантий не будет.
В частном случае их точно так же не будет. Гарантии -- именно гарантии -- могут быть лишь в случае, если стандарт языка обязывает генерировать код так, а не иначе, и компиляторы реализуют этот стандарт. Полагаться же на то, что конкретные компиляторы в конкретное время генерируют подходящий код -- это, скажем так, неблагоразумно, если не сказать преступно.
The function modifies the PWR->CR3 register
В языке Си нет регистров же. Значит что? Какая то магия на макросах скорее всего.
Это регистр периферийного устройства, не ядра. У ARM вся периферия отображается на память. И PWR это просто указатель, объявлен где-то там как
#define PWR ((PWR_TypeDef *) 0x58024800)
На макросах, но без магии, и не опускаясь до ассемблера.
Товарищ тридцать лет пишет коммерческий код на пяти ЯПах, а на уровне "могу наговнокодить что-то небольшое, или разобраться в чужом коде, если очень надо будет" владеет ещё десятком.
считает, что бейсик чем-то отличается от паскаля
Контекст! Мы тут об обучении начинающих говорим, а не языки "вообще" обсуждаем. И таки да, для начинающих бейсик ОЧЕНЬ СИЛЬНО отличается от паскаля -- в первую очередь отсутствием в листинге того, что не является интуитивно понятным для знающего значение слов, от которых образованы операторы.
именно вот этот ассемблерный код, если понимать слово "суть" по определению как самое главное и существенное в ком-либо или чём-либо.
Суть цикла в том, что вложенный в цикл блок выполняется несколько раз. В проге на ЯПах высокого уровня это очевидно, а в этом асм-коде разобраться может только уже более-менее подготовленный человек, не новичок, об обучении которых мы тут говорим.
А вот такое тоже надо бы)
кому надо? Асм -- штука крайне нишевая, учить ему всех подряд совершенно незачем )
Я асм привёл в пример именно потому, что реальная прога на асме должна, кроме интуитивно понятных новичку вещей, делать дофига чего ещё. Кстати, в вашем коде нет вывода на экран, в stdout или куда-то ещё )
Надо для понимания как работают циклы и переменные. Насчёт нишевости согласен, но бейсик ещё более нишевая штука ибо вообще нигде не применяется. Вывод на экран для понимания циклов излишен да и реализация на асме займёт уже не пару строк. Хотя printf ("%d\n", EAX); и поддерживается, но тут надо уже знать какой ассемблер.
Надо для понимания как работают циклы и переменные.
Для понимания циклов и переменных бейсик намного лучше, т.к. в нём нет операций, нужных железу, а не логике кода.
То, что вот это вот:
mov EAX, var_b
mov var_a,EAXявляется всего лишь копированием значения "б" в "а" через промежуточный регистр, вот ни разу не интуитивно для человека, который начал изучать программирование всего пару занятий назад. Даже если он знает, что такое mov, для него будет непонятно (и вам придётся объяснять, хотя урок совсем о другом), почему нельзя написать просто mov var_a, var_b.
А если надо не десять чисел, а сто? Бейсик не заметит проблемы, а ваш код, зависимо от целевого процессора, сломается на 25м, 48м или 94м числе, и вам придётся объяснять детям, которые ещё про циклы и концепцию переменных не поняли, нафиг им не нужные на данном этапе вещи.
но бейсик ещё более нишевая штука ибо вообще нигде не применяется
VBA -- вполне себе бейсик, пусть и с наворотами. И я уже почти тридцать лет иногда пишу на нём за деньги.
Хотя, на самом деле, для начального обучения это не важно. Изучение программирования -- это вовсе не изучение какого-то конкретного ЯП. Это в первую очередь изучение принципа построения программ, а конкретный язык -- это вторично. Если вы знаете алгоритм, которому должна следовать программа, вы легко опишете его на любом языке.
У CMOS 4000 насколько я помню (хотя меня могут поправить) выход может драйвить более чем достаточно входов для работы со школьниками. Ну а если их нужно будет драйвить миллион (вдруг), например заставить школьниками с макетными платами стадион - то можно использовать буфер 4050.
Видимо, это уже какой то следующий уровень абстракции. А ведь когда то Ардуино казалось мне неполноценной при сборке устройств из готовых модулей...
Я написал в другом комменте что думал что ардуинщики используют для работы с периферийными устройствами опрос в цикле, а не прерывания, как часто делается в профессиональном программировании микроконтроллеров, но мне сказали в другом комменте что это уже не так.
Можно даже выпускать промышленные устройства, вообще, не погружаясь в закон Ома ;)
Нет, при выпуске промышленных устройств где-то в офисе должна сидеть группа Physical Design (PD) которая знает закон Ома. Но его не обязан знать проектировщик цифровой логики на уровне регистровых передач (Register Transfer Level (RTL) design engineer). Все физическое (задержки, энергопотребление, площадь, количество D-триггеров) к нему приходит в виде отчетов от PD группы и используется для реорганизации логики, типа "о, вот тут PD говорит - критический путь - надо разрубить его D-триггерами".
это круто, что вы знаете где развилка в треке обучения и что получится на выходе. без обид, но база как раз и дается, чтобы вагонетка школьника/студента ехала осознанно, а не потратила годы на обучение тому, что ему в итоге не нужно потому что харизматичный препод так сказал)
Вам не кажется, что узкая специализация - это уже осознанный выбор? Причем не в школьные годы, и даже не в институте, а уже после его окончания.
Кто-то захочет в крупной компании заниматься исключительно ПЛИС, причем тратя время на итерации со специалистами PD, так как сам не умеет такие требования сразу учитывать. Но разве из этого следует, что другой не захочет сам разрабатывать или руководить разработкой прибора полностью? Мир ведь не ограничен сложнейшими CPU и GPU, где такая узкая специализация оправдана.
Нет, я вовсе не предлагаю выбирать каждому узкую специализацию да еще и рано. Я скорее склоняюсь к модели когда каждый преподаватель читает курс про какой-то аспект или уровень абстракций технологий, не пытаясь быть "Человеком Ренессанса" типа Леонардо да Винчи. Я не против если другой преподаватель будет параллельно читать скажем курс который ведет к проектированию библиотек ASIC на основе знания кучи физики, а третий - с абстракциями компьютерной архитектуры (уровень инструкций процессора и прерываний) для привязки к проектированию операционных систем. А школьники могут пробовать одно и другое и смотреть что им по душе.
Вы не заметили, что вроде бы "не предлагая" узкую специализацию в одном месте, Ваш менталитет сразу же привёл к узкой специализации в другом?
И что школьник сможет разработать сам, а затем показать родителям и сверстникам после одного их этих курсов?
Как школьник сможет самостоятельно объединить знания полученные на трёх разных курсах, если даже проконсультироваться в целом, по всей разработке, ему будет не с кем?
Но если он будет пытаться идти традиционными методами, придуманными в 1970-е, то у него не будет интересных результатов нигде. Максимум покажет работу таймера 555.
А вот смотрите - одна из моих учениц вставила инструкцию в синтезированный на плате FPGA процессор, c 11 минуты:
Разница в том, что, раз уж речь о 555, автоматическое включение освещения в зависимости от освещённости школьник сам сделает дома или на даче. И это будет результат видимый любому, даже весьма далёкому от электроники. А вставленную инструкцию даже маме не покажешь.
Это даже не считая того, что мотивацию в виде успешного результата с 555 ребёнок получит через несколько дней после начала занятий, а со вставленной инструкцией - через месяцы.
В школе изучают закон Ома. Какая проблема его применить, рассчитав нужное значение резистора? Думаю это гораздо полезнее, чем просто сборка без понимания.
У школьника ограниченное количество внимания. См. выше - https://habr.com/en/articles/1058154/comments/#comment_30210656
Когда я школьником начал заниматься радиолюбительством, то не страдал ограниченным количеством внимания. А вот информации тогда было значительно меньше чем сейчас. Сейчас дети нежные какие-то...
Так может и не было дефицита внимания из за того, что информации было сильно меньше чем сейчас?
Был. А ещё дети часто предпочитают конфеты а не полезную пищу. С информацией так же как и с углеводами. Мне в свое так же время хотелось сразу перейти к триггерам и регистрам, не останавливаясь на транзисторах, конденсаторах и резисторах. И как же я потом жалел, что в своё время не строил скучные ВАХ транзистора/тиристора/диода, а играл в светомузыку.
Хорошо, но вы умеете решать микроархитектурные задачи с конвейерными вычислениями, fifo и контролем потока данных? Вот я хочу их до этого довести с минимальными потерями внимания по дороге. Тогда они могут строить схемы на fpga и asic - процессоры, цос, графику итд.
Законъ св. Ома надо объяснить хотя бы в контексте Z-состояния и нагрузочной способности выходов.
С остальным - вполне согласен.
А z-состояние внутри совренных блоков систем на кристалле не используется. Где z-состояние например в протоле AXI? Оно нужно для экономии пинов на выходе из микросхемы. Поэтому его можно не упоминать, если мы хотим провести школьника к микроархитектурным конструкциям без увязания в болотах и тупиках.
При чём тут экономия пинов? Исходно Z-состояние появилось для организации шин. В типичной ЭВМ на каждый провод шины данных прицеплены выходы десятков узлов (сам проц, озу, пзу, специализированные контроллеры). Все висят на общей шине, а специальные схемы определяют, кому в данный момент разрешено выдавать на неё сигналы.
Скажем, процессор поднимает флажок "запрос к памяти" и выставляет на шину адреса нужный ему адрес. По этому флажку срабатывает селектор-дешифратор старших битов адреса, определяет, к какому именно чипу памяти адресован запрос (младшие биты напрямую идут ко всем чипам), и даёт ему разрешение выдать на шину данные из его ячейки памяти, определённой младшими разрядами адреса. А все остальные 100500 чипов в это время сидят в Z-состоянии и не мешают.
Вы дискутируете с человеком которому несколько лет платили зарплату за писание моделей шин в системах на кристалле, в частности AXI, OCP, AHB-Lite. Где в этих протоколах Z-состояние?
Все висят на общей шине, а специальные схемы определяют, кому в данный момент разрешено выдавать на неё сигналы.
Это давно не так. В современных шинах в системе на кристалле между процессором и устройствами ввода-вывода ставится interconnect, в который втыкается куча каналов от всех этих устройств. Нет одного арбитра и куча подающих Z с одним не-Z. Это просто слишком медленный (низкая пропускная способность) способ интеграции блоков IP.
В последний раз я видел HighZ в шинах в системах на кристалле в ARM AMBA 2 AHB, которая вышла в 1999 году. После этого уже в 2003 году z-состояние из AXI3/4 убрали, как и потом из AHB-Lite. В последующих (ACE и CHI) его наверняка тоже нет.
На самом деле, проблема со скоростью даже в древности была -- что с Z-состоянием, что с открытым коллектором. Скажем, в проце ЕС-1033 внутренние магистрали проца имеют передатчики с открытым коллектором -- поскольку на магистраль несколько блоков проца может работать (но только 1 блок + константа-маска из микрокоманды одновременно). Так вот, из-за большого количества и источников, и приёмников, и физически очень длинным линиям (проц -- целая стойка ведь) для обеспечения приемлемой скорости переключения им пришлось городить специальные схемы для быстрой "перезарядки" линии -- обычного подтягивающего резистора не хватало.
Так что неудивительно, что внутри современных процов от такого отказались: единственным важным достоинством Z/ОК в этом плане является малое число транзисторов, и когда оно перестало быть столь лимитирующим фактором, от этого ушли. Но я, честно говоря, удивлён, что внутри кристалла это дожило до рубежа веков, я думал, что полностью отказались ещё в 90-х.
Сборка такого блока самому не дает ничего полезного для обучения цифровому проектированию по направлении к микроархитектуре
Во первых 555 это целый мать его мир. Во вторых, обучение цифре без понимания того как это работает в железе создает уйму вопросов. Потому что допустим у тебя открытый коллектор.. давай обьясняй тугосерям что это зачем и почему. Или откуда берутся задержки? А хуяк хуяк и в продакшн ура у меня загорелся светодиод, это тема нескольких уроков, тупиковый путь развития. Поморгали светодиодами, подергали счетчики, посмотрели на дешифраторе как циферки на семисегментном светодиоде мигают, и все. Дальше только ардуине ноги крутить
Именно! 555 - это целый мир. И где 555 в современном смартфоне?
Открытый коллектор внутри блоков современных систем на кристалле не возникает - см. коммент выше.
Про задержки - хороший вопрос. Их можно показать как данное в отчете статического анализа тайминга от FPGA или ASIC тулчейнов.
Вот мои слайды про задержки:


А что, в микроконтроллерах нет ног с открытым коллектором? Шли шину I2C без подтяжки можно использовать?
Это для внешних пинов. В протоколах внутри систем на кристалле (например AXI) ничего такого нет. Хотя я согласен, что когда у школьника дойдет дело до интеграции периферийного устройства с FPGA с помощью протокола I2C, то это потребует объяснения, но 1) до этого можно не доводить, а ограничится периферийными устройствами с протоколом SPI и 2) момент интеграции FPGA + I2C будет сильно после первых упражнений с микросхемами малой степени интеграции.
Мне как-то понравилось в обсуждении подобной тематики (вообще) фраза комментария "зачем дети учатся ползать, лучше сразу бы изучали стратегию марафонского бега!
Фишка в том, что детей совершенно необязательно выводить за уровень абстракции модели Хоффмана и статического анализа тайминга из тулов. Сделать логические элементы и триггеры черными ящиками - и вперед. Где вы видите вот здесь закон Ома?

У меня, знаете, ощущение, что Вы действуете, как американские вузы в том анекдоте: если тебя в американском вузе учили крутить болты, ты будешь уметь это делать лучше всех в мире, но крутить гайки ты вообще не сможешь, потому что тебя этому никак не учили.
Я не считаю, что можно получить действительно грамотного специалиста, если он не знает ничего вокруг своей узкой специальности. Ну а все ваши "конвейерные микроархитектуры" существуют не в сферическом вакууме и не ради самих себя. Ну а лично Вы являетесь действительно грамотным специалистом как раз во многом благодаря тому, что Ваши знания и умения выходят далеко за тот уровень, которым Вы хотите ограничивать учеников (ага, в том числе потому, что Вы знаете, что такое JK-триггер :) ).
том анекдоте: если тебя в американском вузе учили крутить болты, ты будешь уметь это делать лучше всех в мире, но крутить гайки ты вообще не сможешь, потому что тебя этому никак не учили.
Это не анекдот — это Маяковский (В. В.)
Позднее я узнал, что если американец заостривает только кончики, так он знает это дело лучше всех на свете, но он может никогда ничего не слыхать про игольи ушки. Игольи ушки — не его специальность, и он не обязан их знать.
— «Моё открытие Америки» (1926)
Так им тогда и железо давать не надо. Давайте учить verilog и комбинаторной логике.
Ну, собственно, автор именно это и предлагает. Причём даже логику в минимальной степени, ведь HDL скрывает подробности реализации (скажем, чтобы описать на Верилоге регистр, не требуется понимать, как устроен триггер -- надо знать, как написать текст на языке).
Нет, только комбинационной логике нельзя - на ней нельзя строить конечные автоматы, конвейеры и прочее для чего нужна последовательностная логика.
Где вы видите вот здесь закон Ома?
Если копнуть, неподалёку от закона Ома будет Elmore delay, про которую можно узнать факультативно, чтобы представлять, как для этих облачков будут считаться тайминги и как работали EDA-тулы на низком уровне. Детишкам при знакомстве с RTL об этом точно знать не надо.
Нет, про статический анализ тайминга внутри такта нужно знать с самого начала, иначе непонятно как разбивать вычисления на стадии конвейера например. Но достаточно сказать что критический путь выводится тулами из задержек на комбинационной логике, проводах, в D-триггере и из-за неравномерностей clock tree. Просто показывать на отчет в Vivado, Quartus или LibreLane и говорить: "вот видишь, когда ставим умножение, снижается тактовая частота из-за длинного комбинационного пути между D-триггерами".
FIFO включить надо, согласен, но и сделать, чтобы они узнали, что такое резисторы, как и где их применять, тоже необходимо.
Imho крайне неправильный подход. Чтобы отказаться от подтягивающих и токоограничивающих резисторов – надо для начала знать, что это и зачем.
Ну вот в школьной физике дают до интегралов и не сильно парятся.
дак эта формула выводится без всяких интегралов
Как? Только не надо про площадь треугольника под аt говорить, так как из того, что s это площадь под vt когда v=const (и это прямоугольник) никак не следует что при v = at s снова будет равно площади под v. А доказательство, что будет таки равна - это и есть интегралы. И доказывать надо строже, чем “ну мы же знаем формулу площади треугольника”
пройденный путь равен средней скорости умноженной на время. При равноускоренном движении средняя скорость - это (v0 + (v0 + a*t))/2= v0 + a*t/2. Умножаем это на время и получаем искомую формулу t*(v0 + a*t/2) = v0*t + a*t^2/2
Нет, средняя скорость это по определению путь деленный на время, а не наоборот.
В данном случае необходимость интегралов у вас спряталась в утверждении “средняя скорость - это (v0 + (v0 + a*t))/2”. Как раз это утверждение для равноускоренного движения и и доказывается через , то есть уже зная формулу для
но мы идем с обратной стороны - находим из ряда скоростей за период среднее и применяем это к определению.
Честно говоря, я тоже не придумал как строго найти среднее для непрерывного отрезка не применяя интеграла, но интуитивно применяя среднее арифметическое можно это слегка обойти.
Да никак - среднее это по пути. Так как делаем скорость от времени не прямой а гнутой вверх или вниз - и уже не работает. Интуитивно ясно что можно повторить рассуждения маленького Гауса для арифметической прогрессии, свернуть временной отрезок пополам и сколько недоехал до средней на первом dt столько переехал на последнем, но это уже предельные переходы, в которых интуиции можно доверять с трудом и в них полшага до интегралов.
мы же выводим формулу для равноускоренного движения, поэтому конечно если изменение скорости будет неравномерным, то формула будет неверной.
А для равномерной мы можем заменить непрерывный ряд конечным, и тогда среднее арифметическое будет очевидно работать. При этом уменьшение интервалов не меняет результат - тут скорее всего для строгого доказательства тут нужны интегралы, но интуитивно очевидно - получаем что и для непрерывного среднее арифметическое дает верный результат.
Так мы получаем формулу пути без интегралов. Но да, для строгого доказательства я пока не придумал как без интегралов обойтись. Тут согласен.
Объяснять ученикам, как расчитать ограничительный резистор для светодиода не требуется. Дело в том, что если это не радиокружок для малышей, а ученик закончил среднюю школу, то он уже должен уметь это делать. Если он не умеет это делать, то он не совсем правильно выбрал специальность. Булеву логику тоже проходят в средней школе, если не ошибаюсь в 7 или 8 классе. Я случайно попал в школе на такой урок… Что дает возможности разобраться в любых логических элементах. Инженер будущий, который сегодня видит как я подключаю светодиод к 5 вольтам, получает вместе с нужным знанием о цифре одно не правильное знание. Он думает что светодиод бывает на 5 вольт, или какое другое напряжение. А это не совсем светодиод, это изделие, в котором вместе со светодиодом установлен резистор, или другой ограничитель тока, в одном корпусе. Годами мы обсуждали эту проблему, как проблему “ардуинщиков” (относится не к каждому любителю ардуино), которые не знают железа, не знают логики, пишут программу в десять строк за счет библиотеки, и не понимают совершенно как работает то, что он сделал как на уровне железа, так на уровне софта. А сейчас вы эту концепцию хотите защитить. На ХАБРЕ. В жизни людей, которые не умеют подключить светодиод, при этом бьют себя в грудь, с восклицанием Я ИНЖЕНЕР, очень много. Цель обучения, чтобы их стало меньше, а не больше.
Понимаете, если вы уделите время на это, потом еще на JK-триггер, потом еще на карты Карно (которые устарели еще в 1960-е годы, а потом оптимизация в Espresso logic optimizer в 1980-е вообще сделала ручную оптимизацию ненужной), потом упомянете что счетчики можно строить на T-триггерах, пусть даже это не вписывается в современную методологию
- пока вы будете этим всем заниматься, ученика затянет в это болото и он не дойдет до нужного. Например почти никто из недавно окончивших вуз не знает что такое контроль потока данных с помощью кредитных счетчиков (credit based flow control), хотя это необходимое знание во всех электронных компаниях, особенно которые заняти сетевыми и графическими чипами.
Мы это уже обсуждали. Лично я только частично с Вами согласен. То, что требует длительного разбора -- да, наверное, лучше пропустить. То, что много времени не потребует -- скорей, лучше посмотреть. Ну а уж фундаментальные вещи для электроники типа тока, напряжения и сопротивления -- они попросту обязательны, и особенно для детей, чтоб они пускай поверхностно, но изучали мир во всех его проявлениях. Если на то пошло, знание элементарной не электроники даже, а электротехники в 100500 раз важней всех этих конвейеров с кредитными счётчиками -- потому что последними занимается 0,0000000001% населения Земли, а починить розетку или кинуть провод на даче может потребоваться каждому.
Ну я вот, например, помню законы Ома, Кирхгофа, помню как рассчитать импеданс в цепи и много чего еще из курса электротехники. Но я бы не рискнул чинить проводку у себя в доме
Я бы тоже предпочёл доверить профессионалу -- хотя б потому, что я слепой. Но:
иногда надо сделать вотпрямща, а пригласить специалиста по каким-то причинам невозможно;
а эти специалисты есть? Если ко мне придёт условный узбек, могу ли я рассчитывать на то, что он сам проложит мне достаточно толстый провод, чтобы мои 100500 компутеров не вызвали его недопустимый нагрев? Я вот сильно не уверен, что он всё сделает правильно, и предпочту сначала сам посчитать, провод какого сечения мне необходим, а затем, возможно, и купить его самому.
Странно. Обычно люди не рискуют делегировать. Грамотные исполнители ныне огромная редкость.
Мне специалисты мосэнерго при замене счетчика перепутали ноль с фазой и ушли.
Ну чинить розетку на даче могут научить детей другие люди. Почему вы считаете, что если я вздумал научить интересующихся детей скажем как построить конечный автомат по распознаванию последовательностей на микросхемах малой степени интеграции - то я автоматически должен еще и учить чинить розетки?
Кстати, про ардуино. У меня к ардуинщикам другая претензия - то как они показывают работу с внешними устройствами (с опросом, а не через прерывания) - это не то как работают профессиональные программисты микроконтроллеров и встроенных систем вообще.
Но на том же Линухе по "прерываниям" зачастую невозможно: их просто нет на уровне задач (процессов) пользователя. Вот мне буквально сейчас нужно связать две платы: Распберри 5, которая работает мордой (дисплей с сенсорным экраном, Ethernet для связи с чем-то более высокого уровня и всё такое), и микроконтроллерной платкой, которая реализует собственно прибор (производит замеры с помощью своего АЦП, управляет всякими там клапанами и прочая). Обмен между ними вполне себе асинхронный, объёмы передачи небольшие, так что логично использовать UART. Но в Линухе я не могу запустить операцию ввода с UART и не ждать её окончания, как я сделал бы это в Винде, в VAX/VMS, RSX-11 или даже в древней и ни разу не реального времени OS/360 -- поскольку асинхронного ввода-вывода там нет, в отличие от всех перечисленных ОС. По сути, единственный способ -- спамить опрос UARTа с помощью select/poll и выполнять чтение, когда опрос сообщит, что есть что читать. Ну или запускать второй процесс, который будет запрашивать в чтение и останавливаться, пока оно не будет выполнено, в то время как другой процесс общается с пользователем (рисует картинки, обрабатывает сенсорный экран и т.п.).
Ну микроконтроллеры это все-таки не Линукс, там другая кухня, и в bare metal и в RTOS. И Ардуино это все-таки микроконтроллер как ни крути. Вот в Расберри-Пай я бы этого не требовал, но там бы я хотел чтобы детям показали Pthreads какие-нибудь.
Тут я больше к тому, что профессиональные программисты тоже вынуждены иногда идиотизмом заниматься -- пусть и из-за идиотизма платформы, которую должны по той или иной причине использовать. Но, с другой стороны, и на МК опрос иногда проще и лучше. Скажем, был у меня другой прибор, где всё крутилось в главном цикле (задача простая, лепить туда какую-нить недоОСРВ смысла никакого). Оказалось, что мне проще проверять факт нажатия кнопок именно обычным опросом в рамках главного цикла, не делать прерывания по их нажатию (а вот обмен данными по UART и SPI был уже с использованием прерываний).
факт нажатия кнопок именно обычным опросом в рамках главного цикла, не делать прерывания по их нажатию
Прерывание - это практически мгновенная реакция на событие. В случае кнопок (HMI - интрефейс человек-машина) оправдано в одном с половиной случаев случае - выводим МК из сна с низким энергопотреблением и "большая красная кнопка стоп, самоуничтожение".
Прерывание -- это концевой выключатель на роботе, энкодер, но, какая к чертям кнопка, чтоб по менюшкам ходить?
Ну, так оно и есть.
Прерывание удобно чтобы не загружать процессор опросом периферийных устройств, когда он что-то себе считает. Конечно можно поставить RTOS, в котором одна задача будет что-то считать, а другая опрашивать кнопку. Но и в этом случае будут прерывания - эти две задачи будет переключаться между собою с помощью прерывания по таймеру. Обработчик прерывания по таймеру будет сохранять регистры одной задачи и восстанавливать регистры другой.
Конечно можно делать такое и без прерываний:
Кооперативной многозадачностью, при которой вычисляющая задача иногда отдает управление опрашивающей книпку. Но это геморойно программировать.
В многопоточных процессорных ядрах есть такая хрень как gated storage, который позволяет тредам работать и обмениваться информацией без прерываний, но это очень специфичная фича, я ее знаю только потому что работал в проекте MIPS-Huawei с ядрами MIPS 34K в 2010 году.
Пример из прода, как делают, но как не стоит делать: широко известная в узких кругах ELM327, покорившая весь мир - собрана без единого гвоздя не использует прерываний в принципе, не использует переключения задач в классическом понимании, тайминги для связи с внешним миром (под все эти шины с протоколами OBD) рассчитаны до мюллиметра (тм) до такта, задержки на любимых всеми delay-ях (циклах со счетчиком), неприоритетные (не realtime) участки кода очень ловко вставлены в приоритетные (в том же цикле delay в момент инкремента счетчика цикла может светодиодик помаргивать в соответствии с задачей, или в буфер данные кидать, или буфер на принятые данные проверять -этакая вытесняющая многозадачность вручную), а спаггети-стайл получившегося в итоге кода заставил бы в горбу Дейкстру (или кто там на бейсик, упруго деформирующий студентов, наезжал) крутиться в такт светодиодику. А ведь миллиарды людей пользуются этим гениальным, по сути своей, продуктом ежедневно в критических отраслях (ага, автомобиль же) и даже денюжку платят (благодаря китайцам - маленькую)
Серьёзно? Мне всегда казалось, что в unix-системах "всё есть файл", а уж работа с файлами отработана до мелочей, включая асинхронный ввод/вывод. Я, правда, с пинами на распберри сталкивался только один раз, но работал именно через псевдофайлы.
Uart - очень особенный файл. Все, чем он особенный, подперто ioctl
Нет, в унихе асинхронного ввода-вывода как раз нет. В стандарте POSIX его добавили как необязательное расширение; есть системы, где всё это реализовано, но Линух к ним не относится. В Линухе сравнительно недавно придумали громоздкий и замороченный IO_URING, но он есть не везде, плюс его где-то вообще полностью отключают (здесь на Хабре статейка недавно по этому поводу была). В общем, в уних-мире в этом плане всё весьма и весьма плохо, в т.ч. из-за идиотской концепции "всё есть файл" (она, как и целый ряд других теоретически красивых вещей, на практике создаёт проблемы).
В унихе есть т.н. неблокирующий ввод-вывод -- но это другое (тм). Разница в том, что при настоящем асинхронном вводе-выводе ты запускаешь некую операцию ввода-вывода, дёрнув соответствующий системный сервис, и указываешь при этом, например, какую процедуру обратного вызова система должна в твоей программе вызвать, когда ввод-вывод будет закончен. После запуска операции твоя программа продолжает работу параллельно с вводом-выводом и будет оповещена системой, когда ввод-вывод закончится (не обязательно через процедуру обратного вызова -- это уже от системы зависит; тут главное -- идея с оповещением задачи о завершении операции без остановки самой задачи на время выполнения операции).
А в "неблокирующем" униховом вводе-выводе ты с помощью select или poll опрашиваешь готовность устройства выполнить операцию, и если видишь, что оно готово, запускаешь операцию. Скажем, если байт данных уже поступил в УАРТ, ты узнаешь о готовности к чтению, если буфер передатчика УАРТ пуст, ты узнаешь о готовности к записи. Но здесь есть сразу несколько проблем:
ты должен либо в цикле опрашивать интересующее устройство (файл, ага) о готовности, т.е. спамить систему постоянными запросами, либо переходить в ожидание готовности (select/poll может ждать, а может проверить и сразу вернуть состояние);
у тебя нет способа узнать момент окончания фактической операции, ты можешь узнать лишь о готовности её начать;
твоя задача всё равно может быть заблокирована по тем или иным причинам (скажем, ты обнаружил, что UART готов передать данные, и выдал запрос на запись 16 байтов -- но у UART в твоей системе буфер всего на 4 байта, и ОС остановит твою задачу до тех пор, пока все 16 байтов не будут записаны в буфер);
целый ряд файлов, включая настоящие дисковые файлы, всегда готовы к операциям чтения/записи, хотя очевидно, что любое чтение или запись файла будет блокировать задачу до завершения операции.
Таким образом, подлинной асинхронности ввода-вывода этими средствами добиться невозможно, можно лишь с большим или меньшим успехом их имитировать. В случае с моим медленным УАРТом и быстрым процом (на распберри) постоянный опрос реальных проблем не создаёт -- просто само решение уродское. В других случаях это не работало бы вообще (например, нельзя сделать в одном потоке загрузку данных из файла с параллельной обработкой уже загруженного).
У меня к ардуинщикам другая претензия - то как они показывают работу с внешними устройствами (с опросом, а не через прерывания) - это не то как работают профессиональные программисты микроконтроллеров и встроенных систем вообще.
Ардуинщики - это те, кто преподает про ардуинки, или кто пользуется?
Если первое, то сколько я видел таких, про прерывания рассказывают если не на первом уроке, то на втором, ибо очень полезная вещь.
Если второе, то это обычно от желания быстро сделать нечто простое. Там не то что до прерываний не доходит, но и до прямого обмена с периферией вообще, все прячется за библиотеки (и по барабану, что там внутри, опрос или прерывание).
А вот за профессиональными микроконтроллерщиками как раз замечал, что во многих случаях они реализуют обмен с внешними устройствами именно через опрос, а не прерывания, и у них находятся на то свои резоны
А к профессиональным разработчикам архитектуры usb шины у вас нет претензий? Где поллинг хостом это единственный способ target’у сообщить о событии?
После реверса прошивок всяких нерадиолюбительски-подельных железяк, из серийных устройств, из прода, так сказать - я потерял веру в программистов. И думаю - какой к черту идеальный код? Все пишут как попало! Ардуино-стайл еще не самое жуткое.
Полагаю, на этом же самом ХАБРЕ (не знаю, зачем вы пишете его заглавными буквами, но пусть) людей, которые смогут внятно объяснить, как полевой транзистор с изолированным затвором работает, можно по пальцам пересчитать. Лишь немногим больше наберётся знающих, что именно делает в цепи питания блокировочный конденсатор и как именно его наличие связано с использованием транзисторов с изолированным затвором...
Ну то есть в общем самые базовые вещи.
Полагаете, в свете этого здешняя публика не имеет права считать себя разбирающейся в том, как работают компьютеры?
Прочитайте внимательно заголовок статьи. И саму статью. Вашу мысль можно продолжить еще дальше. Рано или поздно каждый упрется в предел знаний. Мы дойдем до квантовой физики, и там будет предел. Есть при этом много людей, отличных специалистов в своей сфере, которые расчеты проводят даже без учета теории относительности. Они знаю что она есть, но пользуются классической механикой. Я также в расчетах мощности зная ток и напряжения не использую принцип неопределенности Гейзенберга, и указываю в расчетах конкретную мощность, а не диапазон вероятностей.
Но почему же почти все не согласны с автором статьи? Автор статьи говорит, вот с этим вы столкнетесь, но это вам не надо. В рамках того, чему учит автор понимание как работает резистор подтяжки, и защита пина по входу, что уже уходит за пределы закона Ома, крайне обязательно. Дать ученику задачу на закон Ома одну, это не займет много времени. И выявить того, кто это понимает, тоже не проблема. Два три человека в группе будут способны, вместо одной задачи решит штук 5 в уме… а это уже скажет о них много.
Вы посмотрели остальные статьи автора, фото людей которые у него учатся? Думаю нет, а стоило это сделать первым делом. Я бы прошел мимо, если бы там были исключительно ученики до лет 12, которые программировать уже смогут, а вот закон Ома для них будет немного сложноват. У него аудитория очень разного возраста. Для одних это уже дважды пройденный материал. Для других, в силу возраста (у него есть совсем маленькие дети), до этого совсем рано. И ничего не мешает сказать ему, друг мой, перед светодиодом всегда ставим резистор. Ставь сопротивление около 1000 ом, а чуть позже я нучу вас рассчитывать его в зависимости от того, какой результат хотите получить. Или поставь вот этот модуль, в котором есть светодиод и резистор, и работает он от 5 вольт. И если бы автор учил только алгоритмам и синтаксису, т.е. чистому программирования, то он был бы и прав. Но он учит конструированию целиком, при этом выкидывая оттуда половину дисциплины.
И да, автор статьи занимает крайне полезным делом. Именно из этих детей вырастут специалисты. Которым тот, кто знает закон Ома, будет исправлять небольшие ошибки в крупных проектах. Но без такого редактора проект может просто не получиться, потому что автор не знал закон Ома, теорию длинных линий, и т.д. И автор думает что эти знания могут отпугнуть, а может совсем наоборот. Марии ведь очень понравилось паять.
У преподавателя есть два варианта:
Полагаться на формальные предпосылки курса (что все пришедшие уже знают электротехнику, хотя бы)
За первые полчаса проверить, есть ли эти предпосылки в реальности.
Второй вариант почти всегда дешевле. Даже если 80% учеников всё знают, краткое повторение «синхронизирует» терминологию (между всеми участниками): что преподаватель называет током, напряжением, землёй, логическим уровнем, входом, выходом, подтяжкой. А заодно обнаруживаются опасные пробелы у остальных 20%. Иначе они могут несколько занятий механически переставлять провода по картинке, скрывая, что не понимают происходящего. А цель, вроде бы, в том, чтобы все знали, а не том, чтобы пристыдить в итоге «слишком в себя поверивших».
Причём автор статьи идёт дальше утверждения «дети уже должны это знать». Он прямо пишет, что подобрал компоненты так, чтобы удалить резисторы и избавиться от необходимости объяснять законы Ома и Кирхгофа. Вот это прям выглядит сомнительно. Я видел людей, которые на вопрос про определенное умение говорили «да, знаю, делал, руками делал», а потом говорят «у меня там было проще, вот этих и этих вещей не нужно было». Ну а резистор, как ни крути, в жизни много где пригодится, в том смысле, что вряд ли в жизни ребенку попадутся только схемы, где все подобрано только так, что резисторов там не будет. «Жопа Резистор есть, а слова — нет»? )
Необязательно учить детей рассчитывать сложные цепи или тратить месяц на электротехнику, но перед работой с макетной платой им нужно хотя бы объяснить:
что такое напряжение и ток;
почему ток требует замкнутой цепи;
условное направление тока;
закон Ома;
зачем ограничивают ток;
что такое короткое замыкание;
что вход нельзя оставлять в неопределённом состоянии;
зачем нужна подтяжка;
что у логических входов и выходов есть допустимые напряжения и токи.
Это не отдельный семестровый курс. Для первоначального общего языка хватит одного занятия с батарейкой или источником питания, резистором, светодиодом, кнопкой и мультиметром. Дальше можно спокойно идти к триггерам, FIFO и FPGA, возвращаясь к электрической стороне по мере необходимости.
И резистор здесь особенно удачный учебный объект. Он одновременно показывает закон Ома, ограничение тока, делитель напряжения и подтяжку. Выбрасывая его из первых занятий, автор не просто убирает лишнюю деталь с платы — он убирает один из самых удобных способов объяснить, почему цифровая схема вообще ведёт себя определённым образом.
Необязательно учить детей рассчитывать сложные цепи или тратить месяц на электротехнику, но перед работой с макетной платой им нужно хотя бы объяснить
Нет, цифровым схемам это не надо. Если в целом в курсе нужно это объяснить - пусть будет отдельный предмет. Так же как если мы хотим, чтобы ученик разгребал хорошо функциональный анализ - ему не нужно из курса ФАНа делать курс высшей математики. Пусть учат закон ома на соседних предметах.
Нет, цифровым схемам это не надо
...и вот бегаеть молодёжь, путая RS-232 с UART (алло, что там с подтяжкой?)
UART - это полезное знание, но если потратить слишком много времени на протокол UART и подтяжки, то не останется времени на протокол AXI в системах на кристалле, и молодежь будет косячить на вопросы про valid/ready handshakes и данные возвращаемые не в порядке запросов (out-of-order read с тэгами).
Подтяжки объясняются за 5 минут. Настоящий UART требует, конечно, куда больше времени, но оно отнюдь не впустую уйдёт, в том числе и для HDLщика. Вы вот заранее знаете, чем ребёнку в будущем заниматься придётся? Может, он будет не процессорное ядро проектировать, а периферию для SoC?
С другой стороны, я, ни разу не являясь электронщиком как таковым (HDL для меня вообще хобби), с этой самой AXI по спецификации разобрался за полдня, хотя до неё из более-менее современных шин знакомился только с AHB (зато, естественно, знаю всякую древнюю асинхронщину -- хоть DECовский Unibus, хоть вообще классический интерфейс ввода-вывода Системы 360, и уж тем более всякие там ISA). И мне кажется, что столь быстро я в это вник как раз потому, что знаком с большой кучей всякого старья. Кстати говоря, эти самые "рукопожатия" valid/ready вполне имеют место и во многих древних асинхронных шинах (но не во всех).
А, кстати, ещё такой вопрос. Если Вы полностью игнорируете "презренный металл" в виде реальных схем на уровне транзисторов, то как Вы собираетесь объяснять сопряжение блоков, работающих в разных доменах синхронизации? Объяснять метастабильность злым колдунством, которое искореняется, и то не со 100% гарантией, магическими цепочками триггеров?
Или как, не упоминая "физику", объяснить, для чего иногда регистры дублируются (из-за ограниченной нагрузочной способности и/или слишком большой ёмкости подключённых к ним входов)?
Ха! Хороший вопрос. Да, я предлагаю объяснять метастабильность аккурат в объеме двух страниц Харрис & Харрис и двух же страниц статьи Клиффа Куммингса. Но:
Я против объяснения пересечения тактового домена лицам, которые еще не набили руку на обычных схемах с одним клоком. Потому что они начинают лепить эти тактовые домены по поводу и без повода - вместо того чтобы нормально конвейеризовать.
Есть курсы, даже для новичков, в которых про CDC говорят, а потом не говорят как ее преодолевать. Ведь там не просто цепочки из двух или трех D-триггеров: там еще нужно переводить pulse в level, строить CDC FIFO со счетчиками Грея, разобрать вопрос пропускной способности итд итп.
Короче я считаю что для CDC необходимо и достаточно провести викенд за штудированием статей Клиффа Каммингса, а потом использовать как правило имеющееся в каждой электронной компании IP на этот случай.
Вот моя шпаргалка на эту тему:

И это тема не для школьников, а где-то для 3-4 курса минимум. Не потому что это школьника недоступно (школьникам олимпиадного типа это доступно), а потому что это не должно делаться рутинно. Даже большие процессорные ядра как правило работают на одном клоке.
Ну, с этим-то я согласен :) Но мне тут ещё одна мысль в голову пришла.
Если бы Вы вели, скажем, некий спецкурс в университете, а Вашими слушателями были бы студенты, условно говоря, 3-го курса, Вы были бы полностью вправе полагаться на то, что элементарную физику (на уровне достаточно грамотного использования реальных цифровых микросхем, хотя и не проектирования их из транзисторов) они знают, про подтяжки или там токоограничители тоже в курсе, с цифровой электроникой знакомы, ну и т.д. Более того, если студент пришёл на Ваш спецкурс по современному процессорному микроархитектурному вериложеству, то Вы точно знаете, что именно эта тема его и интересует: это уже взрослый человек, более-менее знающий, чем он хочет в будущем заниматься.
Однако со школьниками ситуация совсем другая. У них ещё нет более-менее сформировавшихся интересов, а начальный уровень знаний может быть крайне невелик. Они, вполне может быть, крайне смутно представляют, что такое этот ваш процессор вообще. Поэтому Вам в любом случае надо давать им сначала базовую цифровую электронику на рассыпухе -- что Вы, собственно говоря, и делаете. Но, с одной стороны, это реальные микросхемы, накладывающие реальные физические ограничения -- это не HDL, где все такие подробности скрыты от разработчика; соответственно, некоторые элементарные сведения сообщить было бы, по меньшей мере, разумно (типа того, что нельзя на один выход цеплять 100500 входов или что логические уровни 1 и 0 могут иметь разные физические напряжения, поэтому не всегда можно напрямую соединить железку А с железкой Б); сюда входят и пресловутые резисторы, и даже генератор на 555 -- причём всё это "на пальцах" можно за одно занятие объяснить, если не пытаться лезть в дебри с дифурами (вот, глядите: ставим конденсатор ёмкости N -- светодиод мигает часто, ёмкости 2*N -- примерно в два раза медленнее; это из-за того, что для переключения конденсатор должен зарядиться/разрядиться, а скорость сего процесса зависит, внезапно, от ёмкости конденсатора и от тока, который пропускает резистор -- представьте себе бочку, в которую наливают воду или откачивают через трубу определённого диаметра; но глубже мы с вами это разбирать не будем, потому что это так называемая аналоговая электроника, а наш предмет -- цифровая, и от аналоговой нам нужны лишь самые базовые вещи типа вот этого "магического" генератора сигналов на 555, ну а кто хочет поподробней именно про это -- почитайте для начала книжку такую-то).
С другой стороны, нельзя сказать: вот элемент И, он работает так-то, вот элемент ИЛИ, он работает сяк-то, вот Д-триггер -- а теперь сделайте мне из них ФИФО. Нужна куча промежуточных ступеней с достаточно простыми задачами, которые реально решить в пределах одного занятия (особенно если школьники ещё достаточно мелкие -- это у великовозрастных мотивации может оказаться достаточно для нескольких занятий без получения ощутимого и очевидного результата, "малышам" же для поддержания интереса результаты нужны быстро; в общем, между 16 и 12 годами разница в подобном весьма велика, хотя в интеллекте как таковом её уже практически нет -- в отличие от 12 и 8). Соответственно, могут возникать задачи вроде "а сделайте-ка из логики и триггеров счётчик", "а теперь сделайте реверсивный счётчик" и т.д. -- а, как Вы наверняка знаете, "в древности" подобное нередко делалось на тех самых JK-триггерах, т.е. и они не являются бесполезными на уровне освоения "физической схемотехники" (а не HDL), хотя вполне можно решить те же задачи и на Д-триггерах.
Ну и, наконец, любые подобные занятия для ребёнка -- это пока ещё "общее развитие", а не узкопрофессиональное обучение (в отличие от студента-старшекурсника), а соответственно, здесь нужна не столько глубина, сколько ширина. Тут больше цель -- заинтересовать техникой вообще, показать возможные направления развития (а не сидения в зомбочатиках), а не сделать из ребёнка супер-пупер-профессионального разработчика суперскалярных процов.
типа того, что нельзя на один выход цеплять 100500 входов
Вроде на выход из cmos 4000 можно цеплять много входов, но над этим всем подумаю. Это тема в развитии.
любые подобные занятия для ребёнка – это пока ещё “общее развитие”, а не узкопрофессиональное обучение (в отличие от студента-старшекурсника), а соответственно, здесь нужна не столько глубина, сколько ширина.
Попробую возразить.
Когда начинают давать “широкие знания”, обычно это происходит в школе, обучение для большинства детей быстро переходит в гипнопедию. Снача-ала мы выучим закон Ома, пото-ом закон Кирхгофа, Петров к доске, Иванов, не рисуй в тетради…
А ребенку интересно увидеть результат. Сразу, да, а не через пятнадцать лет обучения широким знаниям, которые без этого результата скучны, как трансляция съезда КПСС. А вот потом на этот результат, оно жужжит и мигает лампочкой, и я это сделал сам! - вот тогда можно потихоньку наслаивать широкие знания.
Сначала результат - потом подтягивать к результату понимание. Гораздо завлекательнее, для детей. Да и не только для детей.
И где же возражение? Я нигде не написал, что надо выучить 100500 тонн теории до того, как зажечь светодиод. Более того, я многократно повторил: действительно необходимую теорию можно дать буквально за один-два часа! Просто детей среднего школьного возраста нужно учить не тупо собирать по схеме, а понимать на базовом уровне, почему и для чего что-то там нужно -- ну а автор предлагает выкинуть вообще всё, что не нужно для реализации логики на HDL (именно так! поскольку для полноценной реализации логики на рассыпухе надо иметь определённые познания об этой самой рассыпухе, голой логики здесь недостаточно -- если речь идёт, конечно, о понимании, а не механическом повторении).
Возражение в том, что сначала можно (и нужно!) и тупо собрать по схеме. В первую очередь важен практический результат, полученный ребенком. Штоп зацепило.
А вот потом - потом к этому результату можно подтянуть теорию. Не наоборот.
А то я помню эти прекрасные минуты, когда преподаватель начинает фразу “Сначала вам надо знать, что…” - и к пятому слову сидит уже полный класс сомнамбул с открытыми, ничего не выражающими глазами.
Да, можно сначала собрать -- против этого я нигде ничего не говорю. Но потом надо разобраться, почему собрали так, а не иначе -- а вот эту вторую часть автор предлагает выкинуть, с чем я абсолютно категорически не согласен.
Кручу в голове эту идею… нет, не соглашусь. Необходимо и достаточно сказать, что вообще-то есть причины, по которым собрали так, а не иначе. Интересно? Спрашивайте. Неинтересно - ну пока пособирайте еще руками. Некоторым интересно так и не станет. Знания не надо навязывать, от навязывания дети превращаются в сомнамбул. В сторону знаний надо показывать пальцем и заговорщически подмигивать.
Ну так в том и дело, что нужно предупредить, что в реальном мире есть дополнительные вещи, которые нужно учитывать, а не просто без каких-либо объяснений и предупреждений: собираем вот так, и всё. А завтра ученик подключит обычный светодиод, который купил на али, и у него сгорит либо светодиод, либо МК/ПЛИС -- и всё из-за того, что его не предупредили, что ток надо ограничивать резистором или использовать конструкцию, где токоограничитель входит в состав "светодиода".
Кстати можно делать сборку и не строго по картинке, даже с начала. Но тогда рядом с каждым ребенком должен сидеть индивидуальный взрослый, максимум один на троих-пятерых детей.
Я знаю из опыта проведения мероприятий с детьми, что если сразу не дать платы и не начать что-то делать, а вместо этого читать лекцию, то к концу первого часа начинают уходить. Через два часа это будет массово.
Я это впервые увидел в 2017 году, когда мой приятель-физик увлекся и начал описывать детям транзисторы в микросхеме, дошел до FinFET, и тут первая мама с ребенком пошла к выходу.
Кстати говоря, эти самые "рукопожатия" valid/ready вполне имеют место и во многих древних асинхронных шинах (но не во всех).
AXI - это не асинхронная шина в хардверном смысле. Трансфер на канале AXI считается состоявшимся, когда и valid, и ready снимаются (sampled) как 1 на положительном фронте тактового сигнала. То есть все синхронно.
Хотя ready может комбинационно зависеть от valid по протоколу, но это не обязательно так. Более того, это не рекомендуется.
Одна из ошибок тех кто знакомится с этой шиной в том, что некоторые думают - что ready - это якобю ответ на valid. Такое допущение интуитивно для программиста - запрос/ответ.
Но это не так. ready чаще всего делается как функция от внутреннего состояния слейва - готов ли он принять транзакцию, или он сейчас busy = ~ ready.
То есть типичный случай использования valid / ready: ready после сброса стоит в 1 по умолчанию, и устройство может принять N транзакций прежде чем станет busy (то есть ready = 0).
С какими шинами вы сравниваете каналы AXI?
Я знаю, что AXI -- синхронная, и с назначением сигналов тоже знаком, хотя полностью в голове это не держу: всё ж мне это нужно эпизодически, когда я в очередной раз лезу что-то ковырять на плисине.
Ну и ни с какими шинами я AXI напрямую не сравниваю, я лишь говорю, что опыт с другими шинами, в т.ч. древними, помогает и здесь. Вы вот, например, написали, что
данные возвращаемые не в порядке запросов (out-of-order read с тэгами)
и это создаёт у молодёжи проблемы. Ну а я сразу вспомнил допотопный, ещё из первой половины 1960-х, интерфейс ввода-вывода Системы 360: на мультиплексном канале висит много устройств, и все они могут работать параллельно, а канал по их запросам переключается между ними, используя "тэг" в виде адреса устройства, который устройство, запросившее обслуживание, ему выдаёт. И ход, и завершение операций ввода-вывода там могут быть в произвольном порядке; "рукопожатия" тоже есть -- только они асинхронные, без всякого клока (канал выдал некий управляющий сигнал -- устройство должно ответить одним из своих сигналов, ну и наоборот). Ну а поскольку я со всем этим в своё время познакомился, то, увидев про сию возможность у AXI, я ничуть не удивился, и никаких сложностей типа "а как это можно сделать?" у меня не возникает, хотя ведь очевидно, что AXI и тот интерфейс -- вещи абсолютно разные. (А, ещё его можно считать "двухканальным": как и в современных шинах, там нет двунаправленных линий, типичных для шин 70-80-х годов).
Естественно, это не значит, что современным студентам стоит изучать тот интерфейс или, скажем, ISA, но вот считать подобные древние знания бесполезными в наши дни тоже было бы опрометчиво.
Я в свое время единственный в кружке робототехники понимал как на ардуино распределяется питание и как ее включить чтобы и не спалить и сервам питания хватило. И почему если не инициализировать пины как выходы, светодиоды горят тускло, и как лучше подключить кнопку.
А вот такой вопрос, как я написал выше: моя претензия к ардуинщикам - то как они показывают работу с внешними устройствами (с опросом, а не через прерывания) - это не то как работают профессиональные программисты микроконтроллеров и встроенных систем вообще. Что вы на это скажете? У вас разбирались прерывания как способ снять нагрузку с микроконтроллера в опросе периферийных устройств?
Поскольку ваша цель показать цифровые схемы, подход кажется абсолютно верным. Зачем перегружать школьников лишними уровнями абстракции, не имеющими прямого отношения к теме? Иначе почему только Кирхгоф, а где электроны\атомы, физика полупроводников и т.д.?
имхо, внешние pull up\down резисторы для сенсоров или токоограничивающие для нагрузок это просто костыли на границе аналоговой и цифровой схемотехники. Если кого-то и затянет, то со временем сами углубятся в аналоговую электронику.
Короче вот первые четыре страницы моего туториала в виде шпаргалок к моим занятиям
скажите, а почему на двух языках?
Конкретно сейчас я прорекламировал эти занятия в основном среди русских иммигрантов, но с некоторыми приходят друзья (например индусы), плюс еще ко мне заходит пара китайев, тоже с детьми-школьниками.
Кроме этого довольно много русских детей из тех которые начали учиться в американской школе до возраста 12 лет - предпочитают такой материал на английском, хотя другие на русском.
А мне кажется идея автора очень здравая.
Только вот, судя по комментариям, донести до хабра её не получилось.
Насколько я понял замысел:
Идея в том что бы сначала заинтересовать детей, а уже потом погружать в технические детали тех кто сам захочет.
И делать это в первую очередь через практику.
Мне этот подход кажется очень здравым. Да, там возможно окажутся те, кто и закон Ома не помнит. Ну что же с того. Зато есть шанс зацепить тех, кто заинтересуется и во всем разберётся.
Вы почти правы. Однако у автора идея доведена до абсурда: раз нечто не требуется для данной очень узкой специальности (разработчика внутренностей цифровой микросхемы на языке описания аппаратуры), то давайте выкинем вообще всё, кроме минимально необходимого именно для этой специальности.
Отказываться от обычных светодиодов для уменьшения возни при сборке на макетке -- нормально. Не упоминать вообще о том, что настоящим светодиодам (и не только им) требуется резистор -- это уже идиотизм. Тем более это можно объяснить не только ученику средних классов (да, ему уже есть смысл с законом Ома, даже если в школе до него они ещё не дошли), но и какому-нибудь 8-летнему ребёнку -- только последнему таки без формул, а с понятной на пальцах "гидравлической" аналогией (резистор "тормозит" ток, не давая пройти ему в опасном для жизни светодиода количестве -- как узкая труба ограничивает поток воды). Для этого не требуется курс высшей математики, для этого не требуется отвлекаться от столь любимых автором конвейеров с FIFO на 3 месяца -- всё необходимое можно объяснить буквально за час, максимум за два.
абсурда не вижу, толковых детей надо учить главному, иначе из-за деревьев для них не видно леса
Главное не существует само по себе, без "неглавного". Тут весь спор именно об этом.
нет не об этом, а о том что именно главное, с которого начинать, а так конечно море всего, но нельзя изучать серьезный предмет подобно чтению энциклопедии начиная с буквы "A"
Спор немого и глухого какой-то. Никто не запрещает ученику, если ему интересно, либо самому что-то прочитать, либо спросить.
Суть в том, что оптимальнее давать в группе то, что имеет шанс заинтересовать большинство участников. А вот "неглавное" заинтересует лишь немногих, а то и вообще может оказаться, что в конкретной группе никого не заинтересует.
Гипотетический ход моих мыслей. Отлично. К выходу микроконтроллера я могу подключить 5 вольтовый светодиод. Он светится. Больше ничего не нужно, источник на 5 вольт, и микроконтроллер на 5 вольт.
Так, а сегодня мне нужно подключить реле. Возьмем вот это, с обмоткой на 5 вольт. Проверяем. Реле включилось, отлично. А сейчас должно выключиться. Выключилось. А теперь это должно пройзойти десять раз подряд. Ой… а почему пошел дым из контроллера?
Так, специалист подсказал в чем проблема. Самоиндукция. Кто бы мог подумать. Поставим защитные диоды. Пробуем. Все отлично работает. А теперь мне нужно добавить еще 5 реле. Конечно с защитными диодами. Я теперь знаю. Проверяем по одному. Отлично, все работают. А теперь 5 одновременно. Так, почему пошел дым из контроллера… (для справки, ток на порт превысил максимальное значение).
Ну что… снова специалист помог. Просто порекомендовал приобрести готовые релейные модули. А теперь нам нужно подключить дисплей. У него питание 5 вольт. А логические уровни 3.3… ну ничего страшного, и так заработает.
Проблема обучения - даже нет, не обучения, а проблема заинтересовать обучаться электронике в том, что электроника сегодня это много узких специальностей, достичь приличной (не передовой даже) компетенции в которой занимает много времени и усилий у учащегося. То есть не две электронки, аналоговая и цифровая, а множество очень узких сегментов. А юному дарованию хочется, чтобы что-то самодельное на условной ардуине заработало здесь и сейчас, потому что иначе теряется интерес. А потом это самодельное невольно сравнивается с доступными в продаже ну, допустим, смартфонами, и интерес теряется серьезно, потому что внезапно осознается пропасть между собой и даже не передним краем, а самым обычным мейнстримом. То есть вопрос тут больше из области педагогики, как долгосрочно удержать интерес, а не отпугнуть. Но, с другой стороны, необходимые основы объективно присутствуют - цифровая электроника ведь на самом деле аналоговая. В какой-то мере аналоговую сущность цифры можно игнорировать, отгородившись абстракциями языков программирования, но вообще не знать основ плохо, потому что когда абстракции столкнутся с реальным миром, кое что может пойти не так. Но, в контексте статьи, это больше вопрос педагогики - как и когда дать основы, чтобы не отбить интерес, а наоборот удерживать его. У меня нет ответа. А так, вне контекста, я за скучные основы сначала и постепенное усложнение потом, с неоднократным возвратом к основам, потому что даже тот же более-менее выученный и как будто бы понятый закон Ома для начинающего выглядит неочевидно, будучи примененным к переменному току - это просто пример того, что нельзя двигаться дальше без фундамента основ, но и основы невозможно охватить единоразово. Можно, например, программировать транзисторы, в реальности не зная их устройства - особенно с биполярныии бывает трудно разобраться, но однажды это незнание заведет в тупик, поэтому лучше разобраться заранее хотя бы поверхностно, чтобы было к чему вернуться для более глубокого изучения, а не обнаружить у себя огромный пробел в знаниях, уже будучи дипломированным инженером или в шаге до получения диплома. А транзистору нужны резисторы что токоограничивающие, что подтяжки. И если они встроенные, то они все равно есть, просто не тратится время и усилия (внимание) на втыкание их в макетку - без них your mileage may vary.
Понимаете, я смотрю на конечный результат системы образования - студентов, которые приходят собеседоваться на практику после окончания вуза. И что я вижу: например несмотря на то, что они учили сдвиговые регистры и FIFO где-то на втором курсе, это знание не было подкреплено упражнениями, и они не понимают когда и зачем это использовать. Например им не приходит в голову что данные структуры можно использовать как временное хранилище аргументов некоторой арифметической функции с зависимостями.
Я меня есть по этому поводу презентация: вот см. слайды 19-35
https://docs.google.com/presentation/d/14WxUKOwsAo6Yn8X19WpGPNV5fk2H3XappceqGRlxqdM/edit?usp=sharing
А почему не было этой практики? Потому что они занимались массой других вещей, которые преподавателям жалко выбрасывать из курсов. Зачем например тратить целое занятие на карты Карно? Они устарели еще в 1960-е годы, а потом оптимизация в Espresso logic optimizer в 1980-е вообще сделала ручную оптимизацию ненужной.
Зачем например тратить целое занятие на карты Карно? Они устарели еще в 1960-е годы, а потом оптимизация в Espresso logic optimizer в 1980-е вообще сделала ручную оптимизацию ненужной
Ну а зачем в школе учат умножение/деление в столбик? В реальной жизни считают на калькуляторах и компутерах. Да и писать ручкой или карандашом учиться тоже особо не требуется: в реальной жизни давно уже сплошь компьютеры.
Но ладно, выкинем и JK-триггеры, и карты Карно -- сократим несколько учебных часов. Хватит их на нормальную практику? Нифига не хватит. Я предлагаю полностью выкинуть абсолютно весь курс высшей математики -- ведь в 95% реальной работы она совершенно не нужна. Вот такое решение абсолютно точно освободит уйму часов для практических занятий.
И что я вижу: например несмотря на то, что они учили сдвиговые регистры и FIFO где-то на втором курсе, это знание не было подкреплено упражнениями, и они не понимают когда и зачем это использовать. Например им не приходит в голову что данные структуры можно использовать как временное хранилище аргументов некоторой арифметической функции с зависимостями.
Мне, возможно ошибочно, кажется, что задача любого буфера, в том числе FIFO - это временное хранилище данных, вообще любых данных, соразмеримых с емкостью буфера. Хотя задача буфера скорее не в хранении данных как таковом, тут напрашивается вопрос о регистрах в целом, ведь регистры позволяют с этими данными что-то делать, а в допущении асинхронной работы отправителя и получателя данных. Если я заблуждаюсь, то буду признателен за конструктивное указание на ошибки.
А почему не было этой практики? Потому что они занимались массой других вещей, которые преподавателям жалко выбрасывать из курсов.
Проблема отставания академического образования от переднего края технологии не нова. У меня нет идей, как исправить ситуацию в принципе - хорошо если удается отставание удерживать не слишком большим, периодически пересматривая программу вслед за развитием прикладной науки и передовой техники. Но и это не всегда делается или, скажу мягче, не всегда делается в достаточной мере.
Зачем например тратить целое занятие на карты Карно? Они устарели еще в 1960-е годы, а потом оптимизация в Espresso logic optimizer в 1980-е вообще сделала ручную оптимизацию ненужной.
Опять же нет универсального ответа. Большинству разработчиков нужен Espresso Logic Optimizer, и они будут им пользоваться необязательно понимая, как он работает и что он делает. Но должен быть кто-то, кто сможет написать новый Espresso Logic Optimizer. Я сторонник срединного пути: да, мы понимаем, что в реальной жизни мы будем использовать Espresso Logic Optimizer, написанный кем-то другим, но хотим хотя бы примерно понимать, что как и для чего он делает автоматически.
Странные претензии к автору. Очевидно, что речь идет о проектировании логических схем. Светодиоды в данном случае - просто индикаторы. Вместо них можно любые готовые индикаторы использовать - хоть логический анализатор, хоть сервы с флажками, хоть самописец с лентой. Суть курса не в том, как выучить ардуинщика за 10 уроков, а в том, как ввести детей в проектирование цифровых схем на кристаллах. Вы не будете читать повару выдержки из университетского курса органической химии и учить его собирать лабораторные установки для контролируемой сахароаминной конденсации, если вам нужно всего лишь показать, как правильно поджарить тост или стейк.
Претензии – потому что у него прямо в заголовке написано "на макетке".
Ну то есть если бы автор собирал с детьми схемы методом накрутки или с помощью vago-коннекторов, вопросов бы не было? Тогда это очевидная реакция ардуинщика на слом стереотипов, заложенных во множестве туториалов - 555, проводочки, резисторы с конденсаторами... Я изучал схемотехнику с паяльником, тогда макеток не было, видимо поэтому меня совсем не трогает такое кощунство... Ну хочет человек готовые генераторы и индикаторы в плату втыкать - зачем ему мешать? У меня для бредбордов есть разные готовые платы, как с RGB или 8 светодиодами с уже запаянными резисторами, так и джойстиками, клавиатурами и индикаторами, и это гораздо удобнее и быстрее, чем по-отдельности все втыкать коммутируя с резисторами дополнительными проводами.
Не настаиваю на дополнительных проводах, сам паял сборки с резистором, чтоб не возиться. Но вот прятать это от ученика – неправильно.
Лишнее это для детей и даже подростков. Введение в схемотехнику, это введение в схемотехнику, а введение в проектирование цифровых цепей - это совсем другое. Это логически и предметно не связанные области и аксиомы и теоремв там разные. Это все равно, что начинать введение в евклидову геометрию с определения метрики в пространстве Минковского, а потом сказать - если вот так упростить формулы, то получится евклидово трехмерное пространство с обычными синусами и косинусами...
Только ровно наоборот. Начало – именно зажигающаяся "лампочка", а всякая сложная логика – уже потом.
Впрочем, не исключаю, что ТС просто привык к студентам, которые свою сотню светодиодов уже зажгли (и несколько сожгли, забыв про токозадающий резистор) и про подтяжки знают. Для них-то можно лишние подробности спрятать. Но им, может, и макетка не нужна.
Вы не будете читать повару выдержки из университетского курса органической химии
Знали бы вы сколько химий, в том числе органических было у сына жены на факультете технологии общественного питания в ВУЗе - не писали бы такое...
Я за один только заголовок ставлю плюс. Потому что как сейчас помню, что хотелось заниматься цифрой, а не обвязками. Обвязки не имеют отношения к цифре и служат непонятным ненужным барьером, отбивающим всё желание
Вот только без них далеко не всё получится сделать. "Сферической в вакууме" цифры нет, ей приходится иметь дело с грубым материальным миром.
Пусть для обучающихся это останется за кадром, это не имеет отношения к цифровому миру, это лишь необходимый конструкт в аналоговом мире
А потом у них всё будет гореть, перемыкать и т.д. и т.п., как тут выше уже писали. Потому что кто-то решил сэкономить пару-тройку часов на изложение основ.
Да, но мы не думаем о сопромате каждый раз, когда нужно сколотить скамейку. Хотя, признаться, я иногда думаю...
Есть один производитель оборудования, вот он внутри у себя все отлично сделал в цифре. А с обвязкой видимо не очень. Если не ошибаюсь, забыл подтянуть к земле или питанию парочку линий между микроконтроллерами. Нужно проводить реверс инженеринг чтобы сказать точно. В результате, при работе метрах в 5 от частотного преобразователя появляется очень много ошибок. При этом аналогичное оборудование от другого производителя отлично работает вблизи частотного преобразователя. И в свое время сам допустил подобную ошибку. С точки зрения цифры все просто, из микросхемы вышло 1110010, то же должно прийти. А пришло не то. И очевидных причин нет. Пока не разобраться в обвязке, понимая что когда приемник слушает, а передатчик вместо нуля не подтянут никуда, а находится в подвешенном состоянии, прийти в приемник может что угодно.
Если говорить о "нужных" и "не нужных" знаниях, то меня спасла учительница математики, которая в восьмом классе в 1986 году объясняла нам признаки подобия углов. И вот эти признаки подобия понадобились мне в 2020 году. Так что надо именно ОБЪЯСНИТЬ основы. Чтобы дети их ПОНЯЛИ. И ПОНЯЛИ, что с ними можно сделать. А научить этим пользоваться можно по ходу учёбы. Периодически говоря: А тут надо ограничить ток. Как мы это будем делать? А по закону товарища Ома (и формулку пишем). Запомнится на раз.
Нас так в автошколе препод учил. Каждый новый знак обрамлялся "знак ставится за 50 метров в городе и за 150 за городом." Просто проговаривал, но эти цифры я запомнил наизусть.
Но учил ли вас в автошколе препод устройству автомобильного двигателя паровых автомобилей начала 20-го века? Это эквивалент копания в аналоговую глубь микросхемы 555 1971-го года, от которой требуется только выдать квадратный сигнал вверх-вниз, чтобы для школьников имитировать работу современного генератора тактовой частоты.
Но учил ли вас в автошколе препод
Вы учите водителей пользователей, или будущих инженеров?
Это эквивалент копания в аналоговую глубь микросхемы 555 1971-го года, от которой требуется только выдать квадратный сигнал вверх-вниз, чтобы для школьников имитировать работу современного генератора тактовой частоты.
Это вообще-то кроме таймера ещё и триггер Шмитта, что куда более востребовано в простейшей бытовой автоматике.
Я что-то не видел на улицах паровых автомобилей. Паровоз один раз видел: 9 мая на павелецком вокзале. Мой сын офигел от этого зрелища (было ему лет 5 тогда). А вот с резисторами приходится сталкиваться каждый день - попробуйте без них схему сделать.
Пробую и делаю, собираю эту схему каждый день. Включаю свет и втыкаю телефон на зарядку. Не пользуясь никакими этими вашими "резисторами".
А в цифровой схеме любой резистор - это тупая штука, единственная из всех деталей, которая умеет выполнять закон Ома. А вот по законам Джоуля оно еще и жрать мощность любит. Ну, это все любят. Но обычно какую-то полезную работу работу при этом делают, а этот нахлебник - нет.
Вы точно не ИИ для ответов используете? Тогда сделайте схему без резисторов. Совсем. Что вам скажут диси/диси преобразователи? Что вам скажут светодиоды? Что вам скажут компараторы? Что вам скажут случайно закороченные на землю ножки процессоров? Что вам скажут антиаллиасинговые фильтры АЦП? Что вам скажут оставшиеся без подтяжки в момент включения питания полевики?
Да легко





Строго говоря, это не полевики. Но для жёсткой логики, про которую идёт речь в статье, проблемы подтяжки несущественны. И резисторы внутри - ну очень условно их можно резисторами назвать.
А ножки процессоров подключать случайно не нужно. Нужно даташит сначала читать. И от одноразового замыкания на землю не помню, чтобы обыкновенная цифра прям сгорала.
Только нафига это надо детям, которые будут писать на Verilog? Или что там ещё через 10-20 лет будет актуально.
Потребуется какой-нибудь I2C - ну прочитают, не обломятся. В любой доке на интерфейс или чип нарисовано, какие именно резисторы и куда ставить. И вместо 555го таймера эти ребятам скорее будет актуальнее изучить кольцевой генератор, например.

Нафига тогда водителей учат проверять давление в шине и уровень масла ? Понадобится - выучат.
Вы растите человека в вакууме? Человек, пишущий программы для железа, ОБЯЗАН знать , как это железо работает.
Проверять давление в шинах и уровень рабочих жидкостей, исправность сигнальных огней и некоторые другие вещи надо уметь каждому, ибо, по нормативам, водитель перед началом поездки обязан выполнить эти проверки. То есть, умение их выполнить является обязательной частью навыков каждого водителя.
А вот перебирать движок, прокачивать тормоза и даже просто менять колесо гражданских водителей не учат. Военных/ведомственных -- да, для них это обязанность, а гражданских -- нет. Твоя машина, твои заботы. Хочешь -- учись сам делать, не хочешь -- езди в сервис и/или вызывай техпомощь.
Человек, пишущий программы для железа, ОБЯЗАН знать , как это железо работает.
Знаете, если спросить любого человека, что, по его мнению, обязаны знать прям вообще все, или хотя бы все работники его отрасли -- он уверенно выкатит список того, что знает сам. Не всего, но того, что считает "элементарным".
Я вот, например, искренне не понимаю, зачем кому-то нужны инструкции к бытовой технике на русском языке. Я оцениваю свой инглиш, как "прям совсем очень плохой, почти никакой", но инструкции к бензопиле, микроволновке или ещё какой ерунде читаю свободно, а в фильмах без перевода понимаю примерно треть разговоров. Это ж элементарно, нужно заставить всех учить английский хотя бы до такого уровня, как у меня! Лучше -- это по желанию, но мой уровень прям все обязаны знать! Я смог -- и они должны!
Или электричество. Я не могу понять, почему НЕ ВСЕ знают, что нельзя включать утюг, фен и чайник в удлинитель с надписью "до 1кВт". Это ж элементарно! Куда смотрела школа, почему у этих людей нет этих элементарных знаний!
Или, вот, розетку поменять или обои поклеить -- это ж элементарные навыки, как кто-то может этого не уметь?
...я могу долго перечислять знания и навыки, которые я считаю "естественно обязательными" для всех. Вы, я думаю, тоже можете. И с немалой вероятностью, мой и ваш список не совпадут. Возможно даже, я не только не считаю какое-то знание из вашего списка обязательным, но и вообще не владею им -- и наоборот, возможно, вы не знаете чего-то, что я считаю категорически обязательным знанием для всех. И ничо, живём и работаем как-то.
Короч, пардон за длинноту, это я всё к тому, что прям уж ДЕЙСТВИТЕЛЬНО обязательных знаний мало. И закон ома, как бы нам с вами не хотелось обратного, к этим знаниям не относится, многие люди без него запросто могут обойтись. Если автор считает, что его ученикам на данном этапе закон ома не нужен -- может, ему виднее, чему и как он учит?
Проверять давление в шинах и уровень рабочих жидкостей, исправность сигнальных огней и некоторые другие вещи надо уметь каждому, ибо, по нормативам, водитель перед началом поездки обязан выполнить эти проверки. То есть, умение их выполнить является обязательной частью навыков каждого водителя.
А вот перебирать движок, прокачивать тормоза и даже просто менять колесо гражданских водителей не учат. Военных/ведомственных -- да, для них это обязанность, а гражданских -- нет. Твоя машина, твои заботы. Хочешь -- учись сам делать, не хочешь -- езди в сервис и/или вызывай техпомощь.
В целом верно. Хочу уточнить по формулировкам (не оспорить, а переспросить): водитель любого транспортного средства почти в любой стране мира должен продемонстрировать теоретическую подготовку и практические навыки управления по установленным в стране или регионе нормативам, а так как транспортные средства разные, то в мире существует отчасти гармонизированная, а отчасти нет, практика делить водительские лицензии по классам (уровням, категориям) допуска в зависимости от весогабаритных характеристик и числа пассажиров в случае пассажирских транспортных средств. Ну, вроде европейских классов A, B, C и так далее вместе с подклассами, например A1 или CE. Не знаю, что значит военные или ведомственные, но я так понимаю, что вы имеете в виду то, что раньше называлось "водитель-механик", что даже самим названием указывает на то, что это совмещение водителя и механика. Естественно, что на механика нужно учиться отдельно и подтверждать квалификацию механика тоже отдельно - для обычных водительских лицензий это не требуется ни нормативами, ни сложившейся практикой платной техпомощи. Те, кто ремонтируется сам, давно из советской безальтернативной безысходности превратились в не слишком многочисленных хоббистов, ремонтирующихся не потому, что больше некому - есть кому, платного сервиса от "гаражей" до брендовых СТО в ассортименте часто в пешей доступности, и не потому, что самому дешевле - с учетом потребных инструментов это еще вопрос, дешевле ли (полистайте прайсы поставщиков оборудования для СТО - оно не то, что его невозможно купить в принципе, но скорее всего невозможно окупить, если не работать этим постоянно за деньги, а только эпизодически пользоваться самому), но для простых работ, не требующих специнструмента, все же да, дешевле, а потому что умеют и хотят это делать сами.
почему НЕ ВСЕ знают, что нельзя включать утюг, фен и чайник в удлинитель с надписью "до 1кВт".
Тут достаточно знаний математики за 2 класс. Просто надо сравнить цифру на удлиннителе и на утюге ;) но кто же читает документацию? ;)
Просто надо сравнить цифру на удлиннителе и на утюге ;)
И цифры не совпадают, вот же засада. И те, кто учили математику за 2й класс, и даже позже, и инструкцию читали, возвращают в магазин адаптер на 10 Вт со словами: "на роутере же было написано 5 Вт, а вы мне чуть его не сожгли". И это реальные истории, даже приукрасить негде.
Вот если б в школе чуть ближе к реальности была программа, меньше тратили время на изучение редко используемых абстрактных законов, то хватило бы внимания на кое-что более полезное.
Общая проблема нашего образования, тянущаяся ещё из СССР. Пытаются учить всех всему, хотя в лучшие годы советского образования (т.е. в сталинские, когда оно только было построено) полное среднее образование обязательным не было: не способные нормально учиться (тупые, попросту говоря) вылетали после начальной школы и шли в ремеслухи, обладатели средних способностей заканчивали неполную среднюю школу (7 классов, если правильно помню) и шли в ПТУ, и лишь лучшие заканчивали полную среднюю школу и шли в вузы. Но под предлогом "все дети равны" всех стали заставлять учить полную программу независимо от того, способен ребёнок её усвоить или нет; как следствие -- и дураки ничего не знают, и умным учиться стало заметно трудней.
Не, обязательность обязательной школы -- это правильно. Только надо её, обязательную начальную школу, основательно сократить, а большинство предметов разделить на обязательную часть и опциональную.
Короче, примерно как в США. В точности, как Ильич учил: "Тащить хорошее из-за границы: немецкий порядок железных дорог, американская техника и организация работ, американское народное образование, etc." (ПСС, т.36, черновики к статье "очередные задачи советской власти")
Вот @YuriPanchul пишет учебную программу. Мой сосед-депутат пишет программу партии. Некоторые пишут софт "для импортозамещения и внесения в реестр". Но большая часть народу здесь пишет программы для железа вообще-то.
Большому проценту из нас тут по роду деятельности приходится рассчитывать номиналы резисторов? Я думаю, что тут на пару порядков больше людей, которым нужно знать, как работает Ethernet, например. Обязаны знать, конечно, но обязанности у всех сильно разные.
Я встречал пару раз схемотехников, которые выдают железо программистам без каких либо описаний, структурной схемы. Только PDFы из альтиума, где всё соединено только именами цепей. И на конкретный вопрос: "А что надо подать на ЦАП, чтобы ...?" программист получает: "Схему посмотри, придурок! Посчитай делители, коэфф.усиления, задержку в фильтре, и ещё найди и припаяй нужные перемычки."
Я надеюсь, вы не так работаете?
Когда я пришёл в ту контору, где до сих пор работаю (уже лет 15, наверное), местный "электронщик" платы делал в P-CAD, но проблема не в САПР, а в том, что он принципиальные схемы не делал принципиально: он сразу рисовал дорожки, а как что соединено -- сношайся сам. Кончилось тем, что я стал платы разрабатывать сам: и схемы сразу появились, и тупые ошибки разводки типа "промахнулся ногой" исчезли (он, например, таким путём спалил буквально 10 штук STM32L1: развёл неправильно, когда первая сгорела -- впаял вторую и т.д. и лишь после десятой стал думать). (Сейчас-то у нас уже есть нормальные электронщики, так что я от разводилова плат отошёл и вернулся к почти чистому программированию).
Так что описанный Вами случай -- ещё не самый плохой из возможного :)
Ну вот пришлось мне делать программу для первичной проверки железа нашего. То есть проверить все соединения между процессорами, звук наружу-звук внутрь, аварийную сигнализацию и ещё много чего. И схема девайса расползается на 6 листов А3 (а хорошо видно только на А2). И тестов тех получилось штук тридцать. И по многим тестам надо понимать, что может быть причиной сбоя теста, а для этого надо знать МИНИМУМ схемотехники: делитель напряжения- 12 вольт на STM не подашь, ключи на полевиках, цифровой резистор и его роль в горении радиоканала, триггер. Это всё мне у схемотехника выяснять, или всё-таки это моя обязанность - программиста-железячника?
И вообще меня восхищает ваша самоуверенность - Я сказал - значит это ИСТИНА в последней инстанции. Тут с вами не мальчики разговаривают, а люди с большиииим опытом (бекграундом типа). Да, влезать в закон Киргоффа и правило Буравчика не стоит, но объяснить основные принципы необходимо. Чтобы не было квадратных глаз - Я ТО ЕТО ЗА КВАДРАТИК?
Это всё мне у схемотехника выяснять, или всё-таки это моя обязанность - программиста-железячника?
Думаю, лучше выяснять у схемотехника. Он узлы рассчитывал, и делать ещё раз его работу не вижу смысла. Мог бы на схеме подписать "делитель 1:5" или "усиление 3..30 дБ".
Но я не знаю, как у вас процессы настроены. Может, у вас среди служебных обязанностей есть проверка схемотехники. А может вы и зарплату за этого парня тоже получаете.
И вообще меня восхищает ваша самоуверенность - Я сказал - значит это ИСТИНА в последней инстанции
ОБЯЗАН знать
Я такого не говорил.
Я считаю, что железо программист в какой-то мере знать должен, да. Но основы для него - это не расчёт резисторов, а логика работы железа.
Точно также, как схемотехнику обычно по-барабану, из чего эти резисторы сделаны, или как именно достигнуты параметры мосфетов. В каких-то специальных случаях - да, приходится разбираться. Но это ни разу не основы, которые прям все обязаны знать.
А где я писал про проверку схемотехники? А вот увидеть делитель на резисторах и посчитать коэффициент деления - это вполне работа программиста-железячника.
Кстати, обратите внимание, что АБСОЛЮТНО все вакансии такого типа требуют навыка чтения принципиальных схем.
Резисторы никогда не возникают в работе проектировщика цифровых блоков внутри чипов на уровне регистровых передач (RTL Designer. RTL = Register Transfer Level). Возникают логические элементы и D-триггеры (они порождаются синтезом из языков описания аппаратуры SystemVerilog и VHDL) и иногда D-защелки (clock gater для экономии динамического энергопотребления и для latch arrays). Возникают задержки в пикосекундах, размеры и параметры энергопотребления из ASIC library. Резисторы не возникают.
А не могу ни чего понять. То есть вы обучаете цифровых коней в вакууме? Которые работают по принципу В симуляторе работает - дальше не моё дело? А когда его программа будет зашита в железо - кто будет проверять правильность её работы? Схемотехник?
Разумеется симулятора на уровне регистровых передач недостаточно. Код еще должен быть синтезируемым и проходить static timing analysis.
Но какое отношение к этому имеют резисторы? Вот кусок отчета от static timing analysis. Где тут резистор? Ткните пальцем пожалуйста:

И нет тут никакого "программа будет зашита в железо". Код на верилоге сам становится железом, то бишь транзисторами и медными соединениями.

Я ж и не говорю, что что знать - это плохо. Скорее плохо - не понимать границы своего незнания - вот это да, реально может мешать.
А где я писал про проверку схемотехники?
Если вы, как программист, проводите расчёты, которые схемотехник уже пару-тройку месяцев назад сделал при разработке схемы - то логично было предположить. Если я предположил неправильно, выложите свой вариант, почему вы за ним это повторяете. Я ж не знаю подробности вашей внутренней кухни.
(я сам периодически тупейшие адские косяки допускаю, и у меня не всегда бывает напарник, который на них укажет. Мне эта боль просто понятна во всей красе.)
Или, может, у вас просто много свободного времени? чтобы повторить его работу, и между делом смотреть вакансии:
Кстати, обратите внимание, что АБСОЛЮТНО все вакансии такого типа требуют навыка чтения принципиальных схем.
с требованиями, как для пилота СУ-35, и зарплатой учителя сельской школы. Список вакансий - это полнейший отрыв от реальности ИМХО. Но даже если вакансии актуальны, то
чтения принципиальных схем
Чтения, уважаемый кэп. Не синтеза, не расчёта, не проверки. просто чтения.
Кстати, обратите внимание, что АБСОЛЮТНО все вакансии такого типа требуют навыка чтения принципиальных схем.
Это надо, чтобы в констрейнтах плисины человек мог описать пины.
Только сейчас заметил:
правило Буравчика
Цитировать этого уважаемого человека - это ж не просто так. Снимаю шляпу.
Не многие тут знают, сколько нового для науки этот знаменитый белорусско-украинский учёный Иван Фёдорович Буравчук сделал. По весу своего вклада он справедливо должен занимать пантеон на ровне с такими столпами, как Александр Попов, Доливо-Добровольский, и Джеймс Максвелл. Он первым указал, что сила электромагнитного тока сосредоточена именно в правой руке...
Пойду, в Википедию закину, что-ли. Пока "за умышленное отравление нейросетей" не стало уголовной статьёй.
Про Буравчика таки заметили Мои поздравления. Шутка 8 класса средней (10 летней) школы прошла успешно.
Да, я, похоже эту шутку пропустил тогда. Что-то вроде "постоянная с планкой" и "без планки". У нас ещё было про Ом.м.м-нама-шива-нах..я, и "а я чё, Максвелл?" вместо Пушкина, но это уже сильно после 8 класса.
А может, забабахаем совместно статью в Википедию с нужным Буравчиком? У нас с вами разногласия в организации труда конечно есть, но я нисколько не сомневаюсь, что вы - спец в куче смежных областей.
Не хулиганскую статью, а честную только. Со ссылками на правый винт, векторное произведение, и товарищей, которые это придумали.
Всецело поддерживаю представленный автором подход! Желаю развития и надеюсь, что методику будут перенимать и распространять.
Мне толковые конкуренты из молодёжи нафиг не сдались.
Дорогие комментаторы. Прочтите пожалуйста внимательно: человек учит ДЕТЕЙ. Если вы детям будете рассказывать о законах Кирхгофа и Ома, они на второе занятие уже не придут, и ничему полезному не научатся. Пусть лучше сначала заинтересуются, а потом уже углубятся. Именно так я и изучал программирование с 11 лет - начинал с верхов, с PHP. Делал красивые сайтики. Сейчас мне 21, и я прогаю на плюсах и ассемблере в embedded
Я сам преподавал, и это сложно для современного поколения. Но вы не думали, что современные дети слишком избалованы? Раньше каждый подарок от родителей или покупка была праздником, сейчас это обыденность. Поэтому дети в телефоне сидят, им нужна мощная активная визуализация, так как к обычным вещам они уже привыкли. Да современные дети умнее и быстрее развиваются благодаря доступности информации, но им также надо учиться пользоваться мозгом, когда доступа к информации нету. То есть раньше дети подстраивались под среду, а теперь среда должна подстраиваться под детей. А потом мы видим, что сложное оказывается интереснее, чем простое.
Современные дети, скорей, тупее -- как раз потому, что сидят в телефонах. Информация доступна, но им она не нужна, они другое смотрят.
дети копируют взрослых, что из этого следует?
Именно это и следует, ага :)
А если серьёзно, с детьми очень часто вообще никак не занимаются -- вот тебе мультик, сиди и смотри. Ну, мозги толком и не развиваются (когда ребёнок слушает сказку про колобка, включается воображение, рисующее и колобка, и лису, и всё такое прочее; когда он видит мультик про колобка, воображение уже не нужно: всё нарисовали).
Я вот сравнительно недавно, лет 5-10 назад, имел возможность понаблюдать за достаточно приличной группой детей в возрасте 7-11 лет, человек 25 примерно. Так вот, была 100% корреляция: большинство знает, кто такой Моргенштерн, его слушает, книжки не читает -- и не отличается особым умом, но двое (буквально двое, т.е. порядка 10%) не знают, кто такой Моргенштерн, ролики со смартфона на тытрубе не смотрят (хотя и умеют это делать), но читают книжки -- и они умны. Причём если один из них был великовозрастным (11-летним), то второму было всего 8 -- но он был сильно умней всех в этой группе, в том числе 10-11-летник, кроме того 11-летнего.
Так что... Любите книгу -- источник знаний (с)
Тут фишка в том, что я хочу в конечном итоге скормить детям достаточно сложную информацию - построение конечных автоматов для распознавания последовательностей, создание конвейерных арифметических блоков, контроль потока данных, потом переход на FPGA и ASIC с помощью Tiny Tapeout. Они до этого никогда не доходили на традиционных туториалах типа Tronix.2 или книжек от Make - потому что на пути были много лишнего - нудно втыкать 16 дополнительных резисторов в простейшее упражнение со счетчиком, выслушивать устройство чипа 555 из 1971 года, не привязанное к современности, различать JK- и T-триггеры с SR- и D-защелкам итд. Это все болото, которое нужно аккуратно расчистить.
Ага, только не надо выбрасывать то, что всё-таки нужно. Эти ваши дети не будут целиком и полностью "жить" внутри ПЛИС, они всё равно должны связываться с внешним миром.
почти наверняка со временем Ваши студенты будут благодарить, кто знает некоторые могут неожиданно далеко пойти с таким ранним стартом
Ваше желание похвально. Но вы подменяете понятия. Фактически то, что вы включаете на выход логики - это индикатор логического состояния. Так его и называйте. Чтоб в мозгах обучаемых отложилась разница. Светодиод через резистор - это уже схема. И светодиодов бывает надцать разных видов, каждый из которых имеет свои особенности. Без ложных знаний у обучаемых, что они познали уже всё.
А в целом - обвязка логики интерфейсами сама по себе область знаний, которую не замечать - ИМХО не правильно. Можно просто при обучении указать на это. Тем, кто захочет "покопать поглубже" - будет понятно куда бежать. Например, есть прекрасная книжка Томпкинс У, Уэбстер Д. "Сопряжение датчиков и устройств ввода данных с компьютерами IBM PC" 1992 г. Гуглится на раз. Остальным понятно, что они в этом прошлись по верхам и знают не все.
Ну слушайте, в какое-то время для детей даже еда могла быть праздником, а сейчас это обыденность. Я рад, что уровень образования, да и жизни в целом, повышается. Сейчас детям легко пробовать себя в самых разных направлениях - это огромный плюс. Раньше было сложнее. Чтобы в чем-то себя попробовать, нужно было трудиться. Обратный путь, или путь в другую специальность, был практически закрыт. И очень хорошо, если сложное окажется интереснее, чем простое. Это значит, человек нашел свое призвание.
Я не согласен с тем, что дети стали избалованными - просто мир меняется, вот и всё
Тут ведь, молодой человек, всё как с анекдотами - зависит от умения рассказать (а лучше - и показать).
Некоторые в 30 лет не способны сесть на велосипед, потому что в детстве им после первого падения поставили обратно боковые колёсики.
Кто-то - как Вы - углубится, а кто-то решит, что на дне ничего интересного нет, раз он самое важное уже умеет, и пойдет развиваться "вверх". А потом такие развитые цепляют электромагнитный толкатель прямо на GPIO микроконтроллера.
И, поверьте, это не бесплотное умствование. Как и коллега @Andreas_Fogel я не так давно имел удовольствие попреподавать несколько семестров в одном из местных университетов. Среди прочего получил возможность наглядно сравнить поведение и мышление студентов, которым ввели работу с ИИ на первом курсе, и тех, кто этого не застал и пару лет пользовался собственным интеллектом.
Сразу кататься по городу - интереснее и нагляднее. Как и пострелять по мишенькам из автомата. Но почему-то в тирах читают нудный инструктаж, а в автошколах вообще месяц показывают разные странные картинки и объясняют, что они значат. Скушнаааа. Но почти никто не уходит.
Но, как я уже сказал (и не соврал), лично я подходом автора полностью доволен. Так что, уж извините, примеров "как это можно было бы сделать" или "как учили меня" не будет.
Я сужу об эффективности образовательной системы по ее результату - я много раз собеседовал кандидатов на практику в нашей группе разработки графического процессора в смартфонах. Большинство выпускников не могут ответить сразу на банальный вопрос:
Вот у вас есть готовый конвейерный блок, который вычисляет квадратный корень за N тактов. Постройте из таких блоков вычисление формулы с зависимостями, скажем sqrt (a + sqrt (b)). Причем так, чтобы конвейер не останавливался, и новые аргуметы A и B принимались каждый такт.
Хотя они все изучали сдвиговые регистры и FIFO, в которых можно хранить A пока вычисляется sqrt(b), но это знание висит у них как сферический конь в вакууме - им не приходит в голову мысль, что это можно применить к данной задаче.
Студент, который не натренирован работать с конвейерами и FIFO, но при этом помнит всякую фигню типа карт Карно, которые устарели еще в 1960-е годы - такой студент для работы в компании бесполезен. Его придется долго тренировать с нуля, отвлекая старших инженеров.
Приходится брать на работу тех, кто изучал актуальные вещи сам, в разных открытых проектах. Лучше было бы чтобы их правильно тренировали в вузах.
Но я понимаю и вашу позицию для ваших задач. Ну дык вам и флаг в руки - сделайте курс для детей. Они пойдут и на мой и на ваш, и с ними все будет в порядке. А если вы хотите менеджировать меня чтобы я модифицировал свой курс, то вообще никакого результата не будет - ни для вас, ни для меня.
Некоторые в 30 лет не способны сесть на велосипед, потому что в детстве им после первого падения поставили обратно боковые колёсики.
Насколько я помню, на моём детском велосипеде было три позиции, в которые можно было поставить боковые колёсики: «касаются земли всегда», «касаются земли при наклоне градусов в 10», «касаются земли при наклоне градусов в 25». По мере моих успехов в поддержании равновесия их переставляли в следующую позицию — а потом и совсем отвинтили.
Вы совершенно правы) Но если копнуть чуть глубже... До любой автошколы дети играют в машинки. До любого тира - играют в стрелялки. Вы всё ещё мыслите с точки зрения взрослого. Вспомните, как сами познавали мир в детстве. Вы просто пробовали. Не нравилось - наверняка бросали, а потом, возможно, снова возвращались к этому. В этом всё детство. Детство - для поисков себя
Для того, чтобы ребёнок сделал первый шаг, ему не нужно читать лекции о правильной ходьбе. Лучше покажи, как круто ты ходишь сам. А для того, чтобы ребёнок заинтересовался роботами - не нужно давать ему книгу о робототехнике. Лучше покажи ему самого необычного робота - и он сам попросит и книгу, и конструктор
Для того, чтобы ребёнок сделал первый шаг, ему не нужно читать лекции о правильной ходьбе.
Вот это я пожалуй сохраню в сборнике цитат.
К сожалению биологический вид "люди" очень часто генерируют детей в молодом возрасте, когда у родителей есть силы. А не когда у родителей уже ум прорезался. Ну, правда, и детей генерить они перестают тогда))
Прим.:
1) Не принимайте на свой счёт, это я только про себя.
2) "Не пытайтесь повторить это дома"
1) А кто говорит грузить тонной теории? Я лично говорю о минимально необходимых вещах, и закон Ома таковой таки является (а вот Кирхгофа -- нет, они нужны для анализа всей схемы в целом, а не для практически нужных вещей типа того, чтоб понять, какой резистор нужен для светодиода, чтоб его не спалить).
2) А кто говорит, что надо начинать с кучи скучной теории? Собрали схему -- разобрались "на пальцах", как она работает, с самым минимумом математики.
3) И кстати, а каков возраст детей? 8 лет -- это одно, 16 -- совершенно другое.
нет возражений против закона Ома, если Вы сможете объяснить умным детям без гидро аналогий (которые только засоряют понимание), начните например с того, что такое электрический ток и напряжение, пробовал, не получилось без детального объяснения истории предмета, разговора о том, что вообще мы знаем, и чего не знаем про электричество
А почему без аналогий? Они хорошо работают на своём уровне и делают объяснение достаточно наглядным -- в отличие от электронов, на которые не посмотришь и которые приводятся в движение каким-то магическим полем, а не простым и понятным давлением от насоса.
А ничо, что мы тут все когда-то ДЕТЬМИ были?
Мануал, как вырастить инженера-радиоэлектронщика продвинутого сборщика, использующего в работе колдунстве не дедовское заклинание "абракадабра", а инновационное "законома".
Сейчас часто получаются не инженеры, а люди которые запомнили научпоп, но не могут ничего спроектировать сами. См. коммент выше
https://habr.com/en/articles/1058154/comments/#comment_30213194
а также слайды 19-35 в моей презентации
https://docs.google.com/presentation/d/14WxUKOwsAo6Yn8X19WpGPNV5fk2H3XappceqGRlxqdM/edit?usp=sharing
Так получилось, что я изучал HDL уже после схемотехники. Но вообще-то сейчас редко кто так делает - специализации сужаются. И по этой профессии действительно больше нужны знания, близкие программистам, чем схемотехникам. А уж приложения для всего этого добра каждому всё равно придётся изучать своё: кому-то резисторы греть, кому-то пакеты шифровать, кому-то ритм сердца слушать или в мат.лингвистику вникать. Так что считаю подход вполне адекватным.
Тем более про закон Ома. Который и в школе вполне себе проходят. И который вообще-то редко где выполняется.
Обучение не простая штука)
Идея понятна, вот только что делать с мотивацией? Не только ребёнок, но и обычный человек хочет видеть результат. А как можно увидеть результат, если внешний мир аналоговый, в котором есть сопротивление, емкость и индуктивность даже у проводников металлизации на чипе?
Смотришь в datasheet и видишь фигу, так как не понимаешь ни миллиамперов, ни милливаттов, ни пикофарад, ни rise/fall time? И даже полевик не знаешь как подключить для включения и выключения двигателя?
А если на схеме нарисовать не просто светодиод, а внутри квадратика светодиод и резистор?) Тогда ребёнок будет понимать, что эта штука на макетке - не совсем светодиод. То есть у него не останется в памяти, что светодиод можно подключать к +5.
Про разные jk и rs - ну да, тут как в анекдоте - мне нужно не чтобы вы яму выкопали, а чтобы за... эээ ..мучались. Особенно если в примитивах hdl устройства с такой функциональностью можно запрограммировать вообще не зная, что они такие существуют или существовали - ведь номенклатура серий разрабатывалась для минимизации количества корпусов при решении типовых задач того времени. С появлением cpld смысл ис сложнее и-не и д триггера практически исчезает, потому что на рассыпухе что то делать - зачем?
И кстати, помнится мне, что генератор на инверторах и конденсаторах с резисторами гостом запрещён был, нет?)
С такой логикой, а зачем вообще чему либо учить?
Можно же просто дать задание нейронке и получить готовый результат. И не надо знать закон Ома и прочее "устаревшие" и "ненужные". И схемотехнику тоже в топку, она устарела и не современная. Ведь можно же брать готовые решения и комбинировать.
Сложность любого обсуждения в России - позиция аудитории - вы все не правильно делаете, а я(мы) лучше знаю как надо.
Люди не пытаются понять, они всегда безудержной критикуют.
А я все удивлялся, почему люди ставят Arduino, там где можно обойтись одним транзистором (;
А потому что нельзя. У меня вот в дверях автомобиля (в заднем торце двери) красные огоньки мигающие -- на ардуинах нано, плюс кренка и ключевой транзистор, сейчас уже не помню точно, какой-то ширпотребный мосфет на несколько ампер. Просто для того, чтоб при открытии двери мигать "тыц-тыц-тыц, пауза, тыц-тыц-тыц, пауза" светодиодной пластинкой с током порядка 200мА. Да, с завода огоньков не было, меня это печалило.
С одной стороны, это, конечно, "из пушки по воробьям", но с другой -- и платки нано, и кренки, и мосфеты -- копеечные и ходовые, они у меня просто были в наличии, как и многие другие ходовые вещи у меня есть всегда, а не покупаются под конкретный проект. Если б я придумал схему на транзисторах, или на аттиньке -- это не было бы дешевле по деталям, но времени на эту самоделку я бы потратил НАМНООООГО больше.
Я люблю делать всякие электронные поделки, но я не Ржевский, я их люблю, когда они есть, а не "сам процесс".
Ну и на транзисторах вышло бы не сильно дешевле даже.
Я это увидел когда человек делал систему сброса с "Мавика" (больше 10 лет назад) - когда фотодиод направленый на ходовые огни должен был щелкнуть релюшкой. Чтоб при включении огней релюшка отцепляла груз. Для этого была поставлена Ардуина.
Ваш случай конечно сильно сложней. Нужна одна 155ЛА3 ну или 4 транзистора (;
Релюшка - вряд ли. Соленоид - механическая защелка, рычаги, пружины, сложное. Двигатель постоянного тока с редуктором? То же + концевики. Сервопривод, легкое, дешевое.. ну, сделайте управление сервоприводом на транзисторах ;)
Там был имено соленоид от релюшки. А в чем проблема управления серво приводом на транзиторах? PWM без Arduino не сгенерировать? (; А как же радиоуправляемые модели 30 лет назад летали на аналоговых "аппаратурах"?
Сгенерировать конечно. И давать оно будет импульс 1мс +- 300 мкс, и надо крутить 2 подстроечника, чтобы привод поворачивался не как попало а как надо. Зато без ардуинов.
Т.е. аналоговое управление по радио сервоприводами для управления пилотажной моделью самолета - это потеряные технологии древней цивилизации (; Хотя возможно вы сильно моложе меня и никогда такого не видели. Я успел застать (;
Не-не.. не надо целое радиоуправление с переменными резисторами в пульте. сделайте чтобы привод поворачивался ровно на 90 градусов на транзисторах.
Кстати, ардуина внутри сервопривода никого не смущает? :)
сделайте чтобы привод поворачивался ровно на 90 градусов на транзисторах
Во-первых, что значит ровно? С отклонением меньше угловой секунды?
Во-вторых, а в чём проблема это сделать при наличии обратной связи и достаточной точности механики и датчиков?
Никто не спорит, что на современной элементной базе решение на МК или ПЛИС обойдётся на порядки дешевле, чем на дискретных элементах или, тем более, транзисторах. Но уж простите, первые ЭВМ вообще на реле и вакуумных лампах делали.
Кстати, ардуина внутри сервопривода никого не смущает? :)
Это показывает что вы не очень хорошо знакомы с работой сервоприводов:
1) Там нет не только Ардуино, но вообще цифровых элементов. Обратная связь сделана на аналоговых компораторах.
2) для поворота сервомашинки на любые два произвольных угла нужно просто два генератора с фиксироваными PWM и просто переключаться между ними. Ну или один генератор который меняет скважность на нужное значение.
Внутри там мелкий чип. 8 битный микроконтроллер скорее всего.
нужно просто два генератора с фиксироваными PWM и просто переключаться между ними
Всего лишь ;) И оно будет в результате дороже той ардуины. И крупнее.
Внутри там мелкий чип. 8 битный микроконтроллер скорее всего.
Я же написал - это аналоговый компоратор. Не нужен там никакой микроконтроллер, ни 8 битный, ни даже 4 битный. Задача сравнивать два напряжения - отфильтрованый от входящего PWM и с потенциометра положения. Разница подается на Н-мост который крутит мотор. Блин, откуда я (программист) это знаю?! (((((:
Ваш случай конечно сильно сложней. Нужна одна 155ЛА3 ну или 4 транзистора
Я не знал заранее, какой эффект мне нужен. Взял ардуину без ничего, благо светодиодик прям на плате есть, за пару минут переделал стандартный скетч "блинк" так, чтоб было удобно менять количество и длительность вспышек и пауз, и принялся конструировать эффект, который мне понравится визуально, затрачивая где-то по секунду труда и 20 сек ожидания на каждую итерацию. Изменил цифру, нажал "загрузить", подолждал, посмотрел. Не понравилось -- повторить. Сколько времени я бы потратил, подбирая резисторы и кондёры в аналоговой схеме? А если б я понял, что трёх морганий в серии мало, и надо пять, или надо сделать серии с разным количеством морганий (например, 1-пауза, 2-пауза, 3-пауза)? А когда я решил, что первые 500мс после включения свет должен просто гореть (задержка на открытие двери), и лишь потом начинать моргать -- сколько времени я бы потратил на модернизацию аналоговой схемы под эту мелочь?
А так -- за полчаса, не напрягшись, перебрал с полсотни разных вариантов моргания, выбрал годный, за пару минут собрал две одинаковых схемы полностью из тех деталей, что пойдут в дело, убедился, что они работают, как задумано, и принялся за изготовление корпусов (обрезок кабельной гофры D25, благо был в наличии, всё свободное место, для защиты от вибраций, плотно забить обрывками упаковочной плёнки, картонные крышки утопить от торца на сантиметр и щедро залить соплеклеем. Может, до IP68 не дотянет, но уже семь лет работает). Час от начала работы до готового устройства.
Никто не даст гарантию что генератор на 155ла3 будет стабильно работать во всем диапазоне автомобильных температур.
Ну, если там кварцевая стабилицазия и сам кварц соответствует требованиям...
у К155ЛА3 насколько я помню ток потребления как у несколькиз atmega
Здоровенный по нынешним меркам, ага, хотя точные цифры смотреть лениво. Ну а что хотеть, это ж ТТЛ, а не КМОП.
Но речь-то была про стабильную работу -- а она вполне возможна при соответствующей схемотехнике и правильно выбранных компонентах (в данном случае нужен кварцевый генератор, а не RC-цепочка; да и сами детальки должны быть "военными" с широким диапазоном температур). Но это столь же верно и для современных решений.
Кстати, подозреваю, что именно из-за стабильности в весьма многих советских ЕС ЭВМ (в частности, но не только, ЕС-1020 и ЕС-1030) тактовый генератор был собран на инверторе и линии задержки, а в роли задержки -- длиннющий коаксиальный кабель (длиной под 100 м); аналогичные линии использовались и для формирования из главного тактового сигнала сигналов отдельных фаз синхронизации. Задержка самого инвертора, как и прочих электронных компонентов, могла сильно изменяться при изменении температуры или питающего напряжения, а вот у кабеля оставалась весьма и весьма стабильной (4,5 нс на метр плюс-минус 10%) -- конечно, не так, как у кварца, но вполне в допустимых пределах, чтоб машина сохраняла работоспособность независимо от того, +5 в машинном зале или +45.
Если там кварцевая стабилизация, то вряд ли вы нашли кварц на частоту ниже 32кГц. Значит, один корпус ЛА3 на тактовый генератор. Чтоб получить дискретность порядка 100мс (128), надо поделить частоту на 256. Уже не помню, что там в 155й серии есть, получится у вас делитель меньше, чем на четырёх корпусах?
Чтоб реализовать паттерн "100 горит, 200 не горит, 100 горит, 200 не горит, 100 горит, 600 не горит", понадобится 13 шагов. Записываем в первый разряд РТ4 биты: "1001001000000" и перебираем их с помощью четырёхразрядного счётчика 155ИЕ5. По адресу 14 записываем 1 во второй разряд РТ4, в первые 13 -- нули (ой, или у ИЕ5 сброс инверсный? не помню. Если да -- значит 1 записываем в первые 13 бит, а в 14й -- 0)
Итого -- похоже, меньше семи корпусов не получается. Собрать в симуляторе, отладить, собрать на макетке, прошить РТ-шку, отладить -- день прошёл. Нарисовать платы, напечатать, вытравить, просверлить 250 дырочек, запаять всё... вот и второй день прошёл. Это если все нужные микрухи на полках есть, и их не нужно заказывать и ждать. И по цене такой девайс ардуинку уверенно переплюнет, кстати.
Делитель получится на 2 корпусах в данном случае: 4-разрядных счётчиков несколько типов, плюс есть "программируемый" делитель К155ИЕ8, в девичестве SN7497, который может делить вплоть до 64.
Но что на ардуине такое будет и быстрей, и дешевле, я полностью согласен, и в нынешние дни сам стал бы делать примерно на ней, а то и вообще на стмке какой-нибудь. Но на 155-й тоже задача вполне решаемая.
Да можно и без микросхем, на одних транзисторах. А то и без. Вот, как реле поворота на Жигулях.
Можно и без транзисторов. Моторчик, редуктор, диск командоаппарата, пара контактов... Но зачем?
Зачем - правильный вопрос ;) кому адресовано мигание? Рандомным водителям? Они не заметят, что у вас там что то мигает по какой то схеме. Наоборот, если оно будет мигать с частотой аварийки - это 100% привлечет внимание.
Так что задача решается даже без ардуины :)
Ну, тут причин может быть две:
по-другому они не умеют (и это плохо);
такой подход быстрей и дешевле (а вот это уже разумно).
Скажем, я сам, если мне сейчас надо будет слепить по-быстрому что-то мигающее или пищащее, вполне могу взять ту же ардуину или какой-нибудь мелкий АРМ -- это быстро, просто и стоит копейки. Но я могу то же самое сделать и чисто на транзисторах, но это может оказаться дороже, да и времени может занять прилично, если это не совсем уж примитивное мигание с одной частотой без каких-либо дополнительных условий.
Вот и я о том. Экономить копейки есть смысл, когда речь о серийном производстве, и из копеек складываются рубли -- но если речь идёт о штучной поделке, то время дороже, чем возможная (даже не обязательная) экономия на копеечных детальках.
Вот! О чем я и говорю. Не обязательно все делать только на "Ардуино" или только на "транзисторах". Хорошо бы уметь и то и другое и выбирать по задаче. На секундочку я вообще не электронщик, а программист - но могу "мигать диодом" даже на FPGA (;
Я своему сыну смог объяснить отличие научного подхода к обоснованию своих слов и религиозного, а также теорию большого взрыва и обоснование его. А Андрюхе было 4 года. Причём сейчас (а ему 11 лет) он это помнит - значит осознал. Так что идея - не надо нагружать ибо они не поймут - очень скользкая.
Но тогда это было необходима - тёща с тестем религиозные в сторону богонутости и надо было его защищать.


Из обучения школьников цифре на макетке нужно выкинуть все резисторы и вставить микросхемы с FIFO