|
Как подключить LCD к МК, Atmega16 |
|
|
|
Jun 2 2009, 20:19
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
INTECH E0812 это же всего лишь стекло с выводами. К нему контроллер LCD какой-либо нужно. Причем без мультиплексирования, т.к. управление у E0812 - статическое. В простейшем случае можно кучкой элементов с логической функцией XOR-ов обойтись. Но элементов нужно по количеству сегментов этого LCD, т.е. не менее 23 штуки. 6 корпусов 74HC86 наверное подойдут. На один из входов каждого элемента XOR подается частота (меандр) несколько десятков-сотен Гц до единиц кГц. На второй вход каждого элемента XOR подается информация о сегменте включен/выключен. Вывод COM индикатора подключается к выходу 24-го элемента XOR. Сигнал на информационном входе этого 24-го элемента будет определять полярность информационных входов (прямой/инверсный) остальных 23-х элементов XOR. Для того, чтобы сократить количество управляющих выводов, можно 3 корпуса 74HC595 поставить перед 74HC86. Уровень напряжения питания 74HC86, будет определять контраст изображения этого LCD.
|
|
|
|
|
Jun 2 2009, 20:56
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(rezident @ Jun 3 2009, 00:19)  Причем без мультиплексирования, т.к. управление у E0812 - статическое. В простейшем случае можно кучкой элементов с логической функцией XOR-ов обойтись. В простейшем случае такие LCD управляются микросхемками типа AY0438 от микрочипа(дорого...), ну или еще были всякие PcfXXXX от филипса, правда что из этого сейчас можно купить хз... ЗЫ: AY0438 таки можно купить: http://www.symmetron.ru/cgi-bin/search.cgi...amp;radio=sklad
|
|
|
|
|
Jun 2 2009, 23:22
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(rezident @ Jun 2 2009, 23:19)  Для того, чтобы сократить количество управляющих выводов, можно 3 корпуса 74HC595 поставить перед 74HC86. Уровень напряжения питания 74HC86, будет определять контраст изображения этого LCD. А можно обойтись и без 74HC86, перегружая 74HC595 инверсным значением с частотой 30...50Гц. Общий провод (подложку, COM) также подключить к одному из выходов 74HC595.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jun 3 2009, 01:56
|
Частый гость
 
Группа: Свой
Сообщений: 127
Регистрация: 4-04-07
Из: Ижевск
Пользователь №: 26 773

|
Цитата(klin-2006 @ Jun 3 2009, 00:13)  Подскажите пожалуйста как подключить LCD (нужно только 3 цифры) к МК ATmega16. Рисую принципиалку, непонятно какую ножку к какой подключать. ЖКИ взял INTECH E0812. Здравствуйте. Если есть свободные 23 лапы, то можно так. На схеме использован AT90S4414 в связке с ITS-E0803 и программным управлением.
|
|
|
|
|
Jun 3 2009, 06:28
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 15-05-09
Пользователь №: 49 109

|
Вот еще непонятно, я к МК подклячаю еще интерфейс и ножки rxd и txd задействованы, и к lcd их тоже нужно подключить. Можно с одной ножки на 2 микросхемы подключить или нет?
|
|
|
|
|
Jun 3 2009, 07:41
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(klin-2006 @ Jun 3 2009, 09:28)  и ножки rxd и txd задействованы, и к lcd их тоже нужно подключить. Зачем? Если вы решили идти путем, предлженным akl, то индикатор можно подключать к любым ножкам, которые могут быть выходами. Но больше к этим ногам ничего подключать нельзя.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jun 3 2009, 14:24
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 15-05-09
Пользователь №: 49 109

|
Решил взять ЖКИ FDCC0801A фирмы Fordata со встроенным контроллером – SPLC780D.
|
|
|
|
|
Jun 4 2009, 14:07
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 15-05-09
Пользователь №: 49 109

|
В принципиалке нарисовал микросхему ЖКИ FDCC0801A соединил с МК Atmega16, а преподаватель говорит, ты что будешь на плату LCD устанавливать? Так что тогда надо, вместо микросхемы разъем рисовать?
Сообщение отредактировал klin-2006 - Jun 4 2009, 14:08
|
|
|
|
|
Jun 4 2009, 18:06
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 15-05-09
Пользователь №: 49 109

|
Нарисовал принципиальную электрическую схему, только не знаю правильно или нет. Может кто-нибудь посмотреть, проверить? Пожалуйста. Принцип работы: Имеются 2 аналоговых датчика температуры DS600 (разьемы X1, X2), которые опрашивает МК Atmega16 (DD1 (со встроенным АЦП)), в нем происходят необходимые действия, затем с МК поступает значение температуры на LCD FDCC0801A фирмы Fordata со встроенным контроллером – SPLC780D (разьем X6), также МК сравнивает измеренную температуру с заданной, если она входит в заданный диапазон, то цикл повторяется, если меньше заданной, то формируется управляющий сигнал (напряжение) по ПИД-закону и подается через таймер ОСn (ШИМ) через гальваническую развязку DD2 (ADUM1401) на исполнительный элемент (разьем X4). Также необходимо передавать значения текущей температуры и сигнал о нештатной ситуации на ПК оператору через интерфейс RS-485 (микросхема DD3 adm485 с выходом на разьем X4). Разьем X2 питание с DA1 (7805L).
Сообщение отредактировал klin-2006 - Jun 4 2009, 18:12
Эскизы прикрепленных изображений
|
|
|
|
|
Jun 4 2009, 21:30
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(klin-2006 @ Jun 5 2009, 00:06)  Нарисовал принципиальную электрическую схему, только не знаю правильно или нет. Может кто-нибудь посмотреть, проверить? Явная ошибка только в подключении DD2. На выводы VDD1 и VDD2 нужно подавать питание. Причем на VDD2 другое, отлИчное от тех +5В, что имеются на схеме, гальванически изолированное от него. Т.е. как минимум DC/DC 5В->5В не хватает. А во всем остальном, если учитывать, что это студенческая работа и "в железе" реализовываться не будет (или будет?  ), то сойдет. Хотя, на мой взгляд, при наличии локальной индикации в схеме не хватает локального устройства ввода - клавиатуры, пускай бы даже из трех-четырех-шести кнопок. Кстати, из R4 лучше pull-down сделать, а не pull-up как сейчас. В противном случае R4 вообще не нужен (бесполезен).
|
|
|
|
|
Jun 4 2009, 21:59
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Добавлю: - Не хватает емкостей на питании процессора, вход Reset процессора не подтянут к питанию, не хватает разъема внутрисхемного программирования (не будете же вы использовать процессор в DIP-корпусе, да еще и в панельке  ). - У разъема X4 цепи подписаны как для RS-232C, а не для RS-485. - Цепь питания процессора и датчиков подписана как Vcc у разъемов датчиков, но не соединена с +5в. - Индикатор можно перекинуть на PORTB. Если не будете перекидывать - не забудьте при программировании снять фуз JTAGEN (поиск по форуму объяснит - почему). - Vee индикатора должна быть подключена через резистор к земле, а не к питанию. Хотя совсем правильно было бы подключить ее к движку подстроечного резистора, а крайние выводы резистора - к земле и питанию. - Если подсветка не используется, то выводы 15 и 16 индикатора можно вообще не подключать, если используется - то вывод 16 надо подключать не к земле, а к питанию через резистор. А совсем хорошо - 16 к питанию напрямую, а между 15 и землей поставить источник тока на транзисторе (иначе будет неприятное мерцание при резких изменениях напряжения питания или тока потребления схемы).
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jun 5 2009, 07:05
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 15-05-09
Пользователь №: 49 109

|
Цитата(XVR @ Jun 5 2009, 01:23)  ADUM1401 включен неправильно - нафига ты ему входные и выходные сигналы вместо входа и выхода на питание посадил? RS485 тоже рекомендуется гальванически развязать, хз куда его воткнут  А какие pin'ы тогда у ADUM1401 входные и выходные, я на гальваническую развязку как я понял подаю же напряжение в виде ШИМ? Цитата(rezident @ Jun 5 2009, 01:30)  Явная ошибка только в подключении DD2. На выводы VDD1 и VDD2 нужно подавать питание. Причем на VDD2 другое, отлИчное от тех +5В, что имеются на схеме, гальванически изолированное от него. Т.е. как минимум DC/DC 5В->5В не хватает. А во всем остальном, если учитывать, что это студенческая работа и "в железе" реализовываться не будет (или будет?  ), то сойдет. Хотя, на мой взгляд, при наличии локальной индикации в схеме не хватает локального устройства ввода - клавиатуры, пускай бы даже из трех-четырех-шести кнопок. Кстати, из R4 лучше pull-down сделать, а не pull-up как сейчас. В противном случае R4 вообще не нужен (бесполезен). Да, в железе реализовываться это не будет. А чтобы питание VDD2 отличалась от VDD1, что нужно между ножкой VDD2 и питанием поставить? Подскажите где можно найти схему подключения простого устройства ввода - клавиатуры к МК? Вроде все исправил кроме того что ниже и гальванической развязки Цитата(Сергей Борщ @ Jun 5 2009, 01:59)  - Не хватает емкостей на питании процессора, не хватает разъема внутрисхемного программирования (не будете же вы использовать процессор в DIP-корпусе, да еще и в панельке  ). непонял, что такое разъем внутрисхемного программирования, и куда он подключается? Про емкости на питание: сколько необходимо емкостей? я подумал просто поставить одну емкость между ножкой vcc на МК и +5В. Так будет правильно? Насчет источника тока, тоже сам чтото соорудил, проверьте пожалуйста (на 2-х транзисторах). Цитата(Сергей Борщ @ Jun 5 2009, 01:59)  - А совсем хорошо - 16 к питанию напрямую, а между 15 и землей поставить источник тока на транзисторе (иначе будет неприятное мерцание при резких изменениях напряжения питания или тока потребления схемы).
Сообщение отредактировал klin-2006 - Jun 5 2009, 07:07
Эскизы прикрепленных изображений
|
|
|
|
|
Jun 5 2009, 07:38
|
Частый гость
 
Группа: Свой
Сообщений: 127
Регистрация: 4-04-07
Из: Ижевск
Пользователь №: 26 773

|
Здравствуйте. Для ADUM1401 3,4,5 входы, а 14, 13,12 соответствующие выходы
В качестве DC-DC можно установить SPRL
SPR01.pdf ( 55.6 килобайт )
Кол-во скачиваний: 148Не пренебрегайте советом гальванической развязки RS485, нарисуйте ADM2483.
adm2483.pdf ( 434.05 килобайт )
Кол-во скачиваний: 341Источник тока можно заменить резистором.
|
|
|
|
|
Jun 5 2009, 08:58
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата(klin-2006 @ Jun 5 2009, 11:05)  А какие pin'ы тогда у ADUM1401 входные и выходные, я на гальваническую развязку как я понял подаю же напряжение в виде ШИМ? Можете рассматривать ADUM как буферный элемент. Вход у него IA выход OA. Питания с каждой стороны должны быть свои. Гальваническая развязка для того и делается, что бы гальванически развязать 2 цепи, соответственно и питания у этих цепей должны быть гальванически развязанны. Кстати, 4х канальный ADUM здесь явно избыточен, достаточно будет одно канального (ADUM1100) Можно взять ADUM со встроенным DC-DC (ADUM6132), тогда отдельное развязанное питание не понадобится Цитата А чтобы питание VDD2 отличалась от VDD1, что нужно между ножкой VDD2 и питанием поставить? Батарейку Цитата непонял, что такое разъем внутрисхемного программирования, и куда он подключается? Про емкости на питание: сколько необходимо емкостей? я подумал просто поставить одну емкость между ножкой vcc на МК и +5В. Так будет правильно? Нет. Нужно по 1му конденсатору на КАЖДУЮ м/сх, за исключением ADUM - для него 2 шт (по одному на каждое питание)
|
|
|
|
|
Jun 5 2009, 10:34
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 15-05-09
Пользователь №: 49 109

|
Цитата(XVR @ Jun 5 2009, 12:58)  Можно взять ADUM со встроенным DC-DC (ADUM6132), тогда отдельное развязанное питание не понадобится То есть я подключаю к 1 ножке +5В через емкость, 2 и 8 ножку цепляю на землю, на 4 входной сигнал, с 12 ножки выходит выходной сигнал. К 16 ножке тоже +5В через емкость? 15, 14 и 9 на землю? Здраствуйте Цитата(akl @ Jun 5 2009, 11:38)  Не пренебрегайте советом гальванической развязки RS485, нарисуйте ADM2483. к 1 ножке подключается питание +5В через емкость, 2 и 8 идет на землю, 3, 4, 5 и 6 на МК, 9 и 15 на землю, 12 и 13 на разьем. А вот к 16 надо свое питание да? SPR01 это что-то вроде блока питания? через него нужно 16 ножку питать? Цитата(akl @ Jun 5 2009, 11:38)  Источник тока можно заменить резистором. просто с 15 вывода разъема X6 через один резистор на землю?
Сообщение отредактировал klin-2006 - Jun 5 2009, 10:35
Эскизы прикрепленных изображений
|
|
|
|
|
Jun 5 2009, 10:42
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(klin-2006 @ Jun 5 2009, 10:05)  непонял, что такое разъем внутрисхемного программирования, и куда он подключается? Это разъем для программирования MK прямо на плате, не вынимая (выпаивая) его. Сигналы должны быть описаны в даташите в разделе Serial Programming. Используются 6 проводов - +5в, земля, MISO, MOSI, SCK, RESET. Цитата(klin-2006 @ Jun 5 2009, 10:05)  Про емкости на питание: сколько необходимо емкостей? я подумал просто поставить одну емкость между ножкой vcc на МК и +5В. Так будет правильно? Да, для таких низкочастотных схем - одна емкость на каждый вход питания. Цитата(klin-2006 @ Jun 5 2009, 10:05)  Насчет источника тока, тоже сам чтото соорудил, проверьте пожалуйста (на 2-х транзисторах). м... Я имел ввиду несколько другую схему. В вашей можно убрать R7, R8 и VT2. Ток задается R11. В моей ток задается R1.
Эскизы прикрепленных изображений
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jun 5 2009, 11:23
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 15-05-09
Пользователь №: 49 109

|
Цитата(Сергей Борщ @ Jun 5 2009, 14:42)  Это разъем для программирования MK прямо на плате, не вынимая (выпаивая) его. Сигналы должны быть описаны в даташите в разделе Serial Programming. Используются 6 проводов - +5в, земля, MISO, MOSI, SCK, RESET. а XTAL1 не надо использовать? если надо, то соединяться нужно между кварцевым генератором и ножкой XTAL1? и насчет reset: он же подключен к питанию. Или можно тоже к нему подсоедениться?
Сообщение отредактировал klin-2006 - Jun 5 2009, 11:25
|
|
|
|
|
Jun 5 2009, 12:55
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 15-05-09
Пользователь №: 49 109

|
Цитата(klin-2006 @ Jun 5 2009, 15:23)  а XTAL1 не надо использовать? если надо, то соединяться нужно между кварцевым генератором и ножкой XTAL1? и насчет reset: он же подключен к питанию. Или можно тоже к нему подсоедениться? С внутрисхемным разъемом программирования разобрался. Осталось разобраться только с микросхемами ADM2483 и ADUM6132.
Сообщение отредактировал klin-2006 - Jun 5 2009, 13:03
Эскизы прикрепленных изображений
|
|
|
|
|
Jun 5 2009, 14:12
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 15-05-09
Пользователь №: 49 109

|
Вы уж извините меня за может для кого-то простые вопросы, просто вся проблема в том, что я не знаю английского языка, т.к. изучаю немецкий, и даташит мне особо не помошник.
|
|
|
|
|
Jun 5 2009, 16:49
|

Частый гость
 
Группа: Участник
Сообщений: 174
Регистрация: 8-12-06
Из: Волгоград
Пользователь №: 23 286

|
Цитата(klin-2006 @ Jun 5 2009, 16:55)  С внутрисхемным разъемом программирования разобрался. Осталось разобраться только с микросхемами ADM2483 и ADUM6132. позвольте и мне добавить.. Между +5В и Vdd конденсатор ставить не надо (в приведенной схеме), соединить напрямую. И также и между Viso и +5В - соединяется напрямую.
--------------------
"Батарейки в комплект не входят" :P
|
|
|
|
|
Jun 5 2009, 17:03
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 15-05-09
Пользователь №: 49 109

|
Цитата(XVR @ Jun 5 2009, 19:56)  Для ADUM6132: - Концы VDD и VDDL (1 и 3) объединить и повесить на +5В
- Между объединенными концами VDD и VDDL и землей повесить блокировочный конденсатор
- Концы VISO и VDDA объединить, между ними и GNDISO повесить блокировочный конденсатор
- Земли GND и GNDISO разорвать
В остальном правильно то есть как я понял это будет выглядеть так Так какое все же питание нужно подводить к Vdd2 микросхемы ADM2483, и еще к ножке PV той же микросхемы подводить что-нибудь нужно?
Сообщение отредактировал klin-2006 - Jun 5 2009, 17:07
Эскизы прикрепленных изображений
|
|
|
|
|
Jun 5 2009, 18:06
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата(klin-2006 @ Jun 5 2009, 21:03)  то есть как я понял это будет выглядеть так Почти. +5В в левой и правой половине соединяться не должны - это РАЗНЫЕ цепи. То же самое касается замель слева и справа Цитата Так какое все же питание нужно подводить к Vdd2 микросхемы ADM2483, На нее понадобится еще один DC-DC, на сей раз отдельный. Подключать к Vdd2 & Gnd2 Цитата и еще к ножке PV той же микросхемы подводить что-нибудь нужно? Повесить на +5В (те, что слева) Кстати, в DS на ADUM6132 указано, что Vddb тоже надо подавать (12В), иначе оно работать не будет
|
|
|
|
|
Jun 5 2009, 18:49
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 15-05-09
Пользователь №: 49 109

|
Цитата(XVR @ Jun 5 2009, 22:06)  Почти. +5В в левой и правой половине соединяться не должны - это РАЗНЫЕ цепи. То же самое касается замель слева и справа То есть к правой половине +5В вообще не подключать?
Сообщение отредактировал klin-2006 - Jun 5 2009, 18:53
Эскизы прикрепленных изображений
|
|
|
|
|
Jun 8 2009, 11:25
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 15-05-09
Пользователь №: 49 109

|
Хочу для обеспечения питания во время отключения электроэнергии использовать стандартный UPS ИБП-200, а как сигнал об отключении питания использовать стандартный сигнал UPS, поступающий с разъема. Непойму только к какой ножке МК Atmega16 этот сигнал подводить. Знаю что у Atmega128 его на PG2 (ALE) цепляют, а у Atmega16 непойму.
|
|
|
|
|
Jun 9 2009, 11:29
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 15-05-09
Пользователь №: 49 109

|
Подскажите, если у меня есть 6 цифровых датчиков и 1 МК Atmega16, к каким ножкам их можно подключить?
|
|
|
|
|
Jun 9 2009, 12:20
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 15-05-09
Пользователь №: 49 109

|
Добрый день. Помогите пожалуйста разобраться с программой. Необходимо написать программу для Atmega16, которая реализуют следующие задачи: 1) МК должен с периодичностью 0,5 с считывать данные с аналогового датчика температуры через встроенный в МК АЦП; 2) произвести проверку на достоверность принятого сигнала; 3) произвести сглаживание; 4) перевести цифровой сигнал в физическую величину (градусы); 5) отобразить текущую температуру на ЖКИ; 6) отправить текущую температуру оператору на ПК по интерфейсу RS-485; 7) сравнить текущую температуру с заданной: а) если текущая температура выше заданной, то весь цикл повторяется; б) если ниже, то формируется управляющий сигнал по ПИД-закону и генерируется с помощью таймера-счетчика, с поддержкой ШИМ на нагреватель. Начал писать программу на языке Pascal в среде E-Lab, но чуствую не разбирусь. Уже наверное столько наворотил ошибок.
Сообщение отредактировал klin-2006 - Jun 9 2009, 12:24
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|