Распродажа

Электронные компоненты со склада по низким ценам, подробнее >>>

Журнал Радио

2004: 
1, 2, 3, 4, 5, 6, 7, 8
2003: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
2002: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
2000: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
1999: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
1998: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
1971: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
1947: 
1, 2, 3, 4, 5
1946: 
1, 2, 3, 4-5, 6-7, 8-9

Новости электроники

В 14 раз выросло количество россиян на MediaTek Labs ? проекте по созданию устройств "интернета вещей" и "носимых гаджетов"

Сравнив статистику посещения сайта за два месяца (ноябрь и декабрь 2014 года), в MediaTek выяснили, что число посетителей ресурса из России увеличилось в 10 раз, а из Украины ? в 12. Таким образом, доля русскоговорящих разработчиков с аккаунтами на labs.mediatek.com превысила одну десятую от общего количества зарегистрированных на MediaTek Labs пользователей.

Новое поколение Джобсов или как MediaTek создал свой маленький "Кикстартер"

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

Семинар и тренинг "ФеST-TIваль инноваций: MAXIMум решений!" (14-15.10.2013, Новосибирск)

Компания Компэл, приглашает вас принять участие в семинаре и тренинге ?ФеST-TIваль инноваций: MAXIMум решений!?, который пройдет 14 и 15 октября в Новосибирске.

Мне нравится

Комментарии

дима пишет в теме Параметры биполярных транзисторов серии КТ827:

люди куплю транзистар кт 827А 0688759652

тамара плохова пишет в теме Журнал Радио 9 номер 1971 год. :

как молоды мы были и как быстро пробежали годы кулотино самое счастливое мое время

Ивашка пишет в теме Параметры отечественных излучающих диодов ИК диапазона:

Светодиод - это диод который излучает свет. А если диод имеет ИК излучение, то это ИК диод, а не "ИК светодиод" и "Светодиод инфракрасный", как указано на сайте.

Владимир пишет в теме 2Т963А-2 (RUS) со склада в Москве. Транзистор биполярный отечественный:

Подскажите 2т963а-2 гарантийный срок

Владимир II пишет... пишет в теме Параметры биполярных транзисторов серии КТ372:

Спасибо!

Журнал Радио 7 номер 2004 год.

"РАДИО" ≈ НАЧИНАЮЩИМ

Программаторы и программирование микроконтроллеров

А. ДОЛГЙЙ г. Москва 

Продолжение.
Начало см. в "Радио", 2004, ╧ 1≈6

Не забудьте о конфигурации!

Среди областей внутренней памяти микроконтроллера есть одна, о содержимом которой, описывая конструкцию на микроконтроллере, часто забывают рассказать. Это так называемые биты конфигурации, известные также под названиями Locks ("замки") и Fuses ("плавкие вставки"). Записывая в эту область нули и единицы, задают режимы работы узлов микроконтроллера, в том числе тактового генератора и сторожевого таймера, изменяют функциональное назначение некоторых выводов микросхемы.

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

Число и назначение битов конфигурации у разных микроконтроллеров неодинаково. Точную информацию о них лучше всего получать из описаний (datasheets) соответствующих приборов. Например, у микроконтроллеров серий АТ90, AT89S с помощью программатора последовательного типа можно лишь включить защиту памяти. У приборов серий ATtiny, ATmega, PICmicro возможности изменения конфигурации значительно шире.

Окно управления конфигурацией открывается в PonyProg при выборе пункта меню "Команды" — "Security and Configuration Bits...". Почему-то его название не переведено на русский язык даже в "русифицированной" программе. Вид окна зависит от типа микроконтроллера. Показанное на рис. 28 относится KPIC16F628.

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

СР1, СРО, CPD — защита кода: если значения всех этих битов равны 1 ("галочек" нет), она отключена. Чтобы предотвратить случайное включение, биты СР1 и СРО дублированы. Лишь занеся в оба "дубля" одинаковые значения, можно задать один из возможных режимов защиты.

LVP — низковольтное программирование разрешено (1) или не разрешено (0). В первом случае для перевода микросхемы в режим программирования напряжение +12 В не требуется. Изменять без надобности состояние этого бита не следует. Если программатор читает содержимое памяти микроконтроллера — бит установлен правильно. В противном случае поможет только замена программатора.

BODEN — внутренний детектор понижения напряжения питания включен (1) или выключен (0). Включать детектор следует только при уверенности, что в загружаемой в микроконтроллер программе предусмотрено его использование.

MCLRE — вывод 4 микросхемы служит входом сигнала установки микроконтроллера в исходное состояние MCLR (1) или обычным цифровым входом RA5 (0).

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

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

FOSC2—FOSC0 — тип тактового генератора и режим работы выводов 15 и 16 микроконтроллера:

111 — частота внутреннего тактового генератора задана резистором (у PIC16F628) или RC-цепью (у PIC16F628A), подключенными к выводу 16, генерируемый сигнал выведен для контроля или другого использования на вывод 15.
110 — аналогично 111, но генератор внешнего выхода не имеет, вывод 15 служит входом/выходом RA6.
101 — внутренний генератор работает без внешних элементов, генерируемый им сигнал выведен на вывод 15, вывод 16 служит входом/выходом RA7.
100 — аналогично 101, но генератор внешнего выхода не имеет, вывод 15 служит входом/выходом RA6.
011 — внутренний генератор не действует. Внешний тактовый сигнал подают на вывод 16, вывод 15 служит входом/выходом RA6.
010 — между выводами 15, 16 подключен высокочастотный (HS) кварцевый резонатор.
001 — между выводами 15, 16 подключен обычный (XT) кварцевый резонатор.
000 — между выводами 15, 16 подключен маломощный (LP) кварцевый резонатор.

Если в описании конструкции на микроконтроллере не указан тип тактового генератора, его удается определить и выбрать нужные значения битов FOSC2—FOSC0, проверив по схеме, какие элементы и цепи подключены к выводам 15 и 16.

К сожалению, в документации на микроконтроллеры серии PiCmicro нет четких критериев, по которым следует относить резонаторы к группам HS, XT или LP. Чаще всего подходит вариант XT. Но если генератор не возбуждается или работает неустойчиво, а подборка подключенных между его выводами и общим проводом конденсаторов не помогает, попробуйте и другие варианты конфигурации. Возможно, параметры использованного при повторении конструкции кварца значительно отличаются от примененного ее автором.

Значения некоторых разрядов слова конфигурации иногда бывают индивидуальными для каждого экземпляра микроконтроллера определенного типа. Например, в PIC12F629 и PIC12F675 двумя старшими разрядами этого слова при заводской регулировке изготовленной микросхемы устанавливают номинальное значение образцового напряжения для ее аналоговых узлов. В подобных случаях необходимо, нажав соответствующую кнопку в окне "Configuration and Security Bits", прочитать слово конфигурации новой, еще не подвергавшейся стиранию и программированию микросхемы и позаботиться о том, чтобы значения этих разрядов после программирования остались прежними.

Многие современные микроконтроллеры оснащены внутренним тактовым генератором, не требующим для своей работы никаких внешних элементов. Частоту этого генератора подстраивают программно, изменяя код в специальном регистре микроконтроллера. Значение кода, соответствующее номинальной частоте генератора (обычно из ряда 1, 2, 4 или 8 МГц), найденное для данного экземпляра микроконтроллера при заводской настройке, записывают в его память.

У микроконтроллеров фирмы Atmel это специальная область памяти, не стираемая при очистке FLASH-памяти и ЕЕР-ROM. В некоторых случаях записанное здесь значение переносится в регистр калибровки генератора автоматически при включении питания. В других необходимо "вручную" (предусмотренной для этого командой программатора) прочитать значение калибровочного кода и занести его в определенную ячейку FLASH-памяти или EEPROM.

В РоnуРrоg для работы с калибровочным кодом предусмотрено два пункта меню "Команды". Первый из них ("Считать калибровочный байт ген.") позволяет получить значение этого кода из специальной памяти микроконтроллера и сохранить его в буфере по адресу, указанному с помощью второго пункта ("Настройка калибровки генератора", рис. 29). Если поставить "галочку" у надписи "Относительно памяти данных", код будет занесен не во FLASH, а в EEPROM. Хочу предупредить, работа этих пунктов меню производит впечатление не вполне отлаженной. Надеюсь, в новых версиях PonyProg недочеты будут устранены.

Микроконтроллеры PICmicro, оснащенные внутренним подстраиваемым генератором, обычно хранят "заводское" значение калибровочного кода уже записанным во FLASH-память, как правило, в ее самую старшую ячейку. При неосторожном стирании памяти это значение будет потеряно навсегда. Поэтому прежде, чем подавать команду стирания, код необходимо перенести в соответствующую ячейку буфера программатора, в котором уже находятся подготовленные к программированию данные. Но и после этого следует соблюдать осторожность. Код может быть уничтожен, например, при повторной загрузке буфера из файла. На всякий случай запишите его на бумаге или прямо на корпусе микросхемы.

Хотелось бы обратиться к авторам конструкций на микроконтроллерах. Описывая их, не забывайте рассказывать об особенностях программирования конфигурации, а если необходимо, и установки частоты внутреннего генератора.

Осторожно, утилиты!

В упомянутом в подзаголовке меню среди пунктов, несомненно, полезных при подготовке к программированию ("Очистить буфер", "Заполнить буфер"), есть и такие, неосторожное исполнение которых может исказить подготовленные к программированию данные, причем заметить внесенные изменения "визуально" очень непросто.

Пункт "Удвоить" увеличивает вдвое объем буфера программирования. Плохо то, что при этом каждый записанный в нем ранее байт повторяется дважды в соседних ячейках. К счастью, в последних версиях PonyProg исполнение этого пункта для микроконтроллеров заблокировано.

Пункт "Переставить байты" меняет местами четные и нечетные байты буфера. Пример показан на рис. 30: а — до, б — после исполнения данного пункта. Чтобы вернуть содержимое буфера в исходное состояние, достаточно выбрать этот пункт повторно.

Пункт "Установить серийный номер" используют для того, чтобы при записи одной и той же программы в несколько микросхем пронумеровать экземпляры. Результат его выполнения показан на рис. 30, в. Как видим, номер занесен в первые две ячейки буфера FLASH-памяти, в результате чего потеряны находившиеся там программные коды. Работать такая программа, естественно, не будет.

Если нумерация действительно необходима, следует позаботиться о том, чтобы номер оказался записанным в заведомо не используемые программой ячейки. Установить адрес, по которому будет записан номер, позволяет пункт "Установка серийного номера", открывающий окно, показанное на рис. 31. Кроме адреса, здесь можно задать длину ("Размер") номера в байтах, порядок их следования ("Формат") и начальное значение ("Число"). Формат "Обратно" соответствует общепринятому порядку записи младшего байта по меньшему адресу (равен указанному в окне "Адрес"), а старшего — по большему. В формате "Прямо" порядок следования байтов от старшего к младшему. Если выбран режим "Автоувеличение", значение номера автоматически возрастает на единицу после каждого выполнения пункта "Установить серийный номер", в противном случае оно остается неизменным.

Чтобы надежно обнаружить непреднамеренное искажение подготовленных к программированию данных случайным выполнением "опасных" операций, рекомендуется запомнить CRC правильно заполненного буфера и сверить его с фактическим значением непосредственно перед программированием. CRC (Cyclic Redundancy Code — циклический избыточный код) вычисляют по специальному алгоритму. В отличие от обычной контрольной суммы, он чувствителен к изменениям не только значений в ячейках буфера, но и порядка их следования.

Как показано на рис. 32, текущее значение CRC выведено в нижней части (строке состояния) главного окна PonyProg вместе с выбранным типом программируемой микросхемы и объемом ее памяти (суммой объемов FLASH и EEPROM).

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

(Продолжение следует)
Редактор — Б. Иванов,
скриншоты — А. Долгий 

Вернуться к содержанию журнала "Радио" 7 номер 2004 год







Ваш комментарий к статье
Журнал Радио 7 номер 2004 год. :
Ваше имя:
Отзыв: Разрешено использование тэгов:
<b>жирный текст</b>
<i>курсив</i>
<a href="http://site.ru"> ссылка</a>