Двухцветный анимированный индикатор прохода «стрелка»/«крестик» на AVR

Антон Юрьев, Украина, г. Донецк

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

Вебинар Экономичные решения МЕAN WELL для надежных разработок - 30.09.2021

Не секрет, что на поиск в Internet нужной схемы на МК и программы к ней можно безрезультатно потратить уйму времени. Приходится браться за освоение МК самому. И нет ничего лучше, чем собрать «с нуля» яркое динамичное устройство «два в одном», изображенное на Рисунке 1.

Анимированный индикатор прохода на LED матрице 8×8
Рисунок 1. Анимированный индикатор прохода на светодиодной матрице 8×8.

В современном мире RGB двухцветной светодиодной матрицей никого не удивить. Но это не мешает производителям оптоэлектроники выпускать широкий спектр одно- и двухцветных светодиодных матриц прямоугольной формы. Типовые размеры от 10 мм до 100 мм, «пикселизация» 5×7 или 8×8 точек. Например, матрицы GNM-23881BEG, RL-M2388SGBW, TBA2311SURKCGKWA, SLD2388BNA5BD являются однотипными представителями семейства двухцветных матриц. Размер этих сборок около 60×60 мм, «разрешение» 8×8 точек с диаметром светодиодов 5 мм и общим анодом в строке.

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

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

Динамическая индикация зеленой стрелки на двухцветной матрице 8×8
Рисунок 2. Динамическая индикация зеленой стрелки на двухцветной матрице 8×8.

На Рисунке 3 показана та же матрица, на которую выводится красный крестик. В каждый отдельный момент времени адресуется какой-либо столбец и несколько строк. Какие именно светодиоды сейчас включены, зависит от текущего двоичного слова на выводах 221, 192, 163, 134, 35, 66, 97, 138 матрицы и «засвеченного» столбца (верхний индекс соответствует естественному порядку строк, обозначенному в datasheet матрицы). 

Динамическая индикация красного крестика на двухцветной матрице 8×8
Рисунок 3. Динамическая индикация красного крестика на двухцветной матрице 8×8.

Обратите внимание на выводы 24 (23), 21 (20), … , 7 (8), 10 (11) матрицы, которые выделяются черным цветом. Во время работы при переборе столбцов они должны замыкаться на «землю», обеспечивая путь току через светодиоды (от одного до восьми светодиодов столбца могут «делить» общий сток). Ввиду этого может показаться несколько некорректным, что на рисунках при адресации столбцов в двоичном слове «пробегает» логическая единица. Конечно же, там должен быть ноль. Но для МК – это логическая единица, что станет ясно из схемы ниже.

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

Для управления такой матрицей понадобятся:

1) верхние ключи, подключающие строки к ИП;
2) нижние ключи, отвечающие за коммутацию катодов светодиодов на общий провод питания;
3) раздельное управление ключами на МК.

На Рисунке 4 показана принципиальная схема управления отдельным светодиодом строки/столбца на дискретных элементах.

Управление светодиодом

Рисунок 4. Управление светодиодом

На первый взгляд схема на Рисунке 4 может показаться избыточной. Но это нет так. Нижний ключ образует пару Дарлингтона, а верхний – сбалансированный каскад Шиклаи. На верхнем ключе происходит преобразование логического уровня сигнала управления МК «вверх», а на нижнем – «вниз», т.е. инверсия. Таким образом, за счет составных ключей достигается:

а) согласование выводов МК с сильноточными ключами питания светодиодов;
б) инверсия управляющего сигнала на нижнем ключе;
в) уменьшение количества элементов на плате, так как сборки Дарлингтона и Шиклаи выпускаются в виде интегральных микросхем на 2, 4, 7, 8 каналов и допускают прямое подключение к выводам МК.

На Рисунке 5 приведена принципиальная схема устройства индикации. 

Управление светодиодом
Кликните для увеличения

Рисунок 5. Принципиальная схема анимированного индикатора прохода на AVR.

В схеме на Рисунке 5 использованы следующие компоненты:

  • МК Atmega48PA-AU (SMD корпус TQFP32),
  • две микросхемы ULN2803 (8-канальные сборки Дарлингтона в корпусах SO18-300),
  • микросхема 74HC595 (сдвиговый регистр в корпусе SO16-150),
  • стабилизатор LD1117-5.0 или 7805 (в SOT223 или другом SMD корпусе),
  • любая двухцветная светодиодная матрица из перечисленных выше, например, распространенная RL-M2388SGBW,
  • транзисторы BC807-16 (PNP, 8 штук в корпусах SOT23),
  • транзисторы BC847B (NPN, 9 штук в корпусах SOT23),
  • стабилитрон BZV55-C4V7 (корпус SOD80),
  • два электролитических конденсатора 220 мкФ × 25 В,
  • резисторы в корпусах 1206 различных номиналов (см. схему на Рисунке 5),
  • керамические конденсаторы в корпусах 1206 различных номиналов (см. схему).
  • любой шестиконтактный разъем, подходящий для имеющегося ISP программатора МК Atmel AVR (чаще всего штырьки PLS),
  • прямой винтовой клеммник на плату с тремя контактами.

Индикатор прохода изначально предназначен для работы с турникетами на проходных и автоматическими дверями, оборудованными электрическими замками с централизованным управлением. Это означает, что сигнал на смену изображения стрелка/крестик поступает от автоматизированной модульной системы контроля доступа, или же какой-либо кнопки/переключателя. В данной схеме используется один сигнальный провод, который подтягивается к питанию в случае, когда проход закрыт – состояние «Нет» прохода (красный крестик), и к общему проводу, когда проход разрешен – «Да» (зеленая стрелка). По аналогии с опросом кнопки, МК постоянно проверяет текущее состояние. Для защиты входа МК применен транзистор со стабилитроном в цепи базы (см. схему на Рисунке 5).

Далее коснемся непосредственно алгоритма работы индикатора. Программа МК реализует машину состояний на операторах switch/case. При этом аппаратные прерывания таймера вызывают сканирование столбцов матрицы с табличным поиском содержимого строк. Программа написана с использованием AVR Studio 4.18 [1] и бесплатного компилятора WinAVR [2]. Использованию этих инструментов посвящено много обзоров и литературы, например [3]. На Рисунке 6 показана блок-схема программы.

Блок-схема программы управления индикатором

Рисунок 6. Блок-схема программы управления индикатором.

По завершении настройки портов и таймера, выполняемой после старта МК, запускается основной цикл while(). В связи с тем, что устройство достаточно простое, опрос состояний и анимация изображений реализованы непосредственно в бесконечном цикле. Развертка изображений по кадрам происходит в обработчике прерываний Timer2 при переполнении. Частота прерываний около 480 Гц, что дает частоту сканирования столбцов матрицы 480/8 = 60 Гц. Это минимальная частота мерцаний светодиодов, незаметная для человеческого глаза.
МК тактируется от внутреннего RC-генератора с частотой 8 МГц. На самом деле, такая высокая частота не нужна. Но в выбранном МК Timer2 имеет предделитель тактовой частоты на 64, что с учетом разрядности таймера (256 отсчетов) дает «удобную» частоту срабатываний, равную 8000000/64/256 = 488 Гц.

Изображения, формируемые на матрице, задаются табличным способом в виде двоичных слов (см. пример Листинга 1), но есть некоторые отличия массивов стрелки и крестика. Поскольку анимированное движение стрелки можно организовать простым сдвигом по таблице строк (Листинг 1) с единичным шагом и последующим зацикливанием, требуется массив типа char всего из 8 + 3 элементов, дающий целых 11 кадров (3 пустых строки нужны для разрыва между бегущими стрелками). Но в случае с крестиком потребуется массив минимум из 40 слов, хранящий 5 и более кадров из 8 строк. То есть, шаг между кадрами равен восьми, а в остальном отличий нет.

Листинг 1. Массив строк для отрисовки стрелки

char drawing_matrix0[0x0B] = 
{
    0b00011000,
    0b00111100,
    0b01111110,
    0b11111111,
    0b00011000,
    0b00011000,
    0b00011000,
    0b00011000,
    0b00000000,
    0b00000000,
    0b00000000   
};

Обработчик прерываний таймера, в зависимости от текущего состояния, вызывает одну из функций отрисовки изображений show_cross() или show_arrow() (см. Листинг 2). Задача функций одинаковая – вычислить индекс строки в соответствующем массиве, выбрать слово по этому адресу, вывести его на сдвиговый регистр и «зажечь» нужный столбец матрицы. После этого инкрементируется номер текущего столбца матрицы, который будет использован в функции при следующем обращении.

Листинг 2. Обработчик прерываний таймера Timer2

 ISR(TIMER2_OVF_vect) 
 {
     switch(global_state_flag
    {       case(0x00):
       {          show_cross();
          break;
       }       case(0x01):
       {          show_arrow();
          break;
       }
    }
 }
 void show_arrow(void)
 {   char index0 = column_number + shift_index;
     if(index0 >= drawing_matrix0_size)
        index0 = index0 - drawing_matrix0_size;
      PORTB = 0x00;                               //Все каналы ULN2803 отключены
      hc595_light_diode(drawing_matrix0[index0]); //Выводим строку
      PORTB |= _BV(column_number);                //Зажигаем столбец
      column_number++;                            //Наращиваем текущий номер столбца
      if(column_number >= max_LEDs_column)
        column_number = 0x00;
 } 

Анимация изображений происходит в главном цикле вызовом функций animate_cross() или animate_arrow(), в зависимости от текущего состояния (см. исходный код). Задача этих функций тоже одинаковая – выдержать установленный интервал времени между кадрами, а затем перейти к следующему кадру изображения. При этом используется стандартная библиотечная функция задержки _delay_ms().

Ниже приведены ссылки на исходный код программы управления индикатором, схема в формате Proteus 7.10, а также «упрощенная» схема, пригодная для моделирования. Упрощенная схема удобна для отладки программы, т.к. использование аналоговых моделей светодиодов (их в матрице 128) требует больших вычислительных мощностей при моделировании в реальном времени. Стандартный подход в ISIS Proteus для схем индикации – использование цифровых моделей светодиодов, что «облегчает» работу интерактивного симулятора (но делает невозможным одновременное использование аналоговых ключей).

Программа легко переносится на любой контроллер серии AVR, и может быть изменена для анимации произвольных изображений, заданных в простой и понятной табличной форме. Некоторые функции в программе почти «зеркальны», что расточительно по отношению к памяти МК. На самом деле даже этот небольшой программный код можно сократить, используя для отрисовки одну общую функцию, указатели на массивы и еще один таймер для выдержек времени. Но поскольку используется двухцветная светодиодная матрица, для наглядности исходный код оставлен «как есть» и снабжен подробными комментариями. После компиляции программа занимает 800 байт, что оставляет в Atmega48p незанятыми больше 3 кБ Flash памяти. При симуляции упрощенной схемы в Proteus следует указать путь к файлу *.hex прошивки МК, находящемуся в папке с программой.

Замечания

  1. В схеме можно использовать микросхемы в любых корпусах и транзисторы любых подходящих типов. Планарные элементы стоят обычно дешевле и занимают меньше места на плате. Единственное, на что нужно обратить внимание – это тип резисторов R9 – R16. В зависимости от напряжения ИП и тока светодиодов, на них может рассеиваться большая мощность.
     
  2. Выбор такой элементной базы обусловлен широкой доступностью и желанием минимизировать размеры печатной платы. Для снижения стоимости пришлось отказаться от интегральных сборок верхних ключей, в качестве которых можно было бы использовать микросхемы UDN2981, TD62783, или аналогичные. Но они стоят в несколько раз дороже сборок Дарлингтона и не всегда доступны. По тем же причинам выбран распространенный микроконтроллер с явно недостаточным количеством выводов. Но это легко компенсируется применением в качестве расширителя портов микросхемы жесткой логики 74HC595.
     
  3. Вследствие использования динамической индикации со скважностью 8:1, яркость свечения светодиодов (и матрицы в целом) не будет соответствовать справочным данным. Для указанных выше матриц при токе 20 мА сила света отдельного светодиода равна 8 – 15 мКд. Следовательно, нужно увеличивать ток через светодиоды, не превышая допустимое импульсное значение для выбранной матрицы (100 – 160 мА в течение 100 – 150 мкс). Подбором резисторов R9 – R16 добиваются, чтобы ток отдельного светодиода в импульсе не превышал этого значения, а период развертки соответствовал допустимой длительности импульса. Но можно отказаться от использования малоэффективной свтодиодной матрицы, набрав ее вручную распайкой 128 сверхярких светодиодов. Поэтому для удобства разводки печатной платы на принципиальной схеме матрица собрана на дискретных светодиодах. Размерность матрицы также можно увеличить, используя МК с большим количеством выводов или дополнительные расширители портов 74HC595.
     
  4. Следует упомянуть микросхемы многоканальных токовых драйверов, которые можно использовать в схеме. Это могут быть MBI5026, STP16CP05, или аналогичные приборы. Ввиду того, что в схеме присутствует родственное им по интерфейсу управления устройство – регистр с последовательной загрузкой, – можно легко переписать исходный код и, соответственно, изменить схему по желанию. Но все же, такие драйверы «заточены» для устройств со статической индикацией.
     
  5. В зависимости от цвета свечения светодиода, падение напряжения на нем может быть от 1.5 В до 3 В. Но выбор ИП также зависит от рабочего напряжения МК. В схеме применен стандартный стабилизатор 5 В, падение напряжения на котором составляет 1 – 2 В. Это означает, что ИП нужно выбирать с запасом не только по току, но и по напряжению. В данном случае подойдет ИП с напряжением 8 В и выше.
     
  6. Кроме упомянутых приложений индикатор может использоваться в системах визуального оповещения при эвакуации, или автономно, как рекламное средство.
     
  7. На Рисунке 7 показан работающий макет индикатора, собранный по схеме на Рисунке 5.

Макет индикатора прохода на двухцветной LED матрице

Рисунок 7. Макет индикатора прохода на двухцветной LED матрице

Ссылки

1. Среда разработки Atmel AVR Studio 4.18 на сайте производителя.
2. GCC компилятор WinAVR.
3. Ю.А. Шпак. Программирование на языке С для AVR и PIC микроконтроллеров - посмотреть.

Загрузки

Исходный код программы микроконтроллера на Си (AVR Studio + WinAVR) – скачать.
Принципиальная схема в программе Proteus 7.10 – скачать.
«Упрощенная» принципиальная схема для моделирования в Proteus 7.10 – скачать.

Изготовление 1-4 слойных печатных плат за $2

Синхронизатор тактового сигнала с двумя цифровыми контурами ФАПЧ AD9546 от Analog Devices
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения:Полный вариант обсуждения »
  • Древняя конструкция на основе двухцветной матрицы... Прототип (еще на AT89C52) с 2004года пылится у моего знакомого - Гарика Cимоняна в макетной РИА "Центр объявлений" (т./ф.:(062) 345-14-62) только тот прототип (см.приложенную схемку) - полноцветный модуль экрана с мультипликацией, а вот более поздняя версия той безделицы здесь валяется: [url]http://radiokot.ru/forum/download/file.php?id=93485[/url] в теме [url]http://radiokot.ru/forum/viewtopic.php?f=2&t=14123&start=80[/url] С уважением, БОРИС tel 095-8212399 e-mail [email]cv2004a@bigmir.net[/email] :p
  • Bob51, видимо Вы не прочли [I]"аннотацию"[/I]. Вас, опытного разработчика, должно было отпугнуть «начинающим осваивать МК». Но раз так, вот моё мнение. - Может быть, для кого-то и схема УЧПУ 2Р22 понятна без слов, на ощупь :-) Это и пример того, как элементная база делает устройство древним. - А что же тут [B]древнего[/B]? - И приведённые Вами ссылки вовсе не относятся к теме. Что общего в назначении между часами для кухни и этим устройством? Явно устаревшие AT89С/S52, рекомендованные Вами, найти сегодня проблематично. Atmega48 стоит 1.2$ на опте, так что цена явно не критерий. - Конечно, стабилизация тока светодиодов нужна, и об этом (как и многом другом) сказано в замечаниях к материалу. Но делать это (тут) не так как Вы, на LM317. Лучше уж поставить многоканальную специализированную МС. - Это не бегущая строка, тут не нужна масштабируемость, и, как следствие, а) гальваническая развязка, б) часы реального времени, в) термодатчик, г) внешняя память, д) та или иная линия передачи данных, е) цифровая связь с внешним терминалом и многое другое. Схем бегущих строк полно (уж эта тема себя не исчерпает). Цель данной статьи вовсе не в этом. - В схеме в пристёжке выше нет ничего полноцветного, та же RED/GREEN матрица. Объективно, разница в цене между RGB (10-20$) и обыкновенной RG (5-7$) матрицами существенна. - Если уж и говорить о полноцветной графике, то есть для этого специализированные МС, другие принципы формирования изображений, в целом - сложные модульные системы на сверхярких светодиодах, и прочее, и прочее. Материал посвящён общим принципам работы устройств с динамической индикацией и формирует некий кругозор. Поэтому, безусловно, полезны ссылки на гибкие «глобальные» модульные решения, призванные покрыть все потребности рынка рекламной продукции. Но всё же, не стоит утверждать, что освоенная некогда Вами схема и её вариации вдруг становятся [B]древними[/B] – поверьте, есть масса других квалифицированных разработчиков со своими взглядами на схемотехнику, опытом, [B]текущей задачей[/B], а главное - [B]клиентурой[/B], в постоянном поиске которой все мы нуждаемся. Для этого есть целая наука - маркетинг, призванная, кроме прочего, выдумывать названия наподобие "[B]ядра[/B]" для, казалось бы, простых схем. Всё это выходит за рамки описанного устройства. Я считаю, Вы согласитесь – не всякий может стартовать с RGB видеоэкрана. Просто незачем. И для того, кто нуждается в reference design или только собирается сделать электронику своей профессией – материал в самый раз.
  • Ежли токмо для начинающих...Да и то... Некоторые размышления: "Что общего в назначении между часами для кухни и этим устройством?" система развертки растра - два блока по 8 бит при 4х "верхних" ключах = одноцветная матрица 8*8, при 8 ключиках - полный аналог 8*8 красный+зеленый+желтый "Явно устаревшие AT89С/S52, рекомендованные Вами, найти сегодня проблематично." МК на основе MCS51 производятся всеми ведущими производителями МК (ATMEL, MICROCHIP, ZILOG, SILABS и многими другими). Насчет найти... Наверно мы в разных городах живем... ;) Микросхема AT89S52-24PU, произв. Atmel - всего-то по 11,2 гривны в рознице (данные из типовых прайсов). Да и, в принципе, речь идет о преимуществе выполнения схемы на 40-выводном кристалле (включая также и 40-выводные "совместимые" с AT89S52 по разводке ATmega8515 и ATmega162), без дополнительных затрат времени на обслуживание экрана (сдвигового регистра) - посему наверно и получается возможность работать с ШИМ 64-128 градаций с всеми комбинациями между полным красным, желтым и полным зеленым + градация уровня между соседними строками. Ведь по-сути данная конструкция всего лишь одноэлементная бегущая строка. На ту же тему уже есть громадное количество применений, в том числе, и последовательный (побуквенный) вывод сообщения (а не только символа или картинки, котроые гораздо проще изготовить в виде специализированой мнемонической панели без всякой "динамики"). Кроме того, именно по структуре "ядра" соответствующего семейства МК, наиболее оптимальным вариантом для индикаторов матричного (растрового) вида из "легкодоступных" МК является MCS51 (на матрице 8*8 или 8*16), лучший результат можно получить на PIC18Fxxxxx, ну а для гурманов - PIC24Fxxxx. А вот выбор AVRки не самый удачный... Однако эти особенности заметны только для читающих даташиты и владеющих ассемблером... Си, к сожалению, "скрывает" критические мелочи. Хотя гораздо удобнее для обслуживания сложных программ (типа самодельных ОС).
  • Я приветствую полемику в духе «тезис-антитезис-синтез». И понимаю, что это утяжеляет дискуссию массой второстепенной и повторяющейся информации. Но только вот никто не прячет от поклонников Си ассемблерный код (он всегда на виду), никто не запрещает читать datasheets (а кто их не читает?), использовать побитовые операции, аппаратный/программный ШИМ и прочие свойства МК. Эффективность программы на Си во многом определяется не фундаментальными отличиями самого языка, а программистом, его знанием особенностей того или иного компилятора и возможностей языка. И конечно, «максимально» загрузив МК, кто-то будет цепляться за каждый такт, пытаясь припомнить всё из книг «Искусство программирования…», «Алгоритмические трюки…», «Эффективные алгоритмы…», «Стиль программирования…» и т.д. В целом же, связь между качеством программы и исходным языком субъективна и косвенна. А потому, найдётся тот, кто не будет ломать голову над алгоритмом, возьмёт МК не глядя на аргументы предельного соответствия той или иной архитектуры поставленной задаче. Абстрагируясь, часто для единичных экземпляров и в опытных партиях стоимость комплектовки не имеет особого значения (многие меня поймут). В этих случаях живём по принципу «есть задача – есть решение». Не глядя на стек, команды сдвига, условные переходы, побитовую арифметику – на сколько легко можно объяснить низкоуровневый код? Документировать его? Портировать на другую платформу (если уж зашла речь о RTOS)? Bob51, у меня практический вопрос по схеме в пристёжке первого сообщения. Там где регенераторы линий Rx, Tx на оптронах A1 – A3. Какое максимальное соотношение длина линии cвязи / скорость устойчивой передачи Вы получали с 4N35? Есть аналогичная задача, интересен опыт.
  • Для 4n35 использовался самодельный протокол с побитовым квитированием (пока аппаратный модуль использовать не требовалось) скорость не слишком высокая, но для коротеньких блоков данных меня вполне удовлетворяла, тем более, что не требовался контроль вида проверки crc даже при передачи данных для программатора (ПК- самоделка) и cогласований по быстродействию передающей и приемной систем. Технически (макетом) проверялось порядка 25-30 метров. Для работы с аппаратным блоком лучше использовать 6N135/6N136/6N137 или аналогичные. Изначально применялся в древние времена для загрузки аппаратного имитатора ПЗУ к КР1816ВЕ51 из ПК вида УМК :D , затем в более поздних версиях программаторов ( [url]http://www.cosmedtech.ru/other-schemes[/url] схемки [url]http://www.cosmedtech.ru/schemes/VROM.pdf[/url] и [url]http://www.cosmedtech.ru/schemes/prog_at89s_vol1a.pdf[/url] ) и рекламщитах. Ежли чего более детально - там вроде был телефон - звони да приходи поболтать. :) Документирование, описание и прернос исходников с одной платформы на другую в пределах отработанного (mcs51-atmega/attiny-pic10/pic12/pic16/pic18) на ассемблере не слишком-то и сложно, но... при одном условии - все имеющиеся системы и компиляторы подогнаны под единое понимание. То же касается и Си, если работать с несколькими семействами "на равных" и без фанатизма почитателей конкретного клана. :D
  • Меня интересовала предельная скорость для недифференциальной линии передачи при очевидных ограничениях быстродействия самого оптрона и величины тока в линии. В принципе, до сих пор интересен практический потолок и какие-то расчётные зависимости. Признаться, никогда не встречал информации по этому вопросу, кроме практических примеров Да, выбор оптронов сегодня как никогда широк. От классических до специализированных высокоскоростных и цифровых (с усилителями), не считая цифровых изоляторов на других принципах (например Si87xx и т.п.) и малопотребляющих (по входу) микросхем (4n45, многое из HCPL, ACPL, те же АОТ162).
  • За основу бралась 20-мА токовая петля и возможная скорость вывода (при программонм выводе) самого МК - в принципе позже это стало называться SPI. Только в связи с большой разницей в быстродействии устройств была добавлена линия обратного квитирования. Вот по такому принципу см.приложение. Рассчетов по вопросам быстродействия никаких не делалось - основная задача - простейший гальванбарьер + обеспечение корректной передачи исполняемых кодов программ без сложных вычислительных "наворотов" (самый первый образец имитатора вообще никаких МК не имел - аппаратный загрузчик ПЗУ типа РФ5 "на рассыпухе" с передачей управления прикладному МК после полной загрузки кодов программы). Затем понравилось - так этот метод и прижился. Но в самих схемах закладывалась возможность работы Rx/Tx без переделки печаток. Пока за ненадобностью отложено "в ящик" - проводки сейчас "не в моде". :) А насчет предельной скорости так она на оптоволокне... ;) Да и с к у к о т а сейчас... Народ или в "верха" полез (ARМы глодать) или в примитив ударился. :cool:
  • Примитив никому не нужен, только если себе. Не знаю как на Украине, но в РФ только успевай поворачиваться. Конечно к Вам никто и не постучиться случайно. И бесполезны обьявления , что я такой хороший. Вроде работа находится случайно и надолго, но прослеживается закономерность. Надо уметь всё и на любую тему. Область электроники естественно. Краем правда цепляет мех обработку, чертежи. Очень похоже, когда горе-рыбак ничего не ловит, то червь не тот, то поклёвка не такая, место не прикормлено. Да пора бы обзавестись клиентурой. Лет вам уже не мало. Место прикормить. Чтобы шли на имя. Конструкции, даже простые, должны работать безукоризнено!!! Да и обратил внимание на тенденцию использования ПЛК. Резко снижает затраты. Стоимость сейчас их упала и резко упрощается монтаж и эксплуатация упрощается. Возможность подстройки работы программы самим пользователем. Только не думайте что у меня дорога устлана розами. В последний раз в документации на ПЛК споткнулся о конкретный ляп. Думал всё сначала и на другой элементной базе. Но в 5 дней одолел. Просто время задержки для перехода в режим надо было увеличить в 100 раз. Думайте , сударь. И будет точно нескучно.
Полный вариант обсуждения »