Ci для avr: AVR. Учебный Курс. Программирование на Си. Часть 1

Содержание

Введение в язык программирования С (Си) для микроконтроллеров

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

История создания языка C (Си)

Язык программирования C (Си) появился «стихийно» – ни одна компания не заказывала создания подобного языка. Его первая версия появилась на свет в 1972 г. в фирме Bell Laboratories, написал ее теперь уже всемирно известный программист Деннис Ритчи (Dennis MacAlistair Ritchie).

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

Название C (Си) появилось так же стихийно, как и сам язык. Фактически, он стал преемником ранее созданного языка В (Би), разработанного автором операционной системы UNIX Кеном Томпсоном. В свою очередь, язык Би во многом был похож на языке BCPL, разработанный в Кембриджском университете. А язык BCPL основывался на идеях «старого как мир» Алгола-60.

Первым неформальным стандартом языка Си стало издание в 1978 г. книги Брайана Кернигана и Денниса Ритчи с названием «The ‘C’ Programming Language». Первоначально книга была издана в США, но потом была переведена и многократно переиздавалась во многих других странах мира. В 1989 г. язык Си был стандартизован ANSI (American National Standards Institute – американский национальный институт стандартов) и ISO (International Standard Organization — международная организация по стандартизации).

Но время шло и у пользователей языка Си появилась потребность в реализации новых функций, не поддерживавшихся языком. Учитывая все это, Бьерн Страуструп в начале 80-х (работавший все в той же самой Bell Laboratories) принял решение о расширении возможностей языка Си, который первоначально назвали как «Си с классами». Но в дальнейшем за его модификацией языка закрепилось другое название — Си++. Это название сохранилось за ним вплоть до настоящего времени.

Общие сведения о языке C (Си)

В настоящие дни C (Си) является многофункциональным языком программирования высокого уровня, подобным таким языкам как Pascal или Python, но в отличие от них он имеет возможность работы с командами низкого уровня, подобно языку ассемблера. Программу на языке С можно скомпилировать в машинный код практически для любого известного микропроцессора. Не исключением стали и микроконтроллеры – сейчас по популярности использования (особенно для начинающих) язык Си обогнал в них доминировавший до этого язык ассемблера. Программирование на языке С поддерживает и самая популярная в настоящее время программная платформа Atmel Studio (!!!!!!) для микроконтроллеров семейства AVR.

Сейчас уже можно с уверенностью сказать, что язык С стал своеобразным фундаментом, на котором строится все современное программирование – чего стоят хотя бы «Visual C» и «C Sharp». Основанные на нем языки программирования сейчас занимают доминирующее положение в мире программирования. А все началось с удачной структуры языка, разработанной в 1972 г. Деннисом Ритчи.

Файлы программ на языке Си имеют расширение .C, а простейшая структура программы выглядит следующим образом.

#include <avr/io.h> /* заголовок */

int main(void) /* главная функция: начало программы */

{ /* открывающая скобка в начале программы */

оператор программы;
оператор программы;

оператор программы;

} /* закрывающая скобка в конце программы */

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

Назначение основных элементов программы на языке C (Си)

Заголовки

В представленной на рисунке структуры программы на языке С строка #include <avr/io.h> является заголовком. Заголовки содержат специализированную информацию для компилятора об общих условиях выполнения программы и требуемых ей ресурсах. В рассмотренном случае мы указываем компилятору на то, чтобы при выполнении программы он учел информацию, содержащуюся в файле io.h – забегая вперед скажем что этот файл содержит инструкции для портов ввода/вывода микроконтроллера.

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

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

Функции

По сути программа на языке С представляет собой набор функций, каждая из которых может вызывать для выполнения любые другие функции. Функций в программе может быть много, но обязательной является только одна из них, называемая «main» («главная»). Выполнение программы на языке С начинается всегда с нее. Программист не может изменить название главной функции «main», но названия для всех других функций программы он может выбирать произвольно.

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

Идущая следом за названием функции фигурная скобка

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

Фигурные скобки также используются для того, чтобы объединить несколько операторов программы в составной оператор или блок.

Операторы

Как правило, тело функции в языке Си представляет собой набор операторов, в конце каждого из которых стоит точка с запятой ;. Можно размещать каждый оператор на своей строке или несколько операторов на одной строке – компилятору это неважно, главное чтобы они разделялись точкой с запятой (этот символ свидетельствует о конце оператора). Но для восприятия человеком, конечно, удобнее чтобы каждый оператор располагался на отдельной строке. Допускается использование и пустых строк чтобы визуально отделить структурные элементы программы.

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

Комментарии

Комментарии — это примечания, помогающие понять смысл программы. В языке Си текст комментариев записывается между значками /* */. То, что написано между этими значками, компилятору совершенно неважно – он все это игнорирует. Это важно только для человека, который анализирует текст программы.

Комментарии можно размещать как на одной строке с операторами, так и на разных (обычно ниже или выше строки с оператором). Комментарии могут занимать несколько строк и для них не обязательно наличие в конце точки с запятой.

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

Внутри комментариев нельзя использовать символы, определяющие начало и конец комментариев. К примеру, неправильная запись внутри комментария:

/* комментарии к программе /* управления электродвигателем */ */

или

/* комментарии к программе управления */ электродвигателем */

Язык Си для микроконтроллеров AVR поддерживает и другой метод записи комментариев — строка, начинающаяся с символов //. К примеру

// Это комментарий в одну строку

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

  • размещайте один оператор на строке;
  • применяйте пустые строки для «отделения» одной логической части программы от другой;
  • используйте комментарии.

Как комбинировать программу на Си (C) с кодом ассемблера (ASM) | avr

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

Общие причины, по которым приходится иногда писать части кода на ассемблере:

— Мало свободного места для переменных в RAM или для кода FLASH.
— Приложения, очень критичные ко времени выполнения.
— Специальное программирование, которое не может быть реализовано на C (что бывает очень редко).

Есть два метода встроить код ассемблера в программу на C. Один метод — прямое встраивание операторов ассемблера в код C. Метод называется in-line ASM, описание этого метода приведено в документации на используемый компилятор (для каждого компилятора это может осуществляться по-разному). Как использовать inline ассемблер для компилятора GCC — см. в статье [4]. Как использовать inline ассемблер для компилятора IAR — см. в статье [5]. Второй метод — написать код ассемблера в отдельном файле и скомпилировать его отдельно в объектный код, а затем присоединить (link) объектный код к основной программе на этапе линковки. Второй метод и будет рассматриваться в этой статье.

Хороший пример использования ассемблера в виде отдельного модуля — код библиотеки V-USB и примеры firmware USB-устройств на микроконтроллерах AVR, которые используют эту библиотеку [2]. Код ассемблера здесь сосредоточен в модуле usbdrv\usbdrvasm.asm -> usbdrvasm.S. Он необходим для очень быстрой обработки прерывания INT0, используемого для отслеживания событий перепада сигнала шины данных USB (обычно это сигнал D+). Удивительно, что микроконтроллер AVR успевает обработать перепады сигнала с частотой шины USB и декодировать их на физическом уровне — и все это благодаря кодированию на языке ассемблера!

Оба метода вставки кода ассемблера — in-line и в виде отдельного ASM модуля — требуют тщательного изучения документации на компилятор. Во-первых, нужно знать синтаксис in-line ассемблера, а во-вторых, нужно знать, какие регистры и каким образом использует компилятор C для временных переменных, для передачи переменных в функции и возврата значений из функций (см. далее раздел «Какие регистры использует компилятор AVR GCC?»). Это нужно для того, чтобы программа на ассемблере правильно восстанавливала значение используемых регистров, и могла корректно принимать и возвращать значения данных. Упростить написание модуля на ассемблере может написание болванки на C и компиляция её в ассемблер (см. раздел «Как скомпилировать модуль C в модуль на ASM?»).

[Как скомпилировать модуль C в модуль на ASM?]

Хороший метод написания шаблона для модуля ASM — сделать модуль на C и скомпилировать его в код ассемблера. Все компиляторы умеют это делать, в том числе и компилятор AVR GCC. После того, как будет получена болванка модуля ASM, в ней уже будут корректно передаваться нужные параметры и возвращаться значения через нужные регистры. Нужно будет только вручную поправить код, добившись требуемой оптимизации.

Для компиляции в ассемблер используется опция -S (avr-gcc … -S). За подробностями обратитесь к документации на компилятор avr-gcc [3]. Для вызова подсказки по командной строке выполните avr-gcc —help. Пример:

avr-gcc -S -mmcu=at90usb1287 -I. -Os -Wall -DF_CPU=16000000UL timerint.c -o timerint.S

[Какие регистры использует компилятор AVR GCC?]

Data types. Типы данных: char занимает 8 бит (1 байт), int 16 бит (2 байта), long 32 бита (4 байта), long long 64 бита (8 байт), float и double 32 бита (4 байта, поддерживается только формат с плавающей точкой, floating point format), указатели 16 бит (указатели функций адресуют не байты, а слова, т. е. реальный адрес нужно умножать на 2. Это для того, чтобы 16-битное число могло позволить обращаться к любому месту в 128K памяти программ). Имеется опция -mint8 (см. Options for the C compiler avr-gcc) чтобы сделать int размерностью 8 бит, однако это не поддерживается avr-libc и нарушает стандарты C (int должен быть как минимум 16-битным). Опция -mint8 может быть удалена в последующих версиях avr-gcc.

Call-used registers (r18-r27, r30-r31). Регистры, используемые при вызовах функций. Могут быть заняты компилятором gcc для локальных данных (переменных). Вы свободно можете их использовать в подпрограммах на ассемблере, без необходимости сохранения и восстановления (не нужно их сохранять в стек командой push и извлекать из стека командой pop). Если же из кода ASM вызываются подпрограммы на C, то эти регистры могут портиться произвольным образом, так что вызывающий код ассемблера должен отвечать за сохранение и восстановление данных в этих регистрах.

Call-saved registers (r2-r17, r28-r29). Регистры, сохраняемые при вызовах функций. Могут быть выделены gcc для локальных данных (переменных). Вызовы подпрограмм C оставляют эти регистры неизменными. Подпрограммы на языке ассемблера также их должны сохранять при входе и восстанавливать при выходе (обычно с помощью стека операциями push и pop). Если эти регистры изменяются в коде, то r29:r28 (Y pointer) используется при необходимости как указатель на фрейм (frame pointer, указывает на локальные данные в стеке). Требования системы вызова для сохранения/восстановления содержимого этих регистров также относится и к ситуациям, когда компилятор использует эти регистры для передачи аргументов в функцию.

Fixed registers (r0, r1), фиксированные регистры. Никогда не выделяются gcc для локальных данных, но часто используются для определенных целей:

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

r1 — подразумевается, что всегда 0 в любом коде C. Может использоваться для запоминания чего-нибудь в пределах кусков кода ассемблера, однако после использования должен очищаться (clr r1). Это относится к любому использованию инструкций [f]mul[s[u]], которые возвращают результат в паре регистров r1:r0. Обработчики прерываний сохраняют и очищают r1 на входе, и восстанавливают r1 на выходе (в том случае, если r1 не ноль).

Function call conventions, соглашения о вызовах функций. Аргументы выделяются слева направо, в регистрах от r25 до r8. Все аргументы выравниваются для начала с четно нумерованных регистров (нечетные по размеру аргументы, включая char, имеют один свободный регистр перед собой). Это позволяет эффективнее использовать инструкцию movw на расширенном ядре. Если переменных слишком много, то те что не влезли в регистры, передаются через стек.

Возвращаемые значения: 8 бит в r24 (не в r25!), 16 бит в r25:r24, до 32 бит в r22-r25, до 64 бит в r18-r25. 8-битные возвращаемые значения расширяются до нуля/знака к 16 битам вызванной функцией (unsigned char более эффективен, чем signed char — просто clr r25). Аргументы функций с переменным количеством аргументов (например printf и т. п.) все передаются через стек, и тип char расширяется до int.

Внимание: такого выравнивания не было до 2000-07-01, включая старые патчи для gcc-2.95.2. Проверьте Ваши старые подпрограммы на ассемблере, и сделайте соответствующие исправления.

[Ссылки]

1. AVR Studio: как написать обработчик прерывания.
2. AVR-USB-MEGA16: примеры применения, проекты с открытым исходным кодом и принципиальной схемой.
3. avr-gcc: опции компилятора C для микроконтроллеров AVR.
4. AVR-GCC: руководство по встраиванию кода на ассемблере. 
5. IAR Embedded Workbench IDE, использование ассемблера в C-проекте. 

Шаблоны и заготовки для простеньких программ на Си

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

  • Шаблон прерывания int0 для AtTiny2313 — шаблон содержит программу формирования задержки и конфигурационные данные для простого и быстрого написания программы с использование прерывания int0.
  • Шаблон программы для формирования задержки(пауза) — не пользую стандартную библиотеку задержек, так как-то сложилось. Своя ближе 🙂
  • Шаблон для работы с UART код для AtTiny2313 — код содержит подпрограммы работы с модулем UART для микроконтроллера AtTiny2313 (для AtMega8 необходимо изменить инициализацию).
  • Шаблон вечного цикла — в шаблоне находиться подпрограмма задержки и код вечного цикла, для реализации зацикленности выполнения какой-нибудь программы, которая по алгоритму должна выполняться все время при котором микроконтроллер включен.
  • Шаблон работы с прерываниями int0 и int1 — шаблон программы для обработки двух прерываний от int0 и int1, я в основном использую для двух кнопок а подпрограммы обычно увеличивают или уменьшают какую-то переменную, которая собственно влияет на работу всей программы.
  • Программа генерации импульсов — программа предназначена для генерации импульсов для восстановления работоспособности микроконтроллера после неправильной установки Low-фьюзов.
  • Программа USART Echo (Эхо) — предназначена для отладки устройств с использованием протокола передачи данных USART.
  • Генератор сообщения по USART — код программы выполняющей отправку заранее заданных сообщений по USART с заданной паузой, код для микроконтроллера AtMeg8.
  • Управление шаговым двигателем — программа управления униполярным шаговым двигателем.
  • USART_RX_vect — пример обработки принятого байта по протоколу USART код для ATmega8.

avr-libc: AVR Libc

1.6.1

Введение

Последняя версия этого документа всегда доступна на странице http://savannah.nongnu.org/projects/avr-libc/

Пакет libc AVR обеспечивает почти всю стандартную библиотеку C для Atmel AVR 8-bit RISC microcontrollers. Кроме того, библиотека обеспечивает the basic startup code, в котором нуждается большинство приложений.

В этом документе имеется много информации, которая идет вне простого описания собственно библиотеки. Мы надеемся, что этот документ обеспечивает достаточно информации для того, чтобы получить нового разработчика AVR, способного быстро и свободно использовать доступные развиваемые инструментальные средства: binutils, gcc avr-libc и другие.

Если Вы столкнётесь с проблеммой, которая не описана в этом документе, вы можете написать сообщение списку адресатов avr-gcc. Большинство разработчиков AVR binutils и gcc ports в дополнение к разработчикам avr-libc подписались в список, так что обычно Вы будете иметь возможность решить вашу проблему. Вы можете подписаться в список в http://lists.nongnu.org/mailman/listinfo/avr-gcc-list . Перед регистрацией в списке, Вы можете прочитать главу этого документа — Часто задаваемые вопросы.

Примечание:

Если Вы думаете, что нашли ошибку, или хотите предложить усовершенствование, в этой документации или непосредственно в библиотеке, пожалуйста используйте буксир ошибки на странице https://savannah.nongnu.org/bugs/?group=avr-libc это гарантирует, что проблема не будет забыта.

Общая информация об этой библиотеке

Вообще, при создании этой библиотеки была цель придерживаться нескольких установленных стандартов. Обычно, это относится к библиотеке C как описано в стандартах ANSI X3.159-1989 и ISO/IEC 9899:1990 («ANSI-C»), так же и части их преемника ISO/IEC 9899:1999 («C99»). Некоторые добавления были вдохновлены другими стандартами, подобными IEEE Std 1003.1-1988 («POSIX.1»), в то время как другие расширения - просто AVR - определения (подобные полностью пространственному программному строковому интерфейсу).

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

Поддерживаемые Устройства

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

Устройства megaAVR:

  • atmega103
  • atmega128
  • atmega1280
  • atmega1281
  • atmega1284p
  • atmega16
  • atmega161
  • atmega162
  • atmega163
  • atmega164p
  • atmega165
  • atmega165p
  • atmega168
  • atmega168p
  • atmega2560
  • atmega2561
  • atmega32
  • atmega323
  • atmega324p
  • atmega325
  • atmega325p
  • atmega3250
  • atmega3250p
  • atmega328p
  • atmega48
  • atmega48p
  • atmega64
  • atmega640
  • atmega644
  • atmega644p
  • atmega645
  • atmega6450
  • atmega8
  • atmega88
  • atmega88p
  • atmega8515
  • atmega8535

Устройства tinyAVR:

  • attiny11 [1]
  • attiny12 [1]
  • attiny13
  • attiny15 [1]
  • attiny22
  • attiny24
  • attiny25
  • attiny26
  • attiny261
  • attiny28 [1]
  • attiny2313
  • attiny43u
  • attiny44
  • attiny45
  • attiny461
  • attiny48
  • attiny84
  • attiny85
  • attiny861
  • attiny88

Устройства CAN AVR:

  • at90can32
  • at90can64
  • at90can128

Устройства LCD AVR:

  • atmega169
  • atmega169p
  • atmega329
  • atmega329p
  • atmega3290
  • atmega3290p
  • atmega649
  • atmega6490

Устройства Lighting AVR:

  • at90pwm1
  • at90pwm2
  • at90pwm2b
  • at90pwm216
  • at90pwm3
  • at90pwm3b
  • at90pwm316

Устройства Smart Battery AVR:

  • atmega8hva
  • atmega16hva
  • atmega32hvb
  • atmega406

Устройства USB AVR:

  • at90usb82
  • at90usb162
  • at90usb646
  • at90usb647
  • at90usb1286
  • at90usb1287

Разные Устройства:

  • at94K [2]
  • at76c711 [3]
  • at43usb320
  • at43usb355
  • at86rf401

Устройства Classic AVR:

  • at90s1200 [1]
  • at90s2313
  • at90s2323
  • at90s2333
  • at90s2343
  • at90s4414
  • at90s4433
  • at90s4434
  • at90s8515
  • at90c8534
  • at90s8535

Примечание:

[1] Только ассемблер. Нет никакой прямой поддержки этим устройствам, которые будут запрограммированы на C, они не имеют основанного стека RAM. Однако, могло быть возможно программировать их на C, смотрите FAQ.

Примечание:

[2] at94K устройства - комбинация микроконтроллера AVR и FPGA. [TRoth-2002/11/12: Нет уверенности относительно уровня их поддержки. Приветствовалась бы подробная информация.]

Примечание:

[3] at76c711 — USB к быстрому чипу моста последовательного интерфейса, используя AVR ядро.

avr-libc может свободно использоваться и распространяться, если выполнены следующие условия лицензии.

 

Portions of avr-libc are Copyright (c) 1999-2007
Keith Gudger,
Bjoern Haase,
Steinar Haugen,
Peter Jansen,
Reinhard Jessich,
Magnus Johansson,
Artur Lipowski,
Marek Michalkiewicz,
Colin O'Flynn,
Bob Paddock,
Reiner Patommel,
Michael Rickman,
Theodore A. Roth,
Juergen Schilling,
Philip Soeberg,
Anatoly Sokolov,
Nils Kristian Strom,
Michael Stumpf,
Stefan Swanepoel,
Eric B. Weddington,
Joerg Wunsch,
Dmitry Xmelkov,
The Regents of the University of California.
All rights reserved.

 

 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:

 

 * Redistributions of source code must retain the above copyright
 notice, this list of conditions and the following disclaimer.

 

 * Redistributions in binary form must reproduce the above copyright
 notice, this list of conditions and the following disclaimer in
 the documentation and/or other materials provided with the
 distribution.

 

 * Neither the name of the copyright holders nor the names of
 contributors may be used to endorse or promote products derived
 from this software without specific prior written permission.

 

 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 POSSIBILITY OF SUCH DAMAGE.

Automatically generated by Doxygen 1.5.2 on 21 Dec 2007.

Учебный стенд для изучения внутренней архитектуры и основ программирования микроконтроллеров AVR на языке Ассемблера и Си

Описание

Учебный стенд позволяет приобрести навыки программирования микроконтроллера на языках СИ и Ассемблере, изучить архитектуру микроконтроллеров, способы передачи данных по разным интерфейсам.

Программа для микроконтроллера составляется с использованием свободного программного обеспечения на языках Си или Асемблер.

В микроконтроллер программа загружается через интерфейс RS-232 с персонального компьютера (в состав стенда ПК не входит). Для загрузки используется Bootloader, уже загруженный в микроконтроллер, что позволяет программировать микроконтроллер без дополнительных программаторов, а также защищает микроконтроллер от неправильной установки конфигурационных ячеек.

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

Учебный стенд позволяет изучить:
– основы программирования микроконтроллеров на языке Ассемблера и Си;
– восьми и шестнадцати разрядные таймеры микроконтроллера;
– внешние прерывания;
– работу модуля АЦП в составе микроконтроллера;
– управление семисегментным индикатором;
– работу UART микроконтроллера;
– работу портов ввода/вывода;
– использование аналогового компаратора;
– использование ШИМ для регулирования вращения двигателя.

Лабораторные работы

Перечень лабораторных работ:
1. Знакомство с лабораторным стендом, порты ввода-вывода микроконтроллера.
2. Таймеры – счётчики микроконтроллера. Способы отсчетов временных интервалов.
3. Способы отображения информации на семисегментном индикаторе. Принципы динамической индикации.
4. Использование АЦП микроконтроллера.
5. Принципы последовательной передачи данных с помощью интерфейсов SPI, UART, между двумя микроконтроллерами.
6. Создание сети передачи данных из нескольких микроконтроллеров.
7. Изучение взаимодействия микроконтроллера с персональным компьютером через Com-порт.
8. Изучение методов помехоустойчивого кодирования при передаче данных по последовательным линиям связи.
9. Изучение регулировки мощности на основе ШИМ.

Характеристики

Габаритные размеры, мм – 250х200х100
Вес – 2 кг.

Внешняя и задняя панель стенда выполнены из двухкомпозитного диэлектрического материала, с нанесенной на ней цветной мнемосхемой, выполненной с помощью УФК печати. Боковые панели выполнены из диэлектрического пластика, защищающего от статического напряжения.

Комплектация

Состав:
– плата модуля микроконтроллера с прошитым Bootloader;
– кабель RS-232 для связи с компьютером;
– комплект соединительных проводов;
– компакт-диск с программным обеспечением;
– методические указания к выполнению лабораторных работ;
– мультимедийная методика (видео на диске).

Примеры программ на си для avr attiny13. Защита от дребезга

Декабрь 2015 г.

1. Преимущества предлагаемого способа

Схемы устройств на микроконтроллерах (МК) обычно отличаются сочетанием двух трудносовместимых качеств: максимальной простотой и высокой функциональностью. К тому же функциональность может в дальнейшем меняться и расширяться без внесения каких-либо изменений в схему — путём лишь замены программы (перепрошивкой). Эти особенности объясняются тем, что создатели современных МК постарались разместить на одном кристалле всё, что только может потребоваться разработчику электронного устройства — по крайней мере настолько, насколько это возможно. В результате произошло смещение акцента со схемотехнического и монтажного на программный. С использованием МК теперь меньше приходится «нагружать» схему деталями, между компонентами становится меньше соединений. Это, конечно, делает схему более привлекательной для её повторения как опытными, так и начинающими электронщиками. Но, как обычно, за всё приходится платить. Здесь тоже не обошлось без своих сложностей. Если купить новый МК, установить его в правильно собранную из исправных деталей схему и подать питание, то ничего не получится — устройство не будет работать. Микроконтроллеру нужна программа.

Казалось бы с этим тоже всё просто — в интернете можно встретить множество схем с бесплатными прошивками. Но тут возникает одна загвоздка: прошивку необходимо как-то «залить» в микроконтроллер. Для того, кто никогда этим раньше не занимался, такая задача зачастую становится проблемой и главным отталкивающим фактором, нередко заставляющим отказаться от прелестей использования МК и поискать схемы на «рассыпухе» и жесткой логике. А ведь всё не так уж сложно, как может показаться на первый взгляд.

Проанализировав публикации в интернете, можно заметить, что данная проблема решается чаще всего одним из двух путей: покупкой готового программатора или изготовлением самодельного. При этом публикуемые схемы самодельных программаторов очень часто неоправданно сложны — гораздо сложнее, чем это действительно необходимо. Конечно, если предполагается каждый день прошивать МК, лучше иметь «крутой» программатор. Но если надобность в такой процедуре возникает нечасто, от случая к случаю, то можно вообще обойтись без программатора. Нет, конечно, речь идет не о том, чтобы научиться делать это силой мысли. Имеется в виду, что понимая, как происходит взаимодействие программатора с микроконтроллером при записи и считывании информации в режиме его программирования, мы можем обойтись подручными средствами более широкого назначения. Эти средства должны будут заменить как программную, так и аппаратную части программатора. Аппаратная часть должна обеспечить физическое соединение с микросхемой МК, возможность подавать логические уровни на его входы и считывать данные с его выходов. Программная часть должна обеспечить работу алгоритма, управляющего всеми необходимыми процессами. Отметим также, что качество записи информации в МК не зависит от того, насколько «крутой» у вас программатор. Такого понятия, как «лучше записалось» или «хуже» не существует. Есть только два варианта: «записалось» и «не записалось». Это объясняется тем, что непосредственно процессом записи внутри кристалла руководит сам МК. Нужно лишь обеспечить ему качественное питание (отсутствие помех и пульсаций) и правильно организовать интерфейс. Если по результатам контрольного считывания ошибок не выявлено, то все в порядке — можно использовать контроллер по назначению.

Для того, чтобы, не имея программатора, записать в МК программу, нам потребуется преобразователь порта USB-RS232TTL и , а также . Конвертер USB-RS232TTL позволяет при помощи порта USB создать COM-порт, отличающийся от «настоящего» лишь тем, что на его входах и выходах используются логические уровни TTL, то есть напряжение в интервале от 0 до 5 вольт (подробнее можно почитать в статье » «). Такой конвертер в любом случае полезно иметь в «хозяйстве», так что если у вас его еще нет, непременно стоит приобрести. Что касается логических уровней, то в нашем случае TTL — это даже преимущество перед обычным COM-портом, потому что входы и выходы такого порта можно напрямую подключать к любому микроконтроллеру, питающемуся от напряжения 5 В, в том числе ATtiny и ATmega. Но не пытайтесь использовать обычный COM-порт — там используются напряжения в интервале от -12 до +12 В (либо -15…+15В). Непосредственное соединение с микроконтроллером в этом случае недопустимо!!!

Идея создания скрипта для программы «Перпетуум М», реализующего функции программатора, возникла после ознакомления с рядом публикаций в интернете, предлагающих те или иные решения по прошивке МК. В каждом случае обнаруживались серьезные недостатки или чрезмерные сложности. Часто попадались схемы программаторов, содержащие в себе микроконтроллер и при этом вполне серьезно давались советы типа: «… а чтобы запрограммировать микроконтроллер для этого программатора нам потребуется… правильно — другой программатор!». Далее предлагалось сходить к другу, поискать платную услугу и т.п. Качество программного обеспечения, распространяемого в сети для этих целей, также не впечатлило — замечено множество проблем как с функциональностью, так и с «мутностью» пользовательского интерфейса. Зачастую много времени нужно потратить, чтобы понять, как использовать программу — ее необходимо изучать даже ради осуществления простейших действий. Иная программа может долго и усердно что-то делать, но о том, что ничего в МК не записывается, пользователь узнает только после полного завершения всей прошивки и последующего контрольного считывания. Встречается и такая проблема: пользователь пытается выбрать из списка поддерживаемых кристаллов свой МК, а его в списке нет. В этом случае воспользоваться программой не удастся — внесение в список недостающих МК, как правило, не предусмотрено. Кроме того ручной выбор контроллера из списка выглядит странно, если учесть, что программатор во многих случаях может сам определить тип МК. Все это сказано не для того, чтобы облить грязью существующие продукты, а для того, чтобы объяснить причину появления скрипта к программе «Перпетуум М», описываемого в данной статье. Проблема действительно существует, и она касается в первую очередь новичков, которым не всегда удается преодолеть данную «стену», чтобы сделать свой первый шаг в мир микроконтроллеров. В предлагаемом скрипте учтены недостатки, обнаруженные в других программах. Реализована максимальная «прозрачность» работы алгоритма, предельно простой интерфейс пользователя, не требующий изучения и не оставляющий шанса запутаться и «не туда нажать». При отсутствии нужного МК среди поддерживаемых есть возможность самостоятельно добавить его описание, взяв нужные данные из документации, скачанной с сайта разработчика МК. И, самое главное — скрипт открыт для изучения и модификации. Каждый желающий может, открыв в текстовом редакторе, изучать и править его на свое усмотрение, изменяя на свой вкус существующие функции и добавляя недостающие.

Первая версия скрипта была создана в июне 2015 года. В этой версии реализована только поддержка Atmel»овских МК серий ATtiny и ATmega с функциями записи/чтения флэш-памяти, с настройкой конфигурационных бит, с автоматическим определением типа контроллера. Запись и чтение EEPROM не реализованы. Были планы дополнить функциональность скрипта: добавить запись и чтение EEPROM, реализовать поддержку PIC-контроллеров и т.д. По этой причине скрипт до сих пор не был опубликован. Но из-за нехватки времени осуществление задуманного затянулось, и, чтобы лучшее не становилось врагом хорошего, решено опубликовать имеющуюся версию. Если уже реализованных функций окажется недостаточно, прошу не огорчаться. В этом случае вы можете попробовать самостоятельно добавить нужную функцию. Не стану скрывать: идея создания данного скрипта изначально несет в себе еще и образовательный смысл. Разобравшись в алгоритме и добавив к нему что-то свое, вы сможете глубже понять работу МК в режиме программирования, чтобы в будущем не оказаться в положении девушки перед сломавшимся автомоблем, задумчиво разглядывающей его внутренности и не понимающей, почему «не едет».

2. Интерфейс МК в режиме программирования

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

Но, прежде чем приступить к рассмотрению сигналов, необходимых для формирования SPI, сделаем ряд оговорок. Микроконтроллер имеет конфигурационные биты. Это что-то вроде тумблеров, переключение которых позволяет менять некоторые свойства микросхемы в соответствии с нуждами проекта. Физически это ячейки энергонезависимой памяти, вроде тех, в которые записывается программа. Разница в том, что их очень мало (до трех байт для ATmega), и они не входят в адресное пространство какой-либо памяти. Запись и чтение конфигурационных данных выполняется отдельными командами режима программирования МК. Сейчас важно отметить, что некоторые конфигурационные биты влияют на саму возможность использования SPI. При некоторых их значениях может оказаться, что SPI нельзя будет использовать. Если вам попадется такой микроконтроллер, то метод, предлагаемый в данной статье, не поможет. В этом случае придется либо изменить настройки конфигурационных бит в программаторе, который поддерживает иной режим программирования, либо использовать другой микроконтроллер. Но данная проблема касается только бывших в употреблении МК, либо тех, с которыми уже кто-то неудачно «поигрался». Дело в том, что новые МК поставляются с настройками конфигурационных бит, не препятствующими использованию SPI. Это подтверждается и результатами испытаний скрипта-программатора для программы «Перпетуум М», во время которых были успешно прошиты четыре разных МК (ATmega8, ATmega128, ATtiny13, ATtiny44). Все они были новые. Начальная настройка конфигурационных бит соответствовала документации и не мешала использованию SPI.

Учитывая сказанное выше, следует обращать внимание на следующие биты. Бит SPIEN в явном виде разрешает или запрещает использование SPI, следовательно в нашем случае его значение должно быть разрешающим. Бит RSTDISBL способен превратить один из выводов микросхемы (заранее предопределенный) во вход сигнала «сброс», либо не превратить (в зависимости от записанного в этот бит значения). В нашем случае вход «сброс» необходим (при его отсутствии не получится перевести МК в режим программирования через SPI). Есть еще биты группы CKSEL, задающие источник тактового сигнала. Они не препятствуют использованию SPI, но их тоже необходимо иметь в виду, потому что при полном отсутствии тактовых импульсов, либо при их частоте ниже допустимой для заданной скорости SPI, также ничего хорошего не получится. Обычно у новых МК, имеющих внутренний RC-генератор, биты группы CKSEL настроены на его использование. Нас это вполне устраивает — тактирование обеспечено без каких-либо дополнительных усилий с нашей стороны. Ни кварцевый резонатор припаивать, ни внешний генератор подключать не нужно. Если же указанные биты содержат иную настройку, придется позаботится о тактировании в соответствии с настройкой. В этом случае может потребоваться подключение к МК кварцевого резонатора или внешнего тактового генератора. Но в рамках данной статьи мы не будем рассматривать, как это делается. Примеры подключения МК для программирования, содержащиеся в данной статье, рассчитаны на самый простой случай.

Рис. 1. Обмен данными по SPI в режиме программирования

Теперь обратимся к рисунку 1, взятому из документации на МК ATmega128A. На нем показан процесс передачи одного байта в МК и одновременного приема одного байта из МК. Оба эти процесса, как видим, используют одни и те же тактовые импульсы, поступающие от программатора в микроконтроллер на его вход SCK — один из выводов микросхемы, для которого в режиме программирования по SPI отведена такая роль. Еще две сигнальные линии обеспечивают прием и передачу данных по одному биту за такт. Через вход MOSI данные поступают в микроконтроллер, а с выхода MISO снимаются считываемые данные. Обратите внимание на две пунктирные линии, проведенные от SCK к MISO и MOSI. Они показывают, в какой момент микроконтроллер «проглатывает» выставленный на входе MOSI бит данных, и в какой момент сам выставляет на выход MISO свой бит данных. Все достаточно просто. Но чтобы ввести МК в режим программирования нам еще потребуется сигнал RESET. Не забудем также про общий провод GND и питание VCC. В общей сложности выходит, что к микроконтроллеру для его прошивки по SPI нужно подключить всего 6 проводков. Ниже разберем это подробнее, а пока добавим, что обмен данными с МК в режиме программирования по SPI выполняется пакетами по 4 байта. Первый байт каждого пакета в основном полностью отводится под кодирование команды. Второй байт в зависимости от первого может быть продолжением кода команды, либо частью адреса, а может иметь произвольное значение. Третий байт используется в основном для передачи адресов, но во многих командах может иметь произвольное значение. Четвертый байт обычно передает данные, либо имеет произвольное значение. Одновременно с передачей четвертого байта в некоторых командах принимаются данные, поступающие из МК. Подробности по каждой команде можно найти в документации на контроллер в таблице под названием «SPI Serial Programming Instruction Set». Пока отметим лишь, что весь обмен с контроллером построен из последовательности 32-битных пакетов, в каждом из которых передается не более одного байта полезной информации. Это не очень оптимально, но в целом работает неплохо.

3. Подключение МК для программирования

Чтобы обеспечить подачу на входы микроконтроллера всех необходимых сигналов для организации интерфейса SPI и чтение данных с его выхода MISO, не обязательно создавать программатор. Это легко осуществить при помощи самого обыкновенного конвертера USB-RS232TTL.

В интернете часто можно встретить информацию о том, что такие конвертеры неполноценны, что с ними ничего серьезного сделать нельзя. Но в отношении большинства моделей конвертеров такое мнение ошибочно. Да, существуют в продаже конвертеры, у которых доступны не все входы и выходы по сравнению со стандартным COM-портом (например, только TXD и RXD), имеющие при этом неразборную конструкцию (микросхема залита пластмассой — невозможно добраться до ее выводов). Но такие и покупать не стоит. В некоторых случаях получить недостающие входы и выходы порта можно, подпаяв проводки непосредственно к микросхеме. Пример такого «усовершенствованного» конвертера показан на рисунке 2 (микросхема PL-2303 — подробнее о назначении ее выводов в статье » «). Это одна из самых дешевых моделей, но обладающая своими преимуществами при использовании в самодельных конструкциях. Широко распространены и полнофункциональные шнуры-переходники со стандартным девятиконтактным разъемом на конце, как у COM-порта. От обычного COM-порта они отличаются только уровнями TTL и несовместимостью с устаревшим программным обеспечением и некоторым старым оборудованием. Можно еще отметить, что шнуры на микросхеме Ch44x на различных экстремальных тестах показывают себя гораздо более надежными и стабильными по сравнению с преобразователями на PL-2303. Впрочем, при обычном использовании разница не заметна.

При выборе конвертера USB-RS232TTL следует также обращать внимание на совместимость его драйвера с версией используемой операционной системы.

Рассмотрим подробнее принцип соединения микроконтроллера и конвертера USB-RS232TTL на примере четырех разных моделей МК: ATtiny13, ATtiny44, ATmega8 и ATmega128. На рисунке 3 показана общая схема такого соединения. Вас может удивить, что сигналы RS232 (RTS, TXD, DTR и CTS) используются не по назначению. Но не стоит об этом беспокоиться: программа «Перпетуум М» способна работать с ними напрямую — устанавливать значения на выходах и читать состояния входа. Во всяком случае широко распространенные конвертеры USB-RS232TTL на микросхемах Ch44x и PL-2303 такую возможность обеспечивают — это проверено. С другими популярными конвертерами также проблем быть не должно, так как для доступа к порту используются стандартные функции Windows.

Резисторы, показанные на общей схеме, в принципе можно не устанавливать, но все-таки лучше установить. Каково их назначение? Используя ТТЛ»овские входы и выходы конвертера и пятивольтное питание микроконтроллера, мы тем самым избавляемся от необходимости согласования логических уровней — все и так вполне корректно. Значит, соединения могут быть непосредственными. Но во время экспериментов бывает всякое. Например по закону подлости отвертка может упасть как раз в то место, куда она никак не могла бы упасть, и замкнуть то, что ни в коем случае нельзя замыкать. В роли «отвертки», конечно, может оказаться все, что угодно. Резисторы в этом случае иногда уменьшают последствия. Еще одно их назначение состоит в устранении возможного конфликта выходов. Дело в том, что по окончании программирования микроконтроллер переходит в обычный режим работы, и может так получиться, что его вывод, соединенный с выходом конвертера (RTS, TXD или DTR) тоже становится выходом, согласно только что записанной в МК программе. В этом случае будет очень нехорошо, если два напрямую соединенных выхода будут «бороться» — пытаться установить разные логические уровни. В такой «борьбе» кто-то может и «проиграть», а нам этого не надо.

Номиналы трех резисторов выбраны на уровне 4,3 КОм. Это касается соединений выход конвертера — вход микроконтроллера. Точность резисторов роли не играет: можно уменьшить их сопротивление до 1 КОм или увеличить до 10 КОм (но во втором случае увеличивается риск помех при использовании длинных проводов на пути к МК). Что же касается соединения вход конвертера (CTS) — выход микроконтроллера (MISO), то здесь применен резистор сопротивлением 100 Ом. Это объясняется особенностями входа использованного конвертера. Во время испытаний был использован конвертер на микросхеме PL-2303, входы которой, судя по всему, подтянуты к плюсу питания относительно низким сопротивлением (порядка нескольких сот Ом). Чтобы «перебить подтяжку» пришлось поставить резистор со столь маленьким сопротивлением. Впрочем, можно его вообще не ставить. На конвертере это всегда вход. Выходом он стать не может, а значит, конфликта выходов не будет при любом развитии событий.

Если микросхема имеет отдельный вывод AVCC для питания аналогово-цифрового преобразователя (например, ATmega8 или ATmega128), его следует соединить с выводом общего питания VCC. Некоторые микросхемы имеют более одного вывода питания VCC или более одного GND. Например, ATmega128 имеет 3 вывода GND и 2 вывода VCC. В постоянной конструкции одноименные выводы лучше соединить между собой. В нашем же случае на время программирования можно задействовать по одному выводу VCC и GND.

А вот как выглядит подключение ATtiny13. На рисунке показано назначение выводов, используемых при программировании через SPI. Рядом на фото — как временное подключение выглядит в реальности.

Кто-то может сказать, что это несерьезно — соединения на проводках. Но мы же с вами люди здравомыслящие. Наша цель состоит в том, чтобы запрограммировать микроконтроллер, затратив на это минимум времени и прочих ресурсов, а не в том, чтобы перед кем-то покрасоваться. Качество при этом не страдает. Метод «на проводках» в данном случае вполне эффективен и оправдан. Прошивка контроллера — процедура разовая, поэтому нет смысла обвешивать ее «стразиками». Если же предполагается менять прошивку в дальнейшем, не извлекая контроллер из схемы (в готовом изделии), то это учитывается в монтаже при изготовлении устройства. Обычно для этой цели устанавливается разъем (RESET, SCK, MOSI, MISO, GND), а МК может быть прошит даже после установки на плату. Но это уже творческие изыски. Мы же рассматриваем самый простой случай.

Теперь перейдем к МК ATtiny44. Здесь все примерно так же. По рисунку и фото даже новичку не составит труда разобраться с подключением. Подобно ATtiny44 можно подключать МК ATtiny24 и ATtiny84 — назначение выводов у этой троицы совпадает.

Еще один пример временного подключения контроллера для его программирования — ATmega8. Здесь выводов побольше, но принцип тот же — несколько проводков, и вот уже контроллер готов к «заливке» в него информации. Лишний черный провод на фото, идущий от вывода 13, в программировании участия не принимает. Он предназначен для снятия с него звукового сигнала после выхода МК из режима программирования. Это связано с тем, что во время отладки скрипта для «Перпетуум М» в МК закачивалась программа музыкальной шкатулки.

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

Для полноты картины посмотрим подключение микросхемы МК с большим числом «ножек». Назначение лишнего черного провода на фото, идущего от вывода 15, точно такое же, как в случае с ATmega8.

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

Прежде чем переходить к программной части, убедитесь, что драйвер конвертера USB-RS232TTL корректно установлен (проверьте диспетчер устройств Windows). Запомните или запишите номер виртуального COM-порта, появляющегося при подключении конвертера. Этот номер нужно будет вписать в текст скрипта, о котором читайте ниже.

4. Скрипт — программатор для «Перпетуум М»

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

Архив со скриптом следует распаковать в ту же папку, где находится программа perpetuum.exe. В этом случае при запуске файла perpetuum.exe на экран будет выводиться меню со списком установленных скриптов, среди которых будет строка «Программатор МК AVR» (она может быть единственной). Именно эта строка нам и потребуется.

Скрипт находится в папке PMS в файле «Программатор МК AVR.pms». Этот файл можно просматривать, изучать и править при необходимости в обычном текстовом редакторе вроде «Блокнота» Windows. Перед использованием скрипта скорее всего потребуется внести изменения в текст, связанные с настройкой порта. Для этого уточните в диспетчере устройств Windows имя используемого порта и, при необходимости, внесите соответствующую поправку в строку «ИмяПорта=»COM4″;» — вместо цифры 4 может стоять другая цифра. Также при использовании другой модели конвертера USB-RS232TTL может потребоваться изменение настроек инвертирования сигналов (строки скрипта, начинающиеся со слова «Высокий»). Проверить инвертирование сигналов конвертером USB-RS232TTL можно с помощью одного из примеров, содержащегося в инструкции к программе «Перпетуум М» (раздел функций для работы с портом).

Во вложенной папке MK_AVR находятся файлы с описаниями поддерживаемых контроллеров. Если нужного контроллера среди них не окажется, вы можете добавить нужный самостоятельно, действуя по аналогии. Возьмите за образец один из файлов, и при помощи текстового редактора введите необходимые данные, взяв их из документации на свой микроконтроллер. Главное — будьте внимательны, вводите данные без ошибок, иначе МК не запрограммируется, или запрограммируется неправильно. В исходной версии поддерживаются 6 микроконтроллеров: ATtiny13, ATtiny24, ATtiny44, ATtiny84, ATmega8 и ATmega128. В скрипте реализовано автоматическое распознавание подключенного контроллера — вручную указывать не нужно. При отсутствии считанного из МК идентификатора среди имеющихся описаний, выдается сообщение, что распознать контроллер не удалось.

В архиве со скриптом содержится также дополнительная информация. В папке «inc-файлы контроллеров AVR» находится очень полезная и обширная коллекция файлов описаний контроллеров. Эти файлы используются при написании собственных программ для МК. Еще четыре папки «MusicBox_…» содержат файлы с программой на Ассемблере и готовой к закачке в МК прошивкой отдельно для ATtiny13, ATtiny44, ATmega8 и ATmega128. Если вы уже подключили один из этих МК для программирования, как это предложено в данной статье, то можете прямо сейчас его прошить — получится музыкальная шкатулка. Об этом ниже.

При выборе в меню скриптов строчки «Программатор МК AVR», скрипт начинает исполняться. При этом он открывает порт, посылает в МК команду перехода в режим программирования, принимает подтверждение от МК об успешном переходе, запрашивает идентификатор МК и отыскивает описание данного МК по его идентификатору среди имеющихся файлов с описаниями. Если не находит нужного описания, выдает соответствеющее сообщение. Если же описание найдено, далее открывается главное меню программатора. Его скриншот вы можете видеть на рисунке 8. Далее разобраться не сложно — меню очень простое.

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

Некоторые ограничения функциональности описаны непосредственно в тексте скрипта:
//реализована запись только с нулевого адреса (Extended Segment Address Record игнорируется, LOAD OFFSET — тоже)
//порядок и непрерывность следования записей в HEX-файле не проверяется
//контрольная сумма не проверяется
Это касается работы с HEX-файлом, из которого берется код прошивки для МК. Если этот файл не искажен, проверка контрольной суммы ни на что не повлияет. Если искажен — средствами скрипта это выявить не удастся. Остальные ограничения в большинстве случаев не помешают, но иметь в виду их все-таки нужно.

5. Музыкальная шкатулка — простая поделка для начинающих

Если у вас есть один из этих микроконтроллеров: ATtiny13, ATtiny44, ATmega8 или ATmega128, вы можете легко превратить его в музыкальную шкатулку или музыкальную открытку. Для этого достаточно записать в МК соответствующую прошивку — одну из тех четырех, которые размещены в папках «MusicBox_…» в одном архиве со скриптом. Коды прошивок хранятся в файлах с расширением «.hex». Использовать ATmega128 для такой поделки, конечно, «жирновато», как и ATmega8. Но это может быть полезно для тестирования или экспериментов, иначе говоря — в учебных целях. Тексты программ на Ассемблере также прилагаются. Программы создавались не с нуля — за основу была взята программа музыкальной шкатулки из книги А.В.Белова «Микроконтроллеры AVR в радиолюбительской практике». Исходная программа претерпела ряд существенных изменений:
1. адаптирована для каждого из четырех МК: ATtiny13, ATtiny44, ATmega8 и ATmega128
2. ликвидированы кнопки — к контроллеру вообще ничего не нужно подключать, кроме питания и звукоизлучателя (мелодии воспроизводятся одна за другой в бесконечном цикле)
3. длительность каждой ноты уменьшена на длительность паузы между нотами для устранения нарушения музыкального ритма
4. подключена восьмая мелодия, незадействованная в книжной версии
5. из субъективного: некоторые «улучшайзинги» для оптимизации и более легкого восприятия алгоритма

В некоторых мелодиях слышится фальшь и даже грубые ошибки, особенно в «Улыбке» — в середине. Коды мелодий взяты из книги (а точнее — скачаны с сайта автора книги вместе с исходным asm-файлом) и не подвергались изменениям. Судя по всему, в кодировке мелодий имеются ошибки. Но это не проблема — кто «дружит» с музыкой, без труда во всем разберется и исправит.

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

Насчет конфигурационных бит. Их настройка должна соответствовать состоянию нового микроконтроллера. Если ваш МК ранее где-то использовался, нужно проверить состояние его конфигурационных бит, и, при необходимости, привести их в соответствие настройкам нового микроконтроллера. Узнать состояние конфигурационных бит нового микроконтроллера можно из документации на этот МК (раздел «Fuse Bits»). Исключение составляет ATmega128. У этого МК имеется бит M103C, который включает режим совместимости с более старым ATmega103. Активизация бита M103C сильно урезает возможности ATmega128, причем у нового МК этот бит активен. Нужно сбросить M103C в неактивное состояние. Для манипуляций с конфигурационными битами используйте соответствующий раздел меню скрипта-программатора.

Схему музыкальной шкатулки приводить нет смысла: в ней только микроконтроллер, питание и пьезозвукоизлучатель. Питание подается точно так же, как мы это проделали при программировании МК. Звукоизлучатель подключается между общим проводом (вывод GND контроллера) и одним из выводов МК, номер которого можно посмотреть в файле с ассемблерным кодом программы (*.asm). В начале текста программы для каждого МК в комментариях имеется строчка: «звуковой сигнал формируется на выводе ХХ». При завершении работы скрипта — программатора микроконтроллер выходит из режима программирования и переходит в обычный режим работы. Сразу же начинается воспроизведение мелодий. Подключив звукоизлучатель, можно это проверить. Оставлять звукоизлучатель подключенным во время программирования кристалла можно только в том случае, если звук снимается с вывода, не задействованного в SPI, иначе дополнительная емкость на выводе может помешать программированию.

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

Для начала я бы разделил начинающих микроконтроллерщиков на три условные группы:
— радиолюбители, желающие собирать готовые решения на микроконтроллерах, но не имеющие желания изучать программирование
— желающие освоить программирование и собирать конструкции на микроконтроллерах, но выбравшие наиболее простой путь — Arduino
— желающие полностью разобраться в устройстве и программирование микроконтроллеров и собирать свои собственные конструкции

Для первой группы все очень просто:
— приобрести программатор и научиться с ним работать

Для второй группы остановлюсь немного подробнее.
Arduino ориентированна на начинающих, непрофессиональных пользователей, и состоит из двух частей — программной и аппаратной.
Программная часть состоит из бесплатной программной оболочки для написания программ, их компиляции и программирования устройства.
Язык программирования — стандартный С++ с некоторыми изменениями облегчающими работу с этим языком (хотя есть возможность создавать программы или подключать готовые файлы проектов используя стандартный язык С++). Научиться программировать в Arduino очень просто (поэтому программы на Arduino называются «наброски») — весь процесс программирования сводится в основном к выбору необходимых готовых библиотек для получения конкретного результата.
Аппаратная часть состоит из готовой платы с микроконтроллером с необходимой обвязкой для нормальной работы микроконтроллера и плат расширения (шилды). Кроме того выпускается множество готовых датчиков и исполнительных устройств. Весь процесс сборки конструкции на Arduino напоминает конструктор «Лего» — выбираете необходимые платы расширения и устройства и стыкуете их с основной платой. Для загрузки программы отдельный программатор не требуется.
Arduino вещь конечно хорошая, но предназначена в основном только для тех, кто хочет собирать конструкции на микроконтроллерах, но не хочет загружать свои мозги лишними (по их мнению) знаниями (это сугубо мое мнение).

Ну а мы причислим себя к третьей группе и пойдем хотя и тернистым, но очень интересным путем.

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

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

А теперь к главному:
1. Для практических опытов нам потребуется микроконтроллер (а лучше три):
— наиболее популярные и востребованные микроконтроллеры — ATmega8A-PU и ATtiny2313A-PU, ATtiny13A- PU. Кстати, ATtiny13 очень популярный МК, и не зря его называют «малюткой» — малые возможности — но серьезные разработки.
2. Для записи программы в микроконтроллер необходим программатор:
— идеальное решение, на мой взгляд, — программатор USBASP, от которого мы к тому-же будем получать напряжение 5 Вольт для будущих конструкций.
3. Для визуальной оценки и выводов результатов работы программы необходимы средства отображения информации:
— светодиоды
— семисегментный светодиодный индикатор
— знакосинтезирующий (буквенно-цифровой) LCD дисплей
4. Для изучения процессов общения микроконтроллера с другими устройствами:
— цифровой датчик температуры DS18B20 и часы реального времени DS1307 (очень практичные устройства)
5. Кроме того нам потребуются транзисторы, резисторы, кварцевые резонаторы, конденсаторы, кнопки:
— биполярные транзисторы структуры NPN и PNP
— набор резисторов различного номинала
— кварцы (вот тут я выкинул лишнее) на 32,768 кГц, 8 МГц.
— керамические конденсаторы на 22 pF
— тактовые кнопки
6. Для сборки конструкций на микроконтроллере понадобится макетная плата для монтажа без пайки и набор перемычек к ней:
— макетная плата МВ102 (идеально иметь две такие платы — они стыкуются между собой, что очень пригодится в дальнейшем)
— соединительные перемычки к макетной плате трех типов — гибкие (мама-мама, папа-папа) и жесткие П-образной формы

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

С материальной базой разобрались, переходим ко второму вопросу.

Честно говоря, выбор языка программирования и среды разработки вопрос очень ответственный, навязывать кому-то свои предпочтения и что-то советовать дело довольно-таки трудное.
Давайте попробуем подойти к этому выбору не предвзято, чисто с практической стороны.
1. Существует два основных языка программирования микроконтроллеров — Ассемблер (язык низкого уровня) и Си (язык высокого уровня).
Если мы хотим программировать микроконтроллеры используя полностью все их возможности (а мы это хотим), то необходимо изучать эти два языка.
2. Среда разработки для программирования микроконтроллеров.
Тут выбор большой и очень много мнений. Поэтому можно сказать: «Каждая лягушка хвалит свое болото». Мне, к примеру, очень нравится малораспространенная графическая среда разработки «Algorithm Builder», и «квакать» о ее преимуществах перед другими программами я могу очень долго. Но будем делать выбор, как было сказано выше, не предвзято и практично.
Микроконтроллеры AVR выпускает фирма Atmel, она же предоставляет в наше распоряжение бесплатную среду программирования «Atmel Studio» (бывшая AVR Studio). На ней мы и остановимся.
Интегральная среда разработки (IDE — Integrated development environment) Atmel Studio позволит нам:
— писать программы как на Ассемблере, так и на Си (Почему на Си. Программа «Atmel Studio» позволяет писать программы на трех языках (О чем мы и погорим в первой статье), но есть одно но: программы на Си++ мы рассматривать не будем, по одной причине, и в следующей статье я расскажу об этом
— отладить программу
— перевести программу в машинный код (откомпилировать)
— записать программу в микроконтроллер


Теперь осталось выполнить два пункта:
1. Обзавестись каким-нибудь стартовым набором (для начала хватит и микроконтроллера ATmega8, нескольких светодиодов, пары кнопок и сопротивлений к ним).
2. Установить (именно установить, а не скачать, и с регистрацией) с официального сайта Atmel (http://www.atmel.com/ru/) программу Atmel Studio.
Программировать микроконтроллеры мы будем с использованием программатора USBASP.
Отдельной статьи по Atmel Studio я писать не буду, будем изучать ее постепенно, по мере надобности и в связке со статьями по устройству и программированию микроконтроллеров.

Вот и пришло время для первой прошивки. Данная прошивка является тестовой. Она не производит ни каких полезных действий, кроме дрыганья ножками по определенному алгоритму. Этой прошивкой можно проверить работоспособность всего микроконтроллера и портов ввода-вывода в частности.
Чтобы проверить микроконтроллер необходимо загрузить прошивку и посмотреть, что происходит на ножках. «Смотреть» можно или мультиметром, или простым пробником – светодиод последовательно с резистором 300 Ом – 1 кОм. Без резистора проверять не стоит – можно спалить порт ввода-вывода. Уровни сигналов на ножках меняются с «1» через «Z»-состояние в «0» и обратно. «Z» состояние введено в последовательность для контроля работоспособности порта в режиме входа.

Тестовая прошивка для микроконтроллера ATMega48/88/168.
Алгоритм работы прошивки ATMega48/88/168 показан на картинке (микроконтроллер установлен на описанной ранее).

Микроконтроллер работает от внутреннего генератора, поэтому нет необходимости во внешнем кварце. Ножки 9 и 10 (подключение внешнего кварца) не задействованы, на случай если там окажется внешний кварц. Также не задействованы ножки 1 (сброс) и 21(опорное напряжение для АЦП). Проверить работоспособность можно двумя способами (смотри рисунок) — смотреть изменение уровня сигналов относительно земли (GND) или относительно ножки питания (VCC).
— Тестовая прошивка для ATMega48/88/168

Тестовая прошивка для микроконтроллера ATTiny2313.
Алгоритм работы прошивки ATTiny2313 показан на картинке (микроконтроллер установлен на описанной ранее).

Микроконтроллер работает от внутреннего генератора, поэтому нет необходимости во внешнем. Ножки 4 и 5 (подключение внешнего кварца) не задействованы на случай если там окажется внешний кварц. Также не задействована ножка 1 (сброс). Проверить работоспособность можно двумя способами — смотреть изменение уровня сигналов относительно земли (GND) и относительно ножки питания (VCC).
— Тестовая прошивка для ATTiny2313

Тестовая прошивка для микроконтроллера ATTiny13.
Алгоритм работы прошивки ATTiny13 показан на картинке (микроконтроллер установлен на описанной ранее).

Микроконтроллер работает от внутреннего генератора (внешний большая роскошь для этого микроконтроллера, поэтому даже не рассматриваем). Естественно, не задействована ножка 1 (сброс). Проверяем работоспособность так же, как и у предыдущих микроконтроллеров.
— Еустовая прошивка для ATTiny13

Проверка работоспособности «Z»-состояния портов ввода-вывода.

«Z»-состояние это состояние когда ножка сконфигурирована на вход и на ней нет ни какого уровня (она как-бы болтается в воздухе ни к чему не подключена). Для того чтобы проконтролировать наличие такого состояния можно воспользоваться резисторным делителем. При уровне «1» на делителе будет напряжение питания +5v, при уровне «0» — земля 0v, а при «Z»-состоянии порт ввода-вывода перестанет вмешиваться в работу делителя и он поделит напряжение питания и мы получим +2.5v.

Для программирования я настроил среду Arduino IDE. Как известно, эта среда разработки может поддерживать дополнительные контроллеры. Например, в этой статье , я рассказывал, как программировать в Arduino IDE «народный WiFi» ESP8266. На сайте arduino.cc есть ветка, посещенная программированию ATTiny13 в среде Ардуино . У меня установлена версия 1.6.5. Скачиваю архив ATTiny core for Arduino . Распаковываю в папку c:\Program Files (x86)\Arduino\hardware\ и в Arduino IDE появляются дополнительные платы

Теперь загрузка программ. Объем памяти микропроцессора всего 1Кб и никакой загрузчик туда не поместится. Поэтому загрузка скетчей производится программатором по ISP. USBAsp, которым я программировал Atmega328 работать с тинькой не захотел. Нужна специальная прошивка программатора, с которой я возиться не захотел. Программировать микроконтроллер можно при помощи любой Ардуины . Для этого собираю такую схему:

В Arduino IDE выбираю «Файл->Образцы->ArduinoISP» и загружаю в Ардуино скетч программатора. Затем выбираю «Инструменты->Программатор->Arduino as ISP». Теперь можно загружать скетчи в тиньку. Следует отметить, что ATTiny13 core for Arduino содержит ограниченный набор функций Ардуино.

На работе у меня есть настольная елочка со световодами

В елочке стояла галогенная лампочка на 12В и моторчик, который крутит цветной круг-цветофильтр, который меняет цвет световодов. За 3 года умерли и лампочка и моторчик.

Вот я и решил восстановить эту елочку кусочком RGB-ленты управляемой ATtiny13. Съема управления лентой получилась такая:

три транзистора и резистора, линейный регулятор напряжения и собственно тинька.

Скетч представляет собой программный трехканальный ШИМ с изменением яркости по разным каналам, в результате которого лента переливается разными цветами

После этого остается только закрепить плату и ленту в корпусе елочки

Белый скотч наклеен для улучшения отражения света внутри корпуса.

3 схемы автоматического ввода резерва для дома. Ввод 1 — Ввод 2 — Генератор.

При сборке схемы автоматического ввода резерва можно выбрать три варианта. Два более простых и один посложнее.

Рассмотрим каждый из вариантов схемы поподробнее.

Простая схема АВР на 2 ввода

Простейшая схема АВР для двух однофазных вводов собирается всего лишь на одном магнитном пускателе. Для этого понадобится контактор с двумя парами контактов:

  • нормально разомкнутым
  • нормально замкнутым

Если таковых в вашем контакторе не оказалось, можно использовать специальную приставку.

Только учтите, что контакты у большинства из них не рассчитаны на большие токи. А если вы решите подключать через АВР нагрузку всего дома, то уж точно не стоит этого делать, используя блок контакты расположенные по бокам стандартных пускателей.

Для этих целей лучше выбирать аппаратуру, изначально в своей конструкции имеющую именно силовые замкнутые и разомкнутые контакты. Подойдут такие марки как VS 463-33 или ESB-63-22, МК-103 от DeKraft, КМ ИЭК.

Вот самая простая схема АВР:

Описание и принцип работы

Катушка магнитного пускателя подключается на один из вводов. В нормальном режиме напряжение поступает на катушку, она замыкает контакт КМ1-1, а контакт КМ1-2 размыкается.

SF1 и SF2 в схеме – это однополюсные автоматические выключатели.

Напряжение через контактор поступает к потребителю. Дополнительно в схеме могут быть подключены сигнальные лампы. Они визуально будут показывать какой из вводов в данный момент подключен. Немного измененная схемка с лампочками:

Если напряжение на первом вводе исчезло, контактор отпадает. Его контакты КМ1-1 размыкаются, а КМ2-1 замыкаются. Напряжение начинает поступать к потребителю с ввода №2.

Если вам в нормальном режиме просто нужно проверить работоспособность схемы, то выключите автомат SF1 и смотрите как реагирует сборка. Все ли работает исправно.

Самое главное здесь изначально проконтролировать на какой ток рассчитаны эти самые нормально замкнутые и разомкнутые контакты.

При этом обратите внимание, что эту простейшую схему можно собрать двумя способами:

  • без разрыва ноля
  • с разрывом нулевого провода

Схема ввода резерва с разрывом ноля

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

Так как основная сеть в 90% случаев выполнена с глухозаземленной нейтралью, а от генератора или ИБП идет с изолированной. Здесь объединять нулевой рабочий проводник от сети, с нулем от генератора нельзя.

Естественно, что все контакторы подключаются после счетчика kWh. QF – это модульные автоматы в щитке дома.

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

За счет нее не будет происходить автоматического переключения. Вы сами выберите для этого нужный момент, нажав ее когда потребуется. Монтируется эта кнопка SB1 параллельно катушке контактора.

Когда у вас напряжение на основном вводе не исчезает на долго, а периодически пропадает и появляется (причины могут быть разными), в этом случае не желательны постоянные переключения контакторов туда-обратно. Здесь целесообразно использовать специальную приставку к контактору типа ПВИ-12 с задержкой времени.

Схема АВР на два ввода 380В

Трехфазная схема практически аналогична однофазной.

Только особо следите за правильной фазировкой АВС. Она должна совпадать на вводе-1 с вводом-2. Иначе 3-х фазные двигатели после переключения будут крутиться в обратную сторону.

Схема АВР на 2 пускателя

Вторая схема немного посложнее. В ней используется уже два магнитных пускателя.

Допустим, у вас есть два трехфазных ввода и один потребитель. В схеме применены магнитные пускатели с 4-мя контактами:

  • 3 нормально разомкнутые
  • 1 нормально замкнутый КМ1

Катушка пускателя КМ1 подключается через фазу L3 от первого ввода и через нормально замкнутый контакт КМ2. Таким образом, когда вы подаете питание на ввод №1, катушка первого пускателя замыкается и вся нагрузка подключается к источнику напряжения №1.

Второй контактор при этом отключен, так как нормально замкнутый разъем КМ1, будет в этот момент размокнут, и питание на катушку второго пускателя поступать не будет. При исчезновении напряжения на первом вводе, отпадает контактор-1 и включается контактор-2. Потребитель остается со светом.

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

Стоит лишь исчезнуть напряжению на той фазе, которая питает катушку включения и вы легко можете получить встречное КЗ.

Можно конечно усовершенствовать всю систему, выбрав катушку контактора не на 220В, а на 380В. В этом случае будет осуществлен контроль уже по двум фазам.

Но на 100% вы все равно себя не обезопасите. А если учесть момент возможного залипания контактов, то тем более.

Кроме того, вы никак не будете защищены от слишком низкого напряжения. Пускатель №1 может отключиться, только если U на входе будет ниже 110В. Во всех остальных случаях, ваше оборудование будет продолжать получать не качественную электроэнергию, хотя казалось бы, рядом и есть второй исправный ввод.

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

  • реле напряжения
  • реле контроля фаз и т.п.

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

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

Алгоритм работы здесь следующий:

1.При неисправном вводе №1 происходит автоматическое переключение на ввод №2.
2.При отсутствии напряжения на обоих вводах осуществляется запуск генератора и переключение всей нагрузки на него.

Схема АВР на 3 ввода с генератором

Как и на чем реализовать подобный ввод резерва? Здесь можно применить схему АВР на базе AVR-02 от компании ФиФ Евроавтоматика.

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

В принципе есть смысл один раз потратиться и защитить себя и свое оборудование раз и навсегда.

AVR-02 блок ввода резерва

Данное устройство является многофункциональным и с помощью него можно построить 8 разных схем АВР. Чаще всего применяются три из них:

  • ввод№1+ввод№2
  • ввод№1+генератор
  • ввод№1+ввод№2+генератор

Рассмотрим сначала самую сложную, которая с двумя вводами и генератором. Второй ввод может быть как от отдельной ВЛ-0,4кв или непосредственно КЛ с ближайшей ТП, так и собран на аккумуляторном ИБП с гибридными инверторами.

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

Какими функциональными возможностями обладает AVR-02?

  • она управляет силовыми элементами – контакторами или пускателями. Также могут использоваться мотор приводы.
  • контролирует чередование фаз
  • контролирует синфазность вводов
  • формирует сигнал запуска генератора
  • может работать от внешней батареи 12В
  • измеряет уровень напряжений и отключает неисправную линию с низким или высоким напряжением, автоматически переводя питание на ту, где все нормально
  • формирует сигнал авария

На передней панели AVR-02 расположены:

  • двухстрочный жидкокристаллический дисплей
  • кнопки навигации
  • светодиодные индикаторы №1 и №2 – показывают подключенный ввод
  • К1,К2,К3,К4 – состояние исполнительных реле

Принцип работы AVR 02

Как же работает схема собранная на базе AVR-02? Вот основные ее элементы:

  • КМ1.1, КМ2.1, КМ3.1 – это силовые контакты пускателей
  • KV1 – реле контроля трехфазной сети
  • контакты №18,19,20 – предназначены для контроля аварийных цепей в мотор приводах 
Если произошла неисправность в мотор приводе, на них поступает напряжение и работа реле блокируется.
  • S1 – это что-то вроде кнопки, с помощью которой можно подать сигнал и принудительно заблокировать работу AVR-02 
Вдруг вам понадобится провести какие-либо пусконаладочные работы. Здесь можно использовать модульный вариант от ИЭК КМУ11.
  • SB1 – кнопка Reset 
Нужна для сброса, после поступления сигнала на контакты №18,19,20. Нажимаете ее и работа реле восстанавливается.
  • КМ4 – промежуточное реле 
Благодаря его контактам, напряжение на катушки может поступать как от двух вводов, так и от генератора. Можно использовать тип РК-1Р.

Рассмотрим три алгоритма работ и три ситуации для данного АВР.

Ввод №1 и ввод №2 исправны

Первый ввод является основным, второй – резервным. Устройство посредством контактов А1,В1,С1 через защитный автомат QF2 следит за напряжением на вводе-1.
То же самое происходит по вводу-2, через контакты А2,В2,С2.

Так как на всех этих контактах все в норме, AVR-02 должен подать напряжение на катушку КМ. Как это происходит?

Контакт 1 и 11 формируют сигнал управления посредством реле К5. Данное реле К5, если уровень напряжения нормален на обоих вводах, должно включить ввод№1.
То есть находится в том положении, как на изначальной схеме. Напряжение через него попадает на 10 контакт и идет до катушки КМ4. Это промежуточное реле. Его контакты обозначены КМ4.1 и КМ4.2

Реле срабатывает, замыкая свои контакты и напряжение через них попадает на 22-й контакт. Далее AVR включает реле К1. Через него и контакт №24 фаза достигает катушки включения КМ1. При этом другие реле К2,К3,К4 остаются разомкнутыми.

Алгоритм №2 — ввод №1 неисправен

Напряжение на вводе №1 исчезло. AVR-02 видит, что на А1,В1,С1 напряжения нет, зато на А2,В2,С2 оно есть. Поэтому К5 переключается в позицию №11.

Далее U с ввода-2 поступает через 11 на 10 и потом вся схема повторяется как было рассмотрено ранее.

Только в этом случае происходит замыкание не К1, а К2. И соответственно катушки контактора КМ2.

При этом устройство следит за тем, чтобы напряжение на №13,14,15 отсутствовало. Дабы не получилось встречного включения питания (при залипании контактов и восстановлении эл.снабжения).

Если же напряжение хотя бы на одном из разъемов 13-14-15 есть, то катушка КМ2 никогда не сработает. Это и есть защита от встречного напряжения.

АВР с автозапуском генератора

А как будет запускаться генератор, если исчезнет питание с обоих вводов? Контакт №12 служит для подключения к АВР внешнего источника питания +12В.

Когда у вас пропало напряжение на двух вводах, все контакты К1,К2,К3 получаются в разомкнутом состоянии. При этом автоматически происходит замыкание внутреннего контакта реле К4. За счет этого, формируется сигнал запуска для генератора.

Большинство генераторов с возможностью АВР, управляют заслонкой своей собственной автоматикой. Для этого им нужен только сигнал на старт. Вы его как раз и подаете.

Если у вас этого нет, то можно смастерить такую систему самостоятельно.

После подачи импульса, происходит запуск ДГУ и его прогрев. Когда он прогрелся, напряжение на реле KV1 достигает нормы. KV1 представляет из себя, что-то вроде реле защиты трехфазных двигателей.

Оно необходимо для контроля напряжения 3-х фазной сети (правильное чередование фаз и их номинальное значение). Подойдет например такое — CKF-317.

После срабатывания, реле KV1 замыкает свой контакт KV1.1 и напряжение достигает разъема №16. Также U поступает на контакт №9 (он управляет внутренними цепями AVR) и №22.

AVR это видит и подает сигнал на замыкание реле К3 и катушки КМ3. После чего включаются силовые контакты пускателя генератора КМ3.1 Вся нагрузка запитывается от генератора.

Ввод№1+генератор (резерв)

Ну и напоследок рассмотрим чаще всего применяемую схему АВР для частного дома – ввод№1+генератор.

Далеко не все имеют два независимых ввода, плюс еще и ДГУ. Зато наличие отдельно генератора у владельцев особняков, не такая уж и большая редкость.

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

При изменение параметров напряжения на выходе за его номинальные значения (резко упало или повысилось, исчезло), происходит смена источника оперативного напряжения. Контакт КМ3.1 размыкается, а контакт КМ3.2 замыкается.

Также размыкаются контакты 22 и 24. Пускатель QF2 выключается. Спустя три секунды AVR 02 дает сигнал на запуск генератора. После его прогрева, происходит замыкание контактов 22-26. Подается напряжение на катушку КМ2 и включается пускатель QF8.

Вся нагрузка переводится на генератор.

Если на первом вводе U вновь появилось или нормализовалось, то контакты 1-10 снова замыкаются и КМ3 включается. Через заданное время контакты на разъемах №22-№26 отключаются, а вслед за ними отключается и КМ2+QF8.

Опять же, спустя установленное время, происходит замыкание №22-№24, после чего включается КМ1 и QF2. Питание восстанавливается от основного ввода. При этом контакты 29-30 будут замкнуты пока генератор не охладится.

Время расхолаживания ДГУ лучше выставлять в районе 3-5 минут.

Статьи по теме

Связь положительного зубца Т в отведении aVR с краткосрочной смертностью у пациентов с острой тромбоэмболией легочной артерии

Предпосылки: Lead aVR предоставляет прогностическую информацию в различных условиях для пациентов с сердечно-сосудистыми заболеваниями. Настоящее исследование направлено на изучение прогностической ценности положительного зубца Т в отведении aVR (TaVR) для пациентов с острой тромбоэмболией легочной артерии (APE). Методы: Мы обследовали в общей сложности 412 последовательных пациентов, которые были госпитализированы с диагнозом APE в период с 2008 по 2018 год.Мы исследовали электрокардиограммы (ЭКГ) на наличие положительного TaVR и классифицировали другие аномальные результаты ЭКГ. Кроме того, были записаны клинические данные, такие как результаты эхокардиографии, и рассчитаны показатели индекса тяжести тромбоэмболии легочной артерии (PESI). Предикторы смертности через 30 дней были исследованы как клинический исход с помощью логистического регрессионного анализа. Результаты: В нашем исследовании 54 пациента (13,1%) умерли в течение 30 дней. Распространенность женского пола, застойной сердечной недостаточности, хронической обструктивной болезни легких и средние показатели PESI были значительно выше у пациентов с положительным TaVR по сравнению с пациентами без него.Систолическое артериальное давление у пациентов с положительным TaVR было значительно ниже, чем у пациентов без положительного TaVR. В многомерном регрессионном анализе; Показатели PESI (OR: 1,03; 95% CI: 1,01-1,04, p <0,01), конечный диастолический диаметр правого желудочка (RVEDD) (OR: 1,07 95% CI: 1,01-1,13, p = 0,02 ) и положительный TaVR (OR: 4,41; 95% CI: 1,63-11,96, p <0,01) независимо коррелировали со смертностью. Заключение. Положительные значения TaVR, PESI и RVEDD при поступлении в больницу могут иметь прогностическое значение у пациентов с APE.Положительный зубец T в отведении aVR может быть полезным маркером ранней стратификации риска легочной эмболии.

Ключевые слова: Острая тромбоэмболия легочной артерии; привести aVR; прогноз.

HDMI AVR 4k 120 кадров в секунду ошибка игр подтверждена Denon

Если вы планируете выбрать новый AV-ресивер с поддержкой 8k HDMI v2.1, лучше подождать немного дольше. Компания Sound United, родительская компания Denon и Marantz, подтвердила, что ее AV-ресиверы 2020 года с поддержкой 8k и 4k 120 кадров в секунду могут оказаться не такими способными или готовыми для следующего поколения устройств отображения.

В заявлении, опубликованном для Inside CI , было подтверждено: «Некоторые новые игровые устройства, поддерживающие вывод 4K / 120 Гц, могут не работать полностью с AVR Denon (или Marantz) 8K».

Проблема заключается в реализации HDMI v2.1, принятой Panasonic Solutions (часть Nuvoton Technology) и используемой в приемниках Denon и Marantz, что приводит к потере звука и изображения с некоторыми источниками видео 4k 120fps.

Признание последовало за отчетом немецкого журнала Heise (c’t), который обнаружил проблемы при тестировании устройств с Xbox Series X и видеокартой Nvidia RTX-3080 в качестве источников.

Sound United продолжает: «Вы можете обнаружить эту проблему несовместимости из-за несоответствия набора микросхем HDMI между устройствами. Если затронутая система подключена к AVR через вход HDMI 8K и настроена на вывод 4K / 120 Гц, а для параметра формата сигнала AVR 4K установлено значение «8K Enhanced», вы можете не увидеть исходное видео системы на их дисплее, и может не слышать исходный аудиосигнал системы, обработанный через AVR. Эта проблема возникает только при использовании дисплея, поддерживающего 4K / 120 Гц.

В настоящее время мы изучаем проблему и предложим окончательное решение позже. Между тем, мы хотели бы предоставить пару обходных решений, чтобы предотвратить проблему в ее текущем состоянии:

Вы можете подключить систему к дисплею напрямую через HDMI и использовать функцию ARC / eARC дисплея для передачи исходного звука обратно в AVR, используя подключенный кабель HDMI между AVR и дисплеем. Это позволит пользователям декодировать собственный аудиоформат, отправленный из источника.При использовании этого метода должна быть включена опция дисплея CEC / ARC, а также опция управления HDMI AVR и / или опция ARC AVR. В AVR этот параметр находится в графическом интерфейсе пользователя в разделе «Видео — Настройка HDMI».

Другой обходной путь — оставить или изменить видеовыход источника на 4K / 60 Гц вместо 4K / 120 Гц, пока не будет доступно постоянное решение. Это обеспечит надежную связь между источником, AVR и дисплеем. По умолчанию источник настроен на вывод с частотой 4K / 60 Гц, поэтому, если никаких изменений не было инициировано из коробки, больше ничего делать не нужно.

Приносим извинения за неудобства, и в настоящее время мы неустанно работаем над выпуском постоянного решения, чтобы вы могли наслаждаться качеством изображения 4K / 120 Гц, используя новейшие источники с вашим AVR. Скоро у нас будет обновленная информация о сроках постоянного решения. Мы ценим ваше терпение ».

Недостаток, который возникает из-за новой системы сигнализации, получившей название FRL (Fixed Rate Link), также влияет на AVR Yamaha, которые используют те же чипы, это было подтверждено. Inside CI обратился к Yamaha за комментарием.

Это официальный ответ: «Нам стало известно о проблеме, связанной с некоторыми появляющимися видеосигналами (4K / 120 Гц и т. Д.) Из определенных источников, которые могут вызвать потерю изображения и звука при прохождении через AVR. Однако с того момента, как мы впервые анонсировали наши AVR 2020 года, мы заявили, что будем поддерживать такие новые форматы в будущих обновлениях.

«Будьте уверены, что мы устраним указанную проблему в рамках этих будущих обновлений, включая постоянное решение по мере необходимости.Фактическая доступность обновлений подлежит уточнению ».

Yamaha сообщает, что затронутыми моделями являются RX-V6A, RX-V4A, TSR-700 и TSR-400.

Пока не было никаких заявлений от Onkyo или Pioneer, хотя почти наверняка они затронуты аналогичным образом.

Заслуживают ли месяцы бдительности риску Afib после AVR?

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

В соответствии с общепринятым мнением, внутрибольничная фибрилляция предсердий (Afib) или трепетание предсердий оказались очевидным явлением: такое раннее Afib не было независимым предиктором эпизодов Afib после выписки (OR 1,04, 95% ДИ 0,52–2,08), он также не предсказал комбинированный исход смерти, инсульта или повторной госпитализации в течение 2 лет (ОР 1,10, 95% ДИ 0,64–1,92).

Напротив, афибия после выписки была связана с повышенным скорректированным риском для комбинированного результата (скорректированный HR 8.90, 95% ДИ 5,02–15,74), с более чем 11-кратным превышением инсульта и, в частности, повторной госпитализации.

Это наблюдалось независимо от того, проводилась ли пациенту транскатетерная замена аортального клапана (TAVR) или хирургическая замена аортального клапана (SAVR), по словам Иоанны Космиду, доктора медицинских наук, Медицинского центра Ирвинга Колумбийского университета в Нью-Йорке, и ее коллег. запись в JACC: Сердечно-сосудистые вмешательства .

Результаты исследования

«подразумевают, что бдительный мониторинг сердечного ритма и частая клиническая оценка имеют решающее значение в течение нескольких месяцев после процедуры индексации», — заключили авторы.

«Кроме того, поскольку сложные структурные вмешательства все чаще тестируются в группах с низким хирургическим риском, распознавание и надлежащее лечение легко идентифицируемых факторов, таких как POAF [послеоперационная Afib], которые могут отрицательно повлиять на общий благоприятный клинический прогноз, становятся все более важными и должны быть в авангарде пред- и постпроцедурной стратегии », — заявили они.

У PARTNER 3 ранняя послеоперационная афибия произошла у 4,3% пациентов после TAVR и у 36,6% пациентов после SAVR ( P <0.0001) - аналогично тому, что наблюдалось в когортах повышенного риска.

Между выпиской и 1 годом поздняя афиблия была обнаружена в 3,9% по сравнению с 10,7%, соответственно ( P <0,0001). Почти половина поздних событий Afib была идентифицирована в течение 30 дней после процедуры индексации.

«Является ли поздний POAF прямым фактором риска или маркером тяжелого или хронического атеротромботического процесса, в отличие от раннего POAF, который может изолированно быть самоограничивающим явлением, не может быть полностью определено в настоящем исследовании», Группа Космиду признала это.

В сопроводительной редакционной статье Марвин Энг, доктор медицины, и двое его коллег из Медицинского центра Университета Баннера в Фениксе согласились с тем, что «необходимо уделять особое внимание пациентам с высоким риском афибантии».

«В целом, ранний и поздний POAF будет продолжать преследовать пациентов, особенно тех, кто проходит курс лечения от порока сердца. Победа в войне против POAF требует бдительности в обнаружении и лечении. Несомненно, настоящая статья служит призывом к действию для улучшения инновации и качество профилактики афибантами при процедурах, особенно при кардиохирургических вмешательствах », — написала группа Энга.

ПАРТНЕР 3 участника, включенных в настоящее исследование, были 781 пациентом с низким риском и тяжелым стенозом аорты, перенесшим TAVR с клапаном Sapien 3 (n = 415) или хирургическим вмешательством (n = 366).

Примерно половина пациентов с ранней послеоперационной афибией была выписана на лечение каким-либо антикоагулянтом. Авторы не сообщили подробно о типе антикоагуляции и качестве полученной терапии, отметила команда Энга.

«Без подробной информации о профилактических мерах мы можем только предполагать, что профилактика POAF, возможно, не была оптимальной, учитывая высокий уровень ранней POAF», — заявили редакторы.

Космиду и его коллеги также предупредили, что их нынешний анализ не был заранее определен и что афибия регистрировалась только в случае клинических проявлений или улавливания на ЭКГ. Более того, частота нежелательных явлений была низкой, что указывает на необходимость более масштабных исследований для подтверждения результатов.

Главный вывод PARTNER 3 заключался в том, что TAVR оказался лучше SAVR с точки зрения результатов лечения в течение 1 года для пациентов с низким хирургическим риском. Однако к 2 годам в группе TAVR было непропорционально больше смертей и инсультов, так что оставшиеся различия между группами, по-видимому, были вызваны только повторными госпитализациями.

  • Николь Лу — репортер MedPage Today, где она освещает новости кардиологии и другие разработки в медицине. Подписаться

Раскрытие информации

PARTNER 3 был профинансирован Edwards Lifesciences.

Космиду получил институциональную исследовательскую поддержку от Amgen и является консультантом Санофи.

Eng — клинический наблюдатель в Edwards Lifesciences и Medtronic, а также консультант AngioDynamics.

Пожалуйста, включите JavaScript, чтобы просматривать комментарии от Disqus.

Denon AVR-2307CI обзор: Denon AVR-2307CI

в

Не так давно, а точнее в мае 2006 г., мы вручили ресиверу Denon AVR-2807 награду «Выбор редакции». Мы рекламировали его как «Лучшую отдачу для вашего домашнего кинотеатра в 2006 году», но с недавно представленным AVR-2307CI (800 долларов США) компания повысила свою ставку.Denon AVR-2307CI продается по цене на 300 долларов меньше, и каким-то образом ему удается сохранить многие из лучших функций AVR-2807, включая возможность преобразования аналогового композитного видео, S-Video и компонентных источников в полностью цифровой выход HDMI; высокоточная автокалибровка динамика и встроенная поддержка спутникового радио XM. Так что вырезал Денон? Новая модель немного менее мощная, здесь несколько меньше возможностей подключения, а пульт дистанционного управления нигде не так удобен для пользователя. Но это придирки по сравнению с двумя раздражающими ограничениями HDMI 2307CI, которые могут превратить повседневную работу в настоящее раздражение для тех, у кого нет передовых телевизоров высокой четкости.Что касается внешнего вида, Denon AVR-2307CI не преподносит сюрпризов: это еще один черный ящик, практически неотличимый от других ресиверов Denon средней ценовой категории. Размеры также средние: 6,75 дюйма в высоту, 17,1 в ширину и 16,4 в глубину, а вес — 28,6 фунта. Расположение элементов управления и регуляторов хорошее, хотя у 2307 нет откидной передней панели, которая есть на более дорогих моделях, поэтому небольшое количество кнопок и входы A / V на передней панели видны для всеобщего обозрения. .

Конечно, в большинстве случаев вы будете использовать пульт дистанционного управления AVR-2307CI. Он идентичен металлически-серому блоку, который Denon упаковывает со своими системами домашнего кинотеатра в коробке, двусторонней палочкой управления с большинством (но не всеми) повседневными элементами управления на передней панели и обычно менее используемыми элементами управления на передней панели. задняя сторона. Проблема в том, что такое разделение управления «или / или» не так хорошо работает для A / V-ресивера. Например, селекторы Phono, CD и Surround расположены на нижней стороне под навесной дверцей, которую мы обнаружили совершенно неудобной для открывания.Нам также пришлось изучить руководство пользователя, чтобы узнать, как получить доступ к многоканальному входу AVR-2307CI с задней стороны пульта дистанционного управления. С точки зрения эргономики, это не наш любимый пульт Denon, но он все же лучше, чем ужасные мембранные пульты с мягким прикосновением, которые использовались несколько лет назад.

Ах, но навигация по ручной настройке динамиков проста, а автоматическая настройка / калибровка даже лучше. Нам особенно нравится, что она менее требовательна, чем программа Denon Audyssey MultEQxt Room EQ, которую мы использовали на более дорогих моделях, начиная с AVR-2807.Этот приемник требует, чтобы пользователь переместил калибровочный микрофон в несколько разных мест в комнате. Мы выполнили автокалибровку AVR-2307CI всего за несколько минут. Система ручного-полосного эквалайзера настраивается для отдельных групп динамиков: передний левый / правый, центральный и объемный. Хотя с автоматическим эквалайзером все в порядке, мы предпочли результаты, полученные вручную. Denon AVR-2307CI — это ресивер мощностью семь раз по 100 ватт, предлагающий полный выбор режимов Dolby, DTS и проприетарных режимов объемного звучания.Возможности подключения включают пять A / V входов, включая набор на передней панели, каждый из которых предлагает композитные или S-Video разъемы. Помимо трех наборов компонентных входов, есть два входа HDMI.

Что касается тонкостей HDMI, AVR-2307CI представляет собой неоднозначную картину. С другой стороны, разъемы HDMI 1.1 не имеют проблем с передачей видео 1080p, поэтому они будут хорошо работать с новейшими проигрывателями HD-DVD и Blu-ray, включая PlayStation 3. И поскольку соединения HDMI могут передавать как HD-видео, так и многоканальный звук, вам понадобится всего один кабель, идущий от DVD, HD-DVD или проигрывателя Blu-ray.(AVR-2307CI может передавать несжатые звуковые дорожки в формате Linear PCM на диски Blu-ray и HD-DVD, а также декодировать битовые потоки Dolby Digital и DTS.) Ресивер также предлагает преобразование видео со всех своих аналоговых видеовходов (композитный, S -Видео, компонентный) на HDMI.

Пока все хорошо, но у 2307CI отсутствуют две другие части уравнения, функции, которые сделали AVR-2807 таким простым в использовании. Он не предлагает деинтерлейсинг (преобразование 480i в 480p), поэтому все аналоговое видео остается в исходном разрешении.(Это отличается от того, что Denon первоначально сказал нам — и что мы первоначально сообщили — когда эта модель была впервые анонсирована.) Для источников компонентного видео, которые могут включать HD-видео, но для любых композитных или S-Video источников, включая такие распространенные устройства, как видеомагнитофоны, видеокамеры, плееры iPod и старые игровые приставки — это 480i. Кроме того, экранный дисплей AVR-2307CI показывает только разрешение 480i через соединение HDMI. Оба ограничения 480i — отсутствие деинтерлейсинга и нехватка экранного дисплея при разрешении HD через HDMI — означают, что HDMI-совместимость AVR-2307CI сомнительна со многими старыми и некоторыми текущими HDTV, которые не могут принимать видео 480i через свои Входы HDMI.Например, если вы подключите AVR-2307CI к Samsung HP-R4252, плазменной модели 2005 года, или LG 42LB1DRA, 42-дюймовому плоскому ЖК-дисплею 2006 года, через HDMI, вы получите пустой экран при переключении. к источнику видео 480i или при доступе к экранному дисплею, поскольку ни одна из моделей не может принимать видеопоток 480i через HDMI. Это означает, что вам нужно будет запустить второй видеовыход — композитный, S-Video или компонентный — на телевизор, просто чтобы увидеть эти источники не-HD видео или получить доступ к экранному меню. Этой боли у вас не было бы, если бы вы использовали более дешевых конкурентов, таких как JVC RX-D412B или Onkyo TX-SR674, которые предлагают функцию деинтерлейсинга.

Для источников без HDMI стандартных цифровых аудиоподключений более чем достаточно: вы получаете шесть входов (четыре оптических, включая разъем на передней панели, и два коаксиальных) и один оптический выход. Также имеется три набора аналоговых стереовходов: один — это выделенная аудиосистема, а другой — петля для записи. Также предоставляется набор 7.1-канальных аналоговых входов для проигрывателей SACD / DVD-Audio или Blu-ray и HD-DVD. Если вам когда-нибудь понадобится больше, чем 100 Вт на канал AVR-2307, то 7.Выходы 1-канального предусилителя можно подключить к более мощному многоканальному усилителю. И есть не только набор выходов на колонки B, вы также можете переназначить два тыловых канала объемного звучания для использования в качестве колонок Зоны 2.

CI в названии AVR-2307CI означает Custom Integration , поэтому Denon предлагает широкий выбор вариантов многозонного подключения. Они включают в себя стереофонические аудиовыходы на Зону 2 для стереофонического усилителя мощности (но без видеовыходов), два триггера на 12 В и вход и выход инфракрасного порта.Порт RS-232 можно использовать с пользовательскими системами домашней автоматизации.

АКШ, хирургическая АРВ может быть безопасной, несмотря на тяжесть сезона гриппа, продолжительность

31 декабря 2020 г.

2 мин чтения

Источник / Раскрытие информации
Опубликовано:

Информации о раскрытии информации: Mori не сообщает о существенных финансовых раскрытиях.Пожалуйста, просмотрите исследование для раскрытия финансовой информации всех других авторов.

ДОБАВИТЬ ТЕМУ В ОПОВЕЩЕНИЯ ПО ЭЛЕКТРОННОЙ ПОЧТЕ

Получать электронное письмо, когда новые статьи публикуются на

Укажите свой адрес электронной почты, чтобы получать сообщения о публикации новых статей. Подписывайся Нам не удалось обработать ваш запрос.Пожалуйста, попробуйте позже. Если проблема не исчезнет, ​​обратитесь по адресу [email protected]

Вернуться в Healio

Согласно исследованию, опубликованному в JAMA Network Open ,

АКШ или хирургические процедуры AVR могут быть безопасными для выполнения даже в худший из сезонов гриппа.

«Среди пожилых людей, перенесших плановые операции на коронарных и аортальных клапанах во время сезонов гриппа, не было устойчивой связи между тяжестью сезона гриппа и риском смерти или повторной госпитализации», Макото Мори, MD , хирург-резидент в больнице Написали Центр исследования и оценки результатов при больнице Йель-Нью-Хейвен и его коллеги.«Для процедур АКШ увеличение сезонной тяжести может быть связано с немного более высоким риском 30-дневной смертности».

Источник: Adobe Stock.

Используя данные о платных услугах по программе Medicare, исследователи выявили 313 159 человек, перенесших АКШ (средний возраст 73 года; 71% мужчин) и 135 550 человек, перенесших хирургическую АРВ (средний возраст 76 лет; 61% мужчин) во время сезонов гриппа. (С 1 ноября по 31 марта) в период с 2003 по 2017 год.

«Пациенты, выздоравливающие после серьезной операции, становятся все более восприимчивыми к респираторным осложнениям, но остается неизвестным, связаны ли перенесенные операции в более тяжелые сезоны гриппа с более высоким риском респираторных осложнений», писали исследователи.

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

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

«Поскольку плановые процедуры могут быть отложены для снижения потенциального риска, мы оценили связь между тяжестью сезонов гриппа и рисками смертности и повторной госпитализации после планового коронарного шунтирования (АКШ) и хирургической замены аортального клапана», — заявили исследователи. написал.

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

Исследователи отметили, что пациенты, перенесшие АКШ во время умеренного (OR = 1,06; 95% CI, 1,01–1,11) и тяжелого (OR = 1,06; 95% CI, 1,01–1,12) сезонов гриппа, имели больший риск 30-дневной смертности по сравнению с с пациентами, которым выполнялись процедуры в умеренные сезоны ( P = 0,03).

Среди пациентов, перенесших хирургическую ЗАК, 30-дневный риск смертности не был значительно выше при умеренном (OR = 1.03; 95% ДИ, 0,96–1,1) или тяжелые (OR = 1,01; 95% ДИ, 0,94–1,06) сезоны гриппа по сравнению с умеренными сезонами ( P = 0,66).

Более того, риск повторной госпитализации по всем причинам не был значительно выше при АКШ или хирургической ЗАК, выполненной во время умеренной (ОШ для АКШ = 0,99; 95% ДИ, 0,97-1,01; ОШ для хирургической ЗКР = 0,99; 95% ДИ, 0,96. -1,02) или сезоны тяжелого гриппа (OR для АКШ = 0,92; 95% ДИ, 0,9-0,95; OR для хирургической AVR = 0,93; 95% ДИ, 0,9-0,96) по сравнению с сезонами умеренного гриппа.

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

ДОБАВИТЬ ТЕМУ В ОПОВЕЩЕНИЯ ПО ЭЛЕКТРОННОЙ ПОЧТЕ

Получать электронное письмо, когда новые статьи публикуются на

Укажите свой адрес электронной почты, чтобы получать сообщения о публикации новых статей.Подписывайся Нам не удалось обработать ваш запрос. Пожалуйста, попробуйте позже. Если проблема не исчезнет, ​​обратитесь по адресу [email protected]

Вернуться в Healio

Ресивер Denon Avr 2112 Ci Novo Na Caixa

68 результатов

Категории
Áudio (43)
Acessórios e Peças Náuticos (7)
Controles Remover (3)
Outros (14)
Custo do frete
Gratis (17)
Pagamento
Sem juros (40)
Condição
Novo (23)
Novo (23)
9020 Локализация
Санта-Катарина (24)
Сан-Паулу (21)
Рио-де-Жанейро (12)
Минас-Жерайс (3)
Сеара (2)
Парана (2)
(1) Мато Гроссо
Федеральный округ (1)
Параиба (1)
Ver todos
Preço
Até 35 (20) реалов
35 реалов за 2 реала.000 (24)
Mais de R $ 2.000 (24)
Outras pessoas pesquisaram
  1. em

    6x

    5 реалов по 83 сентаво 5,83 реалов

    sem juros
  2. em

    6x с 83 сентаво R $ 5,83

    сем юро
  3. em

    6x

    6 реалов с 28 сентаво 6,28 реалов

  4. em

    6x

    5 реалов с 67 сентаво 5,67 реалов

    сем юро
  5. em

    6x

    5 реалов с 67 сентаво 5,67 реалов

    сем юро
  6. em

    12x

    13 реалов с 25 сентаво 13,25 реалов

    сем юро
  7. em

    6x

    5 реалов с 83 сентаво 5,83 реалов

    sem juros
  8. em

    6x

    5 реалов с 67 сентаво 5,67 реалов

    sem juros
  9. em

    6x

    5 реалов с 83 сентаво 5,83 реалов

    sem juros
  10. em

    4x

    6 реалов с 57 сентаво 6,57 реалов

  11. em

    6x

    5 реалов с 67 сентаво R $ 5,67

    сем юро
  12. em

    6x

    5 реалов с 83 сентаво 5,83 реалов

    семейств
  13. 36 реалов с 55 сентаво 36,55 реалов

    em

    6x

    6 реалов 09 сентаво R $ 6,09

    сем юро
  14. em

    12x

    370 реалов с 94 сентаво 370,94 реалов

  15. em

    6x

    5 реалов с 83 сентаво 5,83 реалов

    сем юро
  16. em

    6x

    5 реалов с 83 сентаво 5,83 реалов

    сем юро
  17. 29 реалов с 90 сентаво 29,90 реалов

    реалов

    5x

    5 реалов с 98 сентаво 5,98 реалов

    семейств
  18. em

    6x

    5 реалов с 83 сентаво 5,83 реалов

    семейств R $
  19. em

    6x

    5 реалов с 83 сентаво 5,83 реалов

    семейств
  20. em

    6x

    5 реалов с 83 сентаво 5,83

    реалов юрос
  21. em

    6x

    5 реалов с 83 сентаво R $ 5,83

    сем юро
  22. em

    6x

    5 реалов с 83 сентаво 5,83 реалов

    семейств
  23. em

    12x

    436 реалов с 69 сентаво 436,69 реалов

    Usado

  24. em

    12x

    79 реалов 17 сентаво 79,17 реалов

    сем юро

    Usado

  25. em

    12x

    305 реалов с 15 сентаво 305,15 реалов

    Usado

  26. em

    12x

    166 реалов с 67 сентаво 166,67

    реалов sem juros

    Usado

  27. em

    12x

    283 реалов с 33 сентаво 283,33 реалов

    sem juros

    Usado

  28. em

    12x

    190 реалов с 72 сентаво 190,72 реалов

    Usado

  29. Usado

  30. Usado

  31. em

    12x

    810 реалов с 55 сентаво 810,55 реалов

    Usado

  32. em

    12x

    166 реалов с 67 сентаво 166,67 реалов

    сентаво

    Usado

  33. em

    12x

    28 реалов с 51 сентаво 28,51 реалов

    Usado

  34. em

    12x

    191 реалов с 67 сентаво 191,67 реалов

    семейств

    Usado

  35. em

    12x

    108 реалов с 33 сентаво 108 реалов , 33

    sem juros

    Usado

  36. em

    12x

    450 реалов с 09 сентаво R $ 450,09

    Usado

  37. em

    12x

    190 реалов с 72 сентаво 190,72 реалов

    Usado

  38. em

    12x

    286 реалов с 08 сентаво 286,08 реалов

    Usado

  39. em

    12x

    333 реалов с 75 сентаво 333,75

    реалов Usado

  40. em

    12x

    286 реалов с 08 сентаво 286,08 реалов

    Usado

  41. em

    12x

    213 реалов с 49 сентаво 213,49 реалов

    Usado

O frete grátis está sujeito ao peso, preço e distância do envio.

NAD представляет свой новый AVR T 778 и усилитель CI 8-120 DSP на выставке CEDIA 2019


(9 сентября 2019 г.) NAD Electronics представила совершенно новый 9-канальный AV-ресивер. Обозначенный как T 778 (2999 долларов США), теперь он является флагманской моделью AVR компании. Согласно NAD, усилительная секция ресивера отличается повышенной эффективностью благодаря усовершенствованию запатентованной компанией технологии Hybrid Digital. Он рассчитан на выдачу мощных 9 x 100 Вт на канал FTC (9 x 80 Вт FDP), обладая при этом способностью декодировать до 7.1,4 канала иммерсивного звука Dolby Atmos. Передняя сторона устройства оснащена великолепным сенсорным TFT-дисплеем, а задняя — впечатляющими возможностями подключения ввода и модульной конструкцией NAD для будущих технических обновлений.

«T 778 сочетает в себе качество звука с самыми передовыми цифровыми технологиями, такими как BluOS, MQA, Bluetooth aptX HD и Dirac Live в удобном для пользователя формате». прокомментировал Грег Стидсен, технический директор NAD. «NAD твердо верит, что есть много людей, для которых музыка всегда на первом месте.Учитывая репутацию компании NAD как производителя высококачественной продукции, было очевидно, что T 778 придется по душе самым требовательным аудиофилам и видеофилам. Затем MDC помогает защитить их инвестиции на долгие годы ».

CI 8-120 DSP (2999 долларов США) — это мощный усилитель, разработанный для распределенных аудиосистем. Его встроенное усиление обеспечивает доступ к 8 x 120 Вт на канал (8 Ом) с мостовой выходной мощностью 4 x 200 Вт. Компактная конструкция усилителя высотой 1U упрощает интеграцию в стоечные системы, а веб-элементы управления позволяют настраиваемым интеграторам получать удаленный доступ к таким функциям, как калибровка DSP, IP-управление и диагностика.

Для получения дополнительной информации прочтите полные пресс-релизы Ленбрука (ниже).

NAD Previews T 778 Reference AVR
CEDIA Expo, Денвер, Колорадо, 9 сентября 2019 г. — NAD Electronics, уважаемый производитель высокопроизводительных аудио / видео компонентов, представила свой новый флагманский 9-канальный AVR здесь — T 778. Новейшая эталонная модель NAD, хорошо известная своей репутацией высокой стоимости / высокой производительности в категории AVR, основывается на этом наследии с расширением их непоколебимой философии реальной производительности, простоты эксплуатации и возможности модернизации в будущем.T 778 будет доступен в ноябре этого года по рекомендованной розничной цене 2999 долларов США

T 778 оснащен последними разработками в области гибридной цифровой технологии NAD для создания 9 сильноточных / мощных каналов усиления с повышенной эффективностью. Разработанный с учетом подхода NAD к полному раскрытию информации о номинальной мощности, NAD AVR консервативно обеспечивает 9 x 100 Вт FTC и 9 x 80 Вт FDP, все каналы работают с номинальными искажениями. Для гибкости каналы усилителя можно настроить для использования для объемного звука или звука второй зоны.Бесшумный черный фон и взрывная динамика, обеспечиваемые этой технологией усилителя, добавляют реалистичный реализм, драматизм и волнение всей вашей музыке и фильмам.

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

  • 9 каналов новейшей технологии гибридных цифровых усилителей NAD
  • Новый сенсорный экран и улучшенная эргономика для удобного управления
  • Сквозное видео 4K UHD
  • Поддержка BluOS в высоком разрешении Потоковая передача по сети
  • Двусторонняя связь Bluetooth aptX HD
  • Dirac Live Room Correction
  • DirectDigital DAC- ESS Sabre DAC с декодированием MQA Декодирование MQA доступно на всех цифровых входах
  • AirPlay2
  • MDC (Modular Design Construction) предлагает возможность обновления до будущих цифровых форматов по мере их появления.Предусмотрено два слота MDC.
  • CI friendly — последовательный порт управления RS232. Вход / выход триггера.
  • ИК-вход с функцией обучения

NAD сочетает интеллектуальные решения CI с аудиофильскими характеристиками в усилителе CI 8-120 DSP для распределенного звука
CEDIA Expo, Денвер, Колорадо, 9 сентября 2019 г.
— NAD Electronics, признанный производитель высокопроизводительных аудио / видео компонентов , анонсировала совершенно новый усовершенствованный усилитель, предназначенный непосредственно для высокопроизводительных распределенных аудиосистем.Представленный здесь, на CEDIA, CI 8-120 DSP (2999 долларов США) обеспечивает мощность 8 x 120 Вт на канал с уникальными функциями и будет доступен в ноябре.

В то время как CI 8-120 обеспечивает консервативную мощность 8 x 120 Вт на канал при сопротивлении 8 Ом, его также можно подключить к 4 x 200 Вт на канал при сопротивлении 8 Ом. Динамическая мощность IHF в мостовом режиме составляет 4 x 350 Вт на канал при 4 Ом. Платформа гибридного цифрового усилителя обеспечивает стабильную и эффективную мощность при высоком токе в компактной стойке высотой 1U.Чтобы обеспечить такой уровень производительности, в CI 8-120 DSP используется модифицированная версия проверенного выходного каскада Hypex UcD. Это обеспечивает большую мощность с чрезвычайно низкими искажениями и шумом в слышимом диапазоне. Каждая деталь этого дизайна была тщательно продумана, чтобы выжать все до последней капли. Разработанный для удовлетворения требований мира CI, он был создан для работы с длинными кабелями и сложной нагрузкой на динамики.

Сетевые доступные функции
Новейшее поколение усилителей-распределителей NAD будет предлагать фирменные звуковые характеристики наряду с множеством технологических функций, востребованных на сегодняшнем рынке индивидуальной интеграции.Например, CI 8-120 DSP позволяет установщикам программировать и управлять множеством функций, к которым можно получить доступ через веб-браузер. Пользовательский веб-интерфейс может управлять калибровкой DSP и управлением IP, а также предлагать несколько полезных диагностических функций. Как только установщик получил доступ к устройству из сети, усилитель можно настроить, откалибровать, а также перезагрузить, сбросить до заводских настроек, восстановить пользовательские настройки и обновить прошивку.


  • 8 каналов X 120 Вт при 8 Ом
  • Мостовое соединение с 4 каналами X 200 Вт при 8 Ом
  • Известная звуковая сигнатура NAD
  • Высота стойки 1U — экономия ценного места в стойке
  • Доступ к платформе через IP-контроль
  • Пользовательское веб-приложение для управления калибровкой DSP, IP-управления и др.
  • Эффективно справляется с длинными кабелями и тяжелыми нагрузками на громкоговорители
  • Двойные глобальные входы / выходы
  • 0.

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *