Как записать программу на чип

Это краткое руководство для начинающих, которое направлено на то, чтобы показать, как установить инструменты, скомпилировать код с помощью avr-gcc и отправить его в микроконтроллер с помощью avrdude.

Тестер транзисторов / ESR-метр / генератор
Многофункциональный прибор для проверки транзисторов, диодов, тиристоров.

Оно также знакомит с основами автоматизации этой задачи, помещая все инструкции в Makefile. Файлы примера ( main.c, main.bin, main.hex, Makefile) упакованы в архив который можно скачать по ссылке в конце данной статьи.

1. Установка avr-gcc и инструментов

Для компиляции исходного кода вашей прошивки на C и/или C ++ вам понадобится компилятор gcc-avr, библиотека C avr-libc и avrdude. Что очень полезно, существуют полные и простые в установке пакеты для всех основных платформ.

Linux, Ubuntu

Ubuntu предоставляет пакеты, поэтому вы можете просто установить их с помощью этой команды:

Оборудование для чип тюнинга. Оптимальный набор для начала.


$ sudo apt-get install gcc-avr avr-libc avrdude

Mac OSX

Загрузите AVR MacPack. В образе диска MacPack есть установщик, который все сделает за вас.

Windows

Загрузите WinAVR, который включает в себя все необходимое и имеет хороший установщик.

Блок питания 0. 30 В / 3A
Набор для сборки регулируемого блока питания.

2. Компиляция и запись кода

Теперь, когда у вас установлен компилятор, следующий шаг — скомпилировать простой исходный код в файл .BIN, затем сгенерировать файл Intel .HEX и, наконец, записать этот файл .HEX на микросхему AVR с помощью программатора для AVR.

Пример кода

Вот пример содержимого файла main.c. Код ничего не делает, кроме зацикливания в бесконечном цикле, но это для примера.

int main(void)

Компиляция

Приведенная ниже команда скомпилирует ваш код. Это GCC, поэтому я полагаю, что он вам знаком, и никакой дополнительной информации не требуется. Если вы хотите выполнить компиляцию для другого MCU, вам нужно указать соответствующую опцию -mmcu.

avr-gcc -Wall -g -Os -mmcu=attiny13 -o main.bin main.c

После успешной компиляции вы можете проверить размер памяти программы и данных с помощью этой команды:

avr-size -C main.bin

AVR Memory Usage
—————-
Device: Unknown
Program: 40 bytes
(.text + .data + .bootloader)
Data: 0 bytes
(.data + .bss + .noinit)

Создание .HEX

Большинство программаторов не принимают в качестве входного файла исполняемый файл GNU. Поэтому нам нужно проделать некоторую работу.

Итак, следующий шаг — преобразование информационной формы .BIN в файл .HEX. Утилита GNU, которая делает это, называется avr-objcopy.

avr-objcopy -j .text -j .data -O ihex main.bin main.hex

Программирование

Утилита под названием avrdude может программировать микропроцессоры, используя содержимое файлов .HEX, указанных в командной строке.

С помощью приведенной ниже команды файл main.hex будет записан во флэш-память. Параметр -p attiny13 позволяет avrdude узнать, что мы работаем с микроконтроллером ATtiny13. Другими словами — эта опция определяет устройство.

Полный список поддерживаемых чипов можно найти здесь. Обратите внимание, что также допустимо использовать и полные имена (т. е. t13 равно attiny13).

avrdude -p attiny13 -c usbasp -U flash:w:main.hex:i -F -P usb

И вуаля! Чип запрограммирован.

3. Make и makefiles

Теперь мы можем автоматизировать этот процесс, создав Makefile и поместив туда наши команды. Структура Makefile очень проста, и дополнительную информацию о ней можно найти здесь . Утилита make автоматически считывает файл Makefile в папке, в которой вы ее запускаете. Взгляните на готовый пример:

MCU=attiny13 F_CPU=1200000 CC=avr-gcc OBJCOPY=avr-objcopy CFLAGS=-std=c99 -Wall -g -Os -mmcu=$ -DF_CPU=$ -I. TARGET=main SRCS=main.c all: $ $ -o $.bin $ $ -j .text -j .data -O ihex $.bin $.hex flash: avrdude -p $ -c usbasp -U flash:w:$.hex:i -F -P usb clean: rm -f *.bin *.hex

Читайте также:
Какая программа заменит Плей Маркет

Если вы запустите в терминале простую команду make , будет выполнена только метка «all». При запуске (sudo) make flash будет выполнена метка «flash» и так далее.

make

avr-gcc -std=c99 -Wall -g -Os -mmcu=attiny13 -DF_CPU=1200000 -I. -o main.bin main.c
avr-objcopy -j .text -j .data -O ihex main.bin main.hex

make flash

avrdude -p attiny13 -c usbasp -U flash:w:main.hex:i -F -P usb

avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

avrdude: Device signature = 0x1e9007
avrdude: NOTE: «flash» memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: reading input file «main.hex»
avrdude: writing flash (40 bytes):

avrdude: 40 bytes of flash written
avrdude: verifying flash memory against main.hex:
avrdude: load data flash data from input file main.hex:
avrdude: input file main.hex contains 40 bytes
avrdude: reading on-chip flash data:

avrdude: verifying …
avrdude: 40 bytes of flash verified

avrdude: safemode: Fuses OK (H:FF, E:FF, L:6A)

avrdude done. Thank you.

Резюме

По сути, если предположить, что наша программа находится в main.c , только эти три вещи необходимы для компиляции и записи кода на чип AVR.

  1. $ avr-gcc -Wall -g -Os -mmcu=attiny13 -o main.bin main.c
  2. $ avr-objcopy -j .text -j .data -O ihex main.bin main.hex
  3. $ avrdude -p attiny13 -c usbasp -U flash:w:main.hex:i -F -P usb

Важно подчеркнуть, что мы можем легко автоматизировать весь процесс с помощью Makefiles. Рано или поздно она вам понадобится!

Скачать файлы примера (2,1 KiB, скачано: 410)

Источник: fornk.ru

Что такое чип памяти и как программировать микросхемы

Что такое чип памяти и как программировать микросхемы

Микросхемы разного назначения применяются в составе электроники современной техники. Огромное многообразие такого рода компонентов дополняют микросхемы памяти. Этот вид радиодеталей (среди электронщиков и в народе) зачастую называют просто – чипы.

Основное назначение чипов памяти – хранение определённой информации с возможностью внесения (записи), изменения (перезаписи) или полного удаления (стирания) программными средствами. Всеобщий интерес к чипам памяти понятен. Мастерам, знающим как программировать микросхемы памяти, открываются широкие просторы в области ремонта и настройки современных электронных устройств.

  • 1 О чипах – микросхемах хранения информации
  • 2 Организация микросхем (чипов) памяти
  • 2.1 Микросхемы памяти EPROM (серия 27… 27C …)
  • 2.2 Конфигурация исполнения серии 27…, 27C..
  • 2.3 Микросхемы памяти EEPROM серии 28C…
  • 2.4 Чипы памяти FLASH EEPROM серии 28F …, 29C …, 29F …
  • 2.5 Чипы EEPROM с последовательным доступом (24C …, 25C …, 93C …)
  • 2.6 Запоминающие устройства ОЗУ серии 52 …, 62 …, 48Z …, DS12 …, XS22 …
  • 2.7 Маркировка и взаимозаменяемость компонентов
  • 2.7.1 Из практики программирования запоминающих устройств

О чипах – микросхемах хранения информации

Микросхема памяти — это электронный компонент, внутренняя структура которого способна сохранять (запоминать) внесённые программы, какие-либо данные или одновременно то и другое. По сути, загруженные в чип сведения представляют собой серию команд, состоящих из набора вычислительных единиц микропроцессора.

Следует отметить: чипы памяти всегда являются неотъемлемым дополнением микропроцессоров – управляющих микросхем. В свою очередь микропроцессор является основой электроники любой современной техники.

Набор электронных компонентов

Таким образом, микропроцессор управляет работой электронной техники, а чип памяти хранит сведения, необходимые микропроцессору. Программы или данные хранятся в чипе памяти как ряд чисел — нулей и единиц (биты). Один бит может быть представлен логическими нулем (0) либо единицей (1).

В единичном виде обработка битов видится сложной. Поэтому биты объединяются в группы. Шестнадцать бит составляют группу «слов», восемь бит составляют байт — «часть слова», четыре бита — «кусочек слова».

Программным термином для чипов, что используется чаще других, является байт. Это набор из восьми бит, который может принимать от 2 до 8 числовых вариаций, что в общей сложности даёт 256 различных значений.

Для представления байта используется шестнадцатеричная система счисления, где предусматривается использование 16 значений из двух групп:

  1. Цифровых (от 0 до 9).
  2. Символьных (от А до F).

Поэтому в комбинациях двух знаков шестнадцатеричной системы также укладываются 256 значений (от 00h до FFh). Конечный символ «h» указывает на принадлежность к шестнадцатеричным числам.

Читайте также:
Основные характеристики программ компьютера

Организация микросхем (чипов) памяти

Для 8-битных чипов памяти (наиболее распространенный тип) биты объединяются в байты (8 бит) и сохраняются под определённым «адресом». По назначенному адресу открывается доступ к байтам. Вывод восьми битов адреса доступа осуществляется через восемь портов данных.

Организация структуры памяти

Например, 8-мегабитный чип серии 27c801 имеет в общей сложности 1048576 байт (8388608 бит). Каждый байт имеет свой собственный адрес, пронумерованный от 00000h до FFFFFh (десятичное значение 0 — 1048575).

Помимо 8-битных чипов памяти, существуют также 16-битные чипы памяти. Есть микросхемы последовательного доступа, характеризуемые как 1-битные и 4-битные чипы памяти. Правда, последние из отмеченных микросхем теперь уже практически не встречаются.

Микросхемы памяти EPROM (серия 27… 27C …)

Термином «EPROM» зашифрована аббревиатурой техническая характеристика микросхем — стираемая программируемая память только читаемая (Erasable Programmable Read Only Memory). Что это значит в деталях?

Чип памяти 27 серии

Несмотря на расшифровку куска аббревиатуры – «только для чтения» (Read Only Memory), информация доступна для стирания и перезаписи, но только с помощью программатора. Часть аббревиатуры — «Erasable», сообщает о возможности стирания данных.

Структура чипов серии 27… 27C… поддерживает стирание информации методом воздействия на ячейки хранения интенсивным ультрафиолетовым излучением (длина волны 254 нм). Обозначение аббревиатуры «программируемый» (Programmable) указывает на возможность программирования, когда любая цифровая информация может быть заложена в чип.

Для программирования чипов требуется программатор. К примеру, 27 серия успешно прошивается устройствами «Batronix Eprommer» или «Galep-4».

Программатор микросхем Batronix

Тип памяти серии 27… 27C… сохраняет записанные программатором данные до следующего программирования с функцией стирания или без таковой. Допускается многократное программирование без стирания, при условии изменения битов только от состояния единицы до состояния нуля или имеющих состояние нуль.

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

Конфигурация исполнения серии 27…, 27C..

Микросхемы 27 серии выпускаются с окном из кварцевого стекла для засветки ультрафиолетом или без окна. Конфигурация чипа без окна не поддерживает функцию ультрафиолетового стирания. Такой тип микросхем (без окна) относят к чипам EPROM, которые программируются за один раз. Маркируются чипы как OTP (One Time Programmable) — одноразовое программирование.

Микросхема памяти одноразовой записи

На устройствах с окном после стирания ультрафиолетом и последующего программирования, кварцевое окно закрывают наклейкой. Так защищают данные от возможного повреждения светом.

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

Также следует отметить особенности EPROM серии 27C… Символ «С» в данном случае указывает на принадлежность чипа к семейству CMOS (Complimentary Metal Oxide Semiconductor) — комплементарный метал-оксидный полупроводник.

Этот вид микросхем памяти отличается сниженной производительностью по отношению к семейству NMOS (N-channel Metal Oxide Semiconductor) — N-канальный метал-оксидный полупроводник.

Кроме того, серия 27C требует меньшего напряжения питания (12,5В). Между тем обе конфигурации исполнения совместимы. Поэтому, к примеру, микросхема 2764 вполне заменима на чип 27C64.

Микросхемы памяти EEPROM серии 28C…

Здесь первое отличие заметно в аббревиатуре типа памяти – EEPROM, что означает электрически стираемое программируемое постоянное запоминающее устройство (Electrically Erasable Programmable Read Only Memory).

Построение этой серии практически идентично 27 чипам. Однако 28 серия позволяет стирать отдельные байты или всё пространство памяти электрическим способом, без применения ультрафиолета.

Микросхемы памяти серии 28

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

Чтобы компенсировать этот недостаток, чипы подобные AT28C256, оснащаются функцией блочного программирования. При таком подходе к программированию, одновременно (блоком) загружаются 64, 128 или 256 байт. Блочный способ сокращает время программирования.

Чипы памяти FLASH EEPROM серии 28F …, 29C …, 29F …

Эти чипы можно стирать электрически — полностью или блоками, а некоторые (подобные AT28C …) могут программироваться блоками.

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

Чипы памяти из группы Flash-memory

Простой пример, когда Flash-память доступна только в корпусах на 32 контакта или более. Поэтому, допустим, чип 28F256 на 32 вывода не совместим с чипом 27C256, имеющим 28 контактных выводов. При этом микросхемы имеют одинаковый объём памяти и другие параметры, подходящие для замены.

Читайте также:
Джойстик для Андроид подключить к своей программе

Чипы EEPROM с последовательным доступом (24C …, 25C …, 93C …)

Микросхемы памяти с последовательным интерфейсом отличаются тем, что вывод данных и наименование имен в них происходят частями (последовательно).

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

Чипы последовательной памяти серии 24

Это преимущество успешно используется. Практически все EEPROM последовательного доступа изготавливаются в виде 8-контактных малогабаритных микросхем. Такое исполнение корпуса видится более практичным, удобным.

Запоминающие устройства ОЗУ серии 52 …, 62 …, 48Z …, DS12 …, XS22 …

Аббревиатура ОЗУ (RAM) расшифровывается как «память произвольного доступа» (Random Access Memory). Также микросхемы серии 52 …, 62 … и подобные часто характеризуются «оперативными запоминающими устройствами».

Их отличительные черты – скоростная запись без необходимости предварительного стирания. Здесь видится некоторое преимущество относительно других изделий. Но есть и недостаток – чипы ОЗУ отмеченной и других серий утрачивают все записанные и сохранённые данные при отключении питания.

Однако имеется альтернатива – память NVRAM (Non Volatile Random Access Memory) – энергонезависимая память серий 48, DS, XS и подобная, с произвольным доступом. Этот вид чипов выделяется среди основных преимуществ микросхем RAM высокой скоростью перезаписи и простым программированием. Потеря питания не оказывает влияние на сохранённую информацию.

Чип программируемый nvram

Как же способом достигается энергетическая независимость NVRAM? Оказывается, производителями используются две методики:

  1. Встраиваемый в корпус мини аккумулятор.
  2. Совмещение в одном корпусе NVRAM и EEPROM.

Для первого варианта: при отключении питания происходит автоматический переход на внутренний источник энергии. По словам производителей чипов с АКБ, энергии встроенного уникального аккумулятора вполне достаточно на 10 лет работы.

Для второго варианта: технология предусматривает копирование данных пространства памяти NVRAM на встроенное пространство EEPROM. Если утрачивается питание, копия информации остаётся нетронутой и после восстановления энергии, автоматически копируется на NVRAM.

Маркировка и взаимозаменяемость компонентов

Выведенная на корпусе маркировка чипа памяти традиционно содержит:

  • аббревиатуру производителя,
  • технологию производства,
  • размер (объём) памяти,
  • максимально разрешенную скорость доступа,
  • диапазон температур,
  • тип формы корпуса.

Также на корпусах нередко отмечаются сведения о производителе. Независимо от производителя, многие микросхемы памяти совместимы.

Маркировка чипов памяти

Для быстрой, точной интерпретации памяти, конечно же, необходима практика. Но при желании изучить все тонкости не так сложно, как это видится изначально. Если дело касается взаимной замены, в первую очередь должна поддерживаться технология (EPROM, EEPROM , FLASH и т.д.),

Также микросхемы памяти должны иметь одинаковый размер (объём) и равноценное или меньшее время доступа. Желательно выбирать корпус, подходящий по температурному диапазону. Следует отметить: размер памяти задается в битах, не в байтах. За цифрой объёма обычно следует обозначение версии (например, «F»).

Далее, через дефис, отмечается максимально разрешенная скорость доступа в наносекундах — время задержки между циклами ввода адреса и вывода данных на порты чипа памяти. Время задержки обозначается двумя цифрами (например, «70» соответствует 70 нс, а вот «10» соответствует 100 нс). Наконец, завершают маркировку изделия тип корпуса и допустимый диапазон температур.

Пример расшифровки маркировки микросхемы памяти M27C1001-10F1:

  • память типа EPROM,
  • объём хранения данных 1 Мбит (1001),
  • максимальное время доступа 100 нс (10),
  • тип корпуса DIP (F),
  • температурный диапазон 0 — 70ºС (1).

Из практики программирования запоминающих устройств

На видео ниже демонстрируется пример из практики инженера-электронщика, касающийся программирования специальных чипов, наделённых функционалом электрической «памяти»:

При помощи информации: Batronix

КРАТКИЙ БРИФИНГ

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

Источник: zetsila.ru

Начинающим о прошивке микроконтроллера STM8S003F3P6

Начинающим о прошивке микроконтроллера STM8S003F3P6

Для прошивки микроконтроллера STM8S003F3P6 лучше всего использовать недорогой USB программатор ST-LINK V2. Он распространенный и купить его недорого можно как в России, например в магазине «Чип и Дип», так и на Алиэкспресс.

С виду программатор похож на обычную USB флешку. С одной стороны USB порт, с другой стороны 10-ти контактный разъем пинов.

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

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru