Что означает прошить микросхему
Что такое прошивка?
Слово прошивка я думаю вы слышали и не раз. Прошивают телефоны, смартфоны, планшеты ещё много других современных устройств. Ну что же это такое прошивка. Не ниткой с иголкой их прошивают?
Прошить можно только то устройство которое имеет микроконтроллер и программное обеспечение. Для примера возьмем обыкновенный всем известный телевизор. Так вот телевизоры были и 25 и 30 лет назад. Но слово прошить телевизор тогда никто не упоминал. А сейчас каждый знает что можно телевизор прошить, и он станет работать по-другому могут появиться новые функции и возможности.
И всё это потому что старые телевизоры имели жёсткую электронную схему. Которую изменить можно только выполнял одни детали или платы и вставить другие. И не какую прошивку в них прошить было невозможно. А точнее сказать некуда. У них просто не было для этого памяти.
Зачем это нужно?
А в каждом современном телевизоре. Да не только телевизоре, а почти в любом электронном устройстве сейчас присутствует микроконтроллер и память. И прошив это устройство, а точнее изменив программу в памяти, мы получаем девайс с новыми функциями и возможностями.
Конечно прошив телевизор мы из него холодильник конечно же не получим. Надеюсь это всем понятно. Мы можем улучшить те возможности которые заложены в это устройство при производстве. Но в силу каких-то причин не использовались или использовались не по максимуму. Если вернуться к тому же телевизору. Он может начать работать более качественно. Изображение может стать чище и лучше. Могут появится дополнительные настройки и так далее.
И всё это как я уже сказал зависит от заложенного при производстве функционала, а также таланта программиста. Который пишет программное обеспечение для этого устройства.
Все современные электронные устройства можно прошивать или нет?
Конечно же нет. Прошивать можно только те устройства которые имеют микроконтроллер а также флеш-память.
Чтобы упростить и удешевить изделие многие фирмы выпускают устройства которые имеют микроконтроллер, но память у них одноразовая и записывается на заводе. Да не всем изделиям и нужен микроконтроллер и память.
Зачем например простому фонарику нужен микроконтроллер.
Насколько это безопасно
Прошивка или смена программного обеспечения действий небезопасная. И делайте вы это на свой страх и риск. После не правильной прошивки ваше электронное устройство может превратиться в так называемый кирпич.И после этого без помощи хорошего специалиста вам его самостоятельно не восстановить.
Что может пойти не так?
Выводы:
Прогресс идет вперед. И чтобы за ним успевать и не тратить на это много денег. Тут нам как раз и поможет прошивка.
Однако делать это нужно обдуманно. И просто ради поэкспериментировать это делать не стоит. Можно испортить устройство. А также использовать заранее проверенные прошивки.
«Прошиваем» микроконтроллеры. Часть 1. Знакомство.
Определить, какое именно значение слов «программатор» или «прошивка» употребляется, можно обычно из контекста. Далее мы убедимся, что это не так сложно.
Большинство программ-программаторов могут быть настроены для работы с разными схемами программаторов-адаптеров. Программатор-адаптер подключается к компьютеру через какой либо порт ввода-вывода. В настоящее время существуют три наиболее распространённых возможности подключения программатора к компьютеру по какому либо порту:
В течении последних лет параллельный порт принтера LPT и последовательный COM-порт были вытеснены USB-портом. Тем не менее всё ещё имеются в продаже отдельные платы расширения для LPT- и/или COM-порта. Такие карты («мультипортовки») можно дополнительно установить в уже имеюшийся компьютер, но дополнить ноутбук COM- или LPT-портом нельзя или крайне сложно.
Вместе с тем практически на всех современных компьютерах и ноутбуках имеется хотя бы один USB-порт, а так же распространены недорогие адаптеры USB-COM, которые позволяют создавать на компьютере с USB-портом недостающий COM-порт.
Часто схемы программаторов для USB-порта достаточно сложны для повторения начинающими электронщиками, и нередко содержат микроконтроллер, который тоже необходимо сначала каким то образом прошить, можно посоветовать несложную схему программатора, подключаемого к компьютеру на COM-порт или на USB через адаптер USB-COM. Через существующие адаптеры USB-LPT прошить микроконтроллер не удасться, так как эти адаптеры «эмулируют» не LPT порт, а лишь управляют работой с принтером.
Нужно предупредить, что программа в микроконтроллер через USB-COM-адаптер загружается в десятки раз дольше, чем через «нормальный» COM-порт и с этим придётся мириться.
Пожалуй, большинство начинающих выбирает восьмибитные AVR-микроконтроллеры RISC архитектуры фирмы ATMEL из-за их гибкости, хорошо описанных примеров применения и невысокой цены. Эти микроконтроллеры, как и множество других, могут быть запрограммированны через ISP-интерфейс.
ISP (In System Programming) – интерфейс внутрисхемного программирования, позволяет программировать контроллер не отсоединяя от остальной схемы. |
ISP-интерфейс состоит из пяти проводников: MOSI, MISO, SCK, RESET и GND. Подключение ISP-программатора позволяет программировать микроконтроллеры, (в большинстве случаев) не извлекая сам микроконтроллер из схемы.
Среди радиолюбителей распространнено много схем-программаторов для последовательного COM-порта. Многие из них собраны на нескольких транзисторах и стабилитронах, и даже на нескольких резисторах. Достоинством таких схем является их простота, но они имеют и важный недостаток. Дело в том, что стандат RS-232 допускает отклонения уровней напряжения на выводах COM-порта, причём эти отклонения у разных производителей компьютеров могут сильно меняться, всё же оставаясь при этом в разрешённых пределах. Поэтому такая простая схема, работающая на одном компьютере, может работать с перебоями на другом или не работать совсем. Очень неудобно и то, что программатор, собранный по простейшей схеме, необходимо каждый раз подключать и отключать от целевой конструкции на время сеанса прошивки.
Вышеперечисленных недостатков лишина схема на Рис. 2. Это программатор для последовательного COM-порта всего на двух распространённых микросхемах: микросхемы RS232-драйвера MAX232 (или аналога) и логической микросхемы 74LS240 (отечественный аналог К555АП3).
Микросхема MAX232 представляет собой широкораспространённый четырёхканальный драйвер (преобразователь уровня) интерфейса RS-232 (примерно от минус 12 до плюс 12 вольт) к уровням CMOS/TTL (уровень 5-вольтовой логики). Микросхема 74LS240 является сдвоенным инвертирующим буфером четырёх линий с разрешением выхода.
Программатор, собранный по этой схеме обладает следующими достоинствами:
Для начинающих электронщиков эта схема может показаться сложной, но с этим мы постараемся справиться в следующей части статьи.
Смелых и Удачных Экспериментов.
Дополнения и файлы:
Как прошить микроконтроллер AVR?
Как прошить микроконтроллер AVR? Именно этим мы и займемся в этой статье.
Что такое «прошить» и «прошивка»?
Давайте первым делом определимся, что означает слово «прошить»? Думаю, вы часто слышали такие словосочетания, как «прошить телефон», «слетела прошивка», «кривая прошивка» и тд. А что такое «прошивка»?
Прошивка — это грубо говоря, операционная система для маленьких устройств, таких как мобильный телефон, MP3-плеер, цифровой фотоаппарат и тд. То есть это небольшая программка, которая управляет этим устройством. Также часто можно услышать и такое:» У меня «глючит» сотовый телефон, его надо срочно «перепрошить«.
В данном случае это означает, что надо заново установить операционную систему на мобильный телефон. Значит, «прошить МК» означает закачать во внутрь него программу, которая бы управляла этим МК, а МК уже управлял бы каким-нибудь устройством. То есть по идее, МК — это посредник между программой и каким-либо устройством, которым надо управлять 😉
Оборудование для прошивки МК
Итак, что нам потребуется, чтобы прошить МК?
Мы с вами договорились использовать МК Atiny2313 в корпусе DIP-20:
Подготовка МК к прошивке
В прошлых статьях мы с вами рассматривали программатор Громова. Главный его минус в том, что нам требуется COM-порт, который с трудом можно сейчас найти в компьютере, а разъем USB зато есть на каждом компьютере. Поэтому, было принято решение о покупке самого дешевого USB программатора для AVR МК. Называется такой программатор USBASP и выглядит он примерно вот так
Если хорошенько порыться на Али, то можно найти очень сладкую цену на такой программатор. Например, здесь . Может быть найдете даже дешевле. Если будете брать у другого продавца, то внимательно смотрите, чтобы его надписи и радиоэлементы располагались именно так, как у меня на фото. В среднем его цена на момент написания статьи около 120 рублей. Такой программатор в корпусе обойдется чуток подороже.
Его рабочий разъем выглядит примерно вот так:
С программатором также в придачу идет шлейф
который одним концом цепляется к рабочему разъему программатора:
Другой конец шлейфа мы будем цеплять к МК.
Если внимательно присмотреться, то можно узнать, какой вывод в разъеме является первым. Стрелка укажет на первый вывод разъема:
После того, как узнали, где находится первый вывод, можно без труда определить остальные выводы:
Дальше берем макетную плату с установленным на ней МК Tiny2313:
Итак, наша задача — соединить выводы МК с выводами программатора.
Для этого в разъем шлейфа втыкаем провода в гнезда MOSI, RST, SCK, MISO, VTG (VCC), GND. GND я взял 10 гнездо, можно и другое, где написано GND. Итого 6 проводков-джамперов:
Далее качаем даташит на наш МК. В данном случае у нас Tiny2313. Ищем в даташите лист с его цоколевкой:
VTG (он же VCC) цепляем к 20 ножке МК
SCK(UCSK) цепляем на 19 ножку МК
MISO цепляем к 18 ножке МК
MOSI на 17 ножку
GND на 10 ножку
RST на первую ножку
Должно получиться как-то вот так:
После первого включения программатора в разъем USB ПК, Диспетчер устройств нам выдаст новое устройство:
Не пугаемся, качаем вот этот архивчик, распаковываем его и указываем путь на него при установке «дров». Когда «дровишки» на программатор установятся, то мы увидим что-то типа этого:
Все ОК, программатор готов к бою.
В этом же архиве находим папку «avrdudeprog», открываем ее, находим там исполняемый файл AVRDUDEPROG и запускаем. Это и есть программная оболочка для прошивки МК с помощью нашего программатора.
Она выглядит вот так. Не забываем выбрать наш МК в списке.
Для того, чтобы прошить МК, нам надо выбрать файл с расширением HEX. Итак, вот мой файлик. Первым делом я нажимаю кнопочку «Стереть все». А вдруг кто-то уже использовал МК и там залита уже какая-нибудь программа? Поэтому, перед прошивкой стираем память МК. Если «стирка» прошла удачно, то программка выдаст нам примерно такое сообщение:
Прошиваем МК AVR
Нажимаем на кнопку выбора файла:
А теперь жмем кнопочку «Программирование»
После того, как все прошло удачно, высветится что-то типа этого:
Но это еще не все! Как вы помните, в прошлой статье мы выставили частоту кварца 8 Мегагерц. Чтобы не было неразберихи, нам эту частоту теперь надо поделить на 8. Для этого существует фьюз, который делит тактовую частоту именно на 8. Ставим маркер на «прямые фьюзы», потом ставим галочку на CKDIV.
После того, как сделали эти два шага, нажимаем на кнопку «Программирование»:
Что такое прошивка
Заглядываем внутрь простой электроники
Наверняка вы слышали фразы вроде: «обновил прошивку телефона», «у фотоаппарата проблемы с прошивкой» или «пиратская прошивка». Сейчас эти фразы означают любой софт, который управляет железом на низком уровне.
О чём речь
Сам термин «прошивка» появился примерно 70 лет назад: это было время, когда ещё не было интегрированных микросхем и микроэлектроники, а вычислительные машины уже были. И вот тогда вместо флеш-памяти и жёстких дисков использовали память на магнитных сердечниках.
Сердечник — это тороид (типа бублик) из специального материала, который можно намагничивать с помощью тока. Через сердечники пропускают ток в разных направлениях, и в зависимости от этого менялись магнитные свойства этого сердечника. Намагниченный сердечник означал единицу, размагниченный — ноль.
Кайф был в том, что намагниченный сердечник оставался намагниченным, не мешал соседям и терял заряд очень медленно, поэтому такую технологию можно было с некоторой натяжкой назвать компьютерной памятью.
Чтобы собрать рабочий модуль памяти, нужно было продевать множество проводов через множество бубликов, что напоминало процесс прошивания иголкой и ниткой. Процесс был ручным: сидели инженеры и шили себе память. Отсюда и слово — «прошивка».
Потом изобрели печатные платы и интегрированные микросхемы, жить стало веселей, появилась флеш-память и магнитные накопители. Процесс записи данных поменялся, а термин остался. С тех пор прошивкой называют программу, заложенную в микросхему и отвечающую за её работу.
Память на магнитных сердечниках
Зачем нужна прошивка
Прошивка в электронике отвечает за работу всего устройства — телефона, фотоаппарата, умной колонки, часов или охранного модуля. Сама прошивка хранится либо в той же микросхеме в блоке памяти, либо в отдельном чипе, если для неё нужно много места.
Когда устройство включается, происходит такое:
👉 Получается, что прошивка — это программа, которая отвечает за работу всего устройства на самом низком уровне.
Зачем менять прошивку
Иногда производитель устройства не добавляет в него некоторые возможности. В этом случае программисты извлекают файл прошивки из устройства, разбираются, из чего он состоит, и смотрят, можно ли в нём что-то изменить, чтобы сделать устройство лучше.
История из жизни одного производителя смартфонов: при производстве телефонов используется один модуль камеры и в дешёвых, и в дорогих моделях. Чтобы они не конкурировали между собой, производитель может в прошивке дешёвой модели отключить оптическую стабилизацию или ночную съёмку. В итоге покупатели знают, что если нужна ночная съёмка, то нужно взять дорогую модель, потому что она это умеет, а дешёвая нет.
Но если в прошивке убрать это ограничение и загрузить её на дешёвый телефон, то он тоже станет снимать и со стабилизацией, и ночной режим появится. В итоге за те же деньги пользователь может получить новые возможности устройства. Но теряет гарантию производителя.
Другой пример — из мира фотоаппаратов. У старых камер Canon есть стандартная прошивка, у неё много ограничений. Разработчики придумали альтернативную прошивку Magic Lantern, которая делает из камеры настоящего зверя для съёмки видео.
Прошивка — не для всей электроники
Есть много устройств, которые прошить не получится: либо нужно распаивать микросхему, либо она защищена от записи. Чаще всего это простая бытовая техника: пульты от телевизоров, миксеры, микроволновки, детские игрушки и тому подобное.
👉 Общее правило такое: если устройство можно подключить к интернету или к компьютеру — скорее всего, его можно прошить. Работает это не всегда, но чаще всего так.
А можно ничего не прошивать и пользоваться как есть?
Можно, иногда даже нужно, если прошивка отвечает за важные системы, например за работу домашнего газового котла, автомобильных систем безопасности или кардиостимулятора.
Откуда пошло понятие «прошить» микросхему?
Слово «прошить» изначально обозначало процесс шитья какой-либо ткани или другого листового материала (например, железа) нитками или проволокой.
Слово «прошить» можно так же встретить в контексте пулеметных очередей. Можно даже встретить это слово В электротехнике, когда электрический ток проходит через изолятор, или же происходит пробой транзистора. Ну и так далее.
Но как это слово могло «прилипнуть» к микросхемам? Почему и как швейное понятие «прошить» вдруг было отнесено к процессу занесения кода в память?
Не гадайте! Все равно не угадаете.
Это не выдумано мною, это поведал мне мой старый учитель, которого, к сожалению уже давно нет. Его имя —
Стефанович Владимир Германович
Светлый был человек. Не злобный…
Это было где-то в начале 80-х годов. В то время компьютеры были большие. А само слово «компьютер», по большому счету, не употреблялось. Вместо него было слово — ЭВМ (электронно-вычислительная машина). «Компьютер» — это что-то американско-чуждое, не вызывающее в душе трепет уважения. А вот русское «ЭВМ» — это ж не просто так, это — целая машина! Это мощно!
К стати, следует заметить, что про микропроцессоры мы только слышали, а про микроконтроллеры вообще никто ничего не знал. Микропроцессоры у нас появились примерно в 1983-84 годах. Собственно тогда мы и начали осваивать «прошивки» программ в микросхемы Ультрафиолетовой памяти (УФПЗУ — кто помнит. К573УФ2 — целых два килобайта. )
Так вот, Стефан, так мы — его подопечные — называли между собой, как-то в кулуарных беседах рассказал нам вот что.
Несколько лет назад, на военных заводах СССР начали осваивать применение вычислительной техники в ракетостроении и авионике. Ну, как-то ж надо было управлять ракетами — приводить их к цели. А поскольку логические микросхемы уже появились, то на них начали собирать разные вычислительные устройства.
Были и такие устройства, которые были сродни ЭВМ. То есть у них был вычислительный блок и, внимание!, — ПАМЯТЬ.
По тем временам память была оперативная (на микросхемах) и долговременная — на ферритовых сердечниках. Но также была большая потребность в постоянной памяти. То есть такой памяти, которую нельзя было никак изменить.
Лучшие умы «Гнезда Советских ракетчиков » (именно такая подпись стояла на обложке немецкого журнала «Шпигель» на фотографии Свердловского завода №320) придумали постоянное запоминающее устройство на базе магнитных сердечников. Но в отличие от долговременной памяти с регулярной структурой, в ПЗУ использовалась особая — хитрая разводка проводов.
Иными словами код (машинные команды, константы) программировались заходом считывающего провода только в единичные ячейки (биты памяти). А ячейки памяти, в которых должен был находиться «логический ноль», пропускались. Вот такая интересная и крайне запутанная структура на ферритовых сердечниках образовывала матрицу постоянной памяти.
Производственная проблема, однако, состояла в том, что нужно было правильно развести этот провод в нужные ячейки. Перед монтажницей находился чертеж, в руках ферритовая бандура и длинный кусок тонкого провода. Понятно, что ошибок при пропускании этого провода через сердечники было много. Соответственно и процент брака был большой. нужно было что-то придумать…
Опять же, лучшие головы 320-го завода придумали распечатывать карту разводки этого провода на тонкой бумаге (на кальке). Потом эту кальку приклеивали на матрицу. И уже по этой «шпаргалке» радиомонтажницы разводили считывающий провод — они продергивали его сквозь бумагу, то есть как бы пришивали эту кальку к матрице, прошивали кальку проводом насквозь. Потом, когда процесс ПРОШИВКИ заканчивался, кальку просто отдирали от матрицы.
Таким образом процент ошибок резко сократился. А вот название процесса — прижилось и стало заменять понятие «программирование», то есть занесение кодов в постоянную память.