Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как подключить дисплей, не хватает свободных портов
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
LexRoss
К AtMega8 подключен жк дисплей, который занимает 1 порт полностью, 2 геркона на INT0,INT1, 2 кнопки, кварц. Если повесить дисплей на порт B, тогда заняты ноги кварца, если на порт D - заняты ноги прерываний. Что делать в этом случае?
IgorKossak
Исходя из удобств трассировки никогда не стремился подключать дисплей к выводам контроллера как к шине. Подключал к любым свободным выводам по четырёхпроводному интерфейсу. На программный оверхед было наплевать, ведь программируется один раз, а дальше всё делаете не Вы, а контроллер. С таким устройством, как LCD, тормоза визуально не ощущаются.
Corvus
Вот именно, раскидайте LCD на разные ножки, и всего делов. К тому же, там ещё и порт С есть, хоть и урезанный. rolleyes.gif
rx3apf
Цитата(LexRoss @ Oct 18 2010, 16:28) *
К AtMega8 подключен жк дисплей, который занимает 1 порт полностью, 2 геркона на INT0,INT1, 2 кнопки, кварц. Если повесить дисплей на порт B, тогда заняты ноги кварца, если на порт D - заняты ноги прерываний. Что делать в этом случае?

Телепаты в отпуске, о типе дисплея догадываться некому. Если речь идет о классических знакосинтезирующих модулях на 44780, то им для управления нужно минимум шесть линий ввода-вывода. Шина данных вполне сможет разделяться с кнопками (если кнопки опрашиваются, а не генерят прерывания), если обеспечить хоть резисторную развязку. Шина данных и две линии управления могут сидеть и на разных портах, это нисколько не усложняет управление. На самый крайний случай, когда совсем уж тяжело с ногами или надо вытащить индикацию достаточно далеко от процессора, можно поставить что-то типа 74x574, на управление три-четыре ноги (четыре - если с обратной связью, разделяя с другой SPI-периферией). Или использовать индикатор с I2C.
_Pasha
Цитата(rx3apf @ Oct 18 2010, 15:49) *
если обеспечить хоть резисторную развязку

Ненада. Лучше (надежнее) с диодами.
rx3apf
Цитата(_Pasha @ Oct 18 2010, 16:53) *
Ненада. Лучше (надежнее) с диодами.

Нет, не лучше. С диодами и пороги смещаются (хотя можно, конечно, поставить с переходом Шоттки) и не устраняется конфликт вывода с нажатием кнопки - выход (когда он выход, для вывода на индикатор) сажается на "землю" кнопкой (пусть даже через диод). Ну да, можно общую линию кнопок завести на какую-то линию, подключаемую к "земле" при опросе, но зачем лишние телодвижения ?
_Pasha
Цитата(rx3apf @ Oct 18 2010, 16:02) *
Нет, не лучше. С диодами и пороги смещаются (хотя можно, конечно, поставить с переходом Шоттки) и не устраняется конфликт вывода с нажатием кнопки - выход (когда он выход, для вывода на индикатор) сажается на "землю" кнопкой (пусть даже через диод). Ну да, можно общую линию кнопок завести на какую-то линию, подключаемую к "земле" при опросе, но зачем лишние телодвижения ?

А не понял smile.gif. С каждой линии шины данных диод катодом к собсна линии, линия возврата обсчая. Опрос по "бегущему нулю" в паузах между обращениями с жки.
ЗЫ ойц. исправлено
rx3apf
Цитата(_Pasha @ Oct 18 2010, 17:08) *
А не понял smile.gif. С каждой линии шины данных диод катодом к собсна линии, линия возврата обсчая. Опрос по "бегущей единице" в паузах между обращениями с жки.

Как вариант - да. Но - лишняя линия. Это пригодилось бы, когда надо спать и просыпаться по нажатию кнопки, а для простого опроса - вполне можно ту же ШД тянуть через кнопку к "земле", через резистор (этак на 1K).
ILYAUL
Кнопки - на АЦП, их всего 2 - просто за глаза хватит одной линии порта и никаких заморочек с дребезгом . У меня 5 висит и это не предел. ЖК можно с SPI пподобрать - всего 3 линии или 4 битный обмен.
_Pasha
Цитата(rx3apf @ Oct 18 2010, 16:10) *
Но - лишняя линия. Это пригодилось бы ...

Никогда не обращал на это должного внимания. А ведь лишней линии таки можно избежать, назначив ЛВ на все, что угодно, по этой же шине, кроме выборки ЖКИ!

Цитата(ILYAUL @ Oct 18 2010, 16:12) *
Кнопки - на АЦП, их всего 2 - просто за глаза хватит одной линии порта и никаких заморочек с дребезгом . У меня 5 висит и это не предел.

Только энкодер так не цепляйте, гемор гарантирован smile.gif
LexRoss
Дисплей WH1602, попробую с 8 разрядной шины на 4-х перейти.

Посоветуйте работающую библиотеку для жк, контроллер ks0066, вроде совместим с HD44780.

http://chipenable.ru/index.php/programming...r-bus-4bit.html отсюда пробовал, не работает
LexRoss
нашел http://kazus.ru/forums/showthread.php?p=191613
спасибо
rezident
Цитата(LexRoss @ Oct 18 2010, 19:46) *
Дисплей WH1602, попробую с 8 разрядной шины на 4-х перейти.

Повешайте его на PCF8574. А ее в свою очередь на TWI. Всего две линии для связи. Если хочется всю шину LCD-модуля использовать, то вместо PCF8574 можно PCF8575 поставить. В TSSOP-24 она займет столько же места, если не меньше.
rx3apf
Цитата(rezident @ Oct 18 2010, 20:50) *
то вместо PCF8574 можно PCF8575 поставить.

А еще проще взять TIC107 - там уже I2C.
rezident
Цитата(rx3apf @ Oct 19 2010, 00:13) *
А еще проще взять TIC107 - там уже I2C.
Тоже вариант. Но лично мне не нравится, что TICи - заказные LCD. В то время как аналогов WH1602 - пруд пруди и производителей с десяток. laughing.gif
AlexBird55
Вот библиотека, позволяющая работать с LCD по 3м проводам http://electronix.ru/forum/index.php?showt...st&p=131435
zhevak
Блин, опоздал к столу...

Я не использую PCF8574. Они дорогие. Я использую регистры 74хх595. И не одну, а штуки две-три (и более), соединенные последовательно. Получается такая цепочка 595-ых "сосисок". На одну из них вешаю LCD, на другую LED-ы, на третью клаву и т.д. В общем, способ годится для управления любыми медленными (t < 1-10 мс) устройствами.

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

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

Я не говорю, что мой вариант самый лучший, но я говорю, что при определенных условиях его вполне можно использовать.
rx3apf
Цитата(zhevak @ Oct 19 2010, 17:21) *
Я использую регистры 74хх595. И не одну, а штуки две-три (и более), соединенные последовательно. Получается такая цепочка 595-ых "сосисок". На одну из них вешаю LCD, на другую LED-ы, на третью клаву и т.д. В общем, способ годится для управления любыми медленными (t < 1-10 мс) устройствами.

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

Зачем программно ? 595 управляются по стандартной SPI (если есть), обмен гораздо быстрее, чем по i2c, на новых кристаллах (если говорить о архитектуре AVR) можно через буферизированный SPI на USART, что тем более уменьшает накладные расходы. Ну да, стробом перезаписи надо управлять вручную...

Цитата
Я не говорю, что мой вариант самый лучший, но я говорю, что при определенных условиях его вполне можно использовать.

Это один из самых простых вариантов расширения, очень удобно, если надо вынести индикатор, а шину тащить не хочется. У меня было устройство с пятью 595 в цепочке (светодиоды и 44780), видел изделие, где стояло 13 штук 4094, разбросанных по разным блокам, и все в цепочке и с контролем целостности по обратной связи...
rezident
Цитата(zhevak @ Oct 19 2010, 19:21) *
Я не использую PCF8574. Они дорогие. Я использую регистры 74хх595.
$1 vs $0,3? Хозяин-барин, конечно, да и случаи разные бывают laughing.gif

Цитата(rx3apf @ Oct 19 2010, 21:35) *
все в цепочке и с контролем целостности по обратной связи...
Любопытно, а как контролировался последний "задвинутый" (переданный) байт? Постфактум, в следующем цикле?
rx3apf
Цитата(rezident @ Oct 19 2010, 20:38) *
Любопытно, а как контролировался последний "задвинутый" (переданный) байт? Постфактум, в следующем цикле?

Ну да, как я понимаю (особо в схемотехнику я не вникал, но ОС вроде была). И не байт, а вся 13x8 посылка, иначе не увидеть.
zhevak
Цитата(rezident @ Oct 19 2010, 22:38) *
$1 vs $0,3? Хозяин-барин, конечно, да и случаи разные бывают laughing.gif

Все верно: случаи-то они разные бывают
($1 - $.3) * k * (1000 * n) = ого! Нищему на компьютер наскрести можно smile.gif
k = количество штучек в девайсе;
n = количество тысяч.

По-моему уже флуд пошел. Конструктива не стало, вместо него начали валить друг друга понтами, у кого сосиска* длинее. Иличо?
------------------------
* Я имел в виду 74ххх595
sds1
Цитата(LexRoss @ Oct 18 2010, 18:28) *
К AtMega8 подключен жк дисплей, который занимает 1 порт полностью, 2 геркона на INT0,INT1, 2 кнопки, кварц. Если повесить дисплей на порт B, тогда заняты ноги кварца, если на порт D - заняты ноги прерываний. Что делать в этом случае?



Ежели не принципиально , и есть в наличии дисплей от телефона , дык поставьте его.
NOKIA или MOTOROLA, три провода и потребление меньше.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.