Orpomx
1

ATMEGA16 и LCD на какие порты вешать?

30.10.2013, 02:11. Показов 24158. Ответов 29
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. Пытаюсь нарисовать Developer Board самопальную. (заводская выглядит так погуглите cepark atmega16) Сейчас дисплей висит на порту А и он пересекается с каналам АЦП. (надо дифф вход) Но хочу задействовать и АЦП. Не могу понять на какие порты лучше всего повесить LCD чтобы он никому не мешали. и максимум выжать возможность подключения внешней переферии. Спутанно объяснил, как могу.

или на порту А все такие меньше всего мешает? а для одного канала АЦП освободить пару пинов
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.10.2013, 02:11
Ответы с готовыми решениями:

Atmega16 + LCD
Здравствуйте! Хочу сделать термометр как тут...

Работа с LCD дисплеем HD44780 из МК Atmega16 (GCC)
Здравствуйте, пытаюсь подключить LCD дисплей к микроконтроллеру, скачал библиотеку, но уже на...

Подключение LCD WH1602B-YYH-CTK к Atmega16
Здравствуйте. Никак не могу связать LCD c микроконтроллером. Перелопатил кучу форумов, разобрался в...

Закрыть порты на серверном терминале (какие порты в данном случае можно закрыть?)
Имеется серверный терминал,человек сказал что требуется закрыть ВСЕ порты. Понятно что все нельзя...

Переделка скрипта LCD HD44780 под другие порты. (atmega8 - atmega328)
Помогите пожалуйста, переделать скрипт LCD HD44780. Подключаю как на рис.1. Но, это не очень...

29
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
30.10.2013, 02:45 2
Что за дисплей-то будет?
И будет ли он работать через какой-нибудь аппаратный интерфейс или достаточно простого "ногодрыга" через свободные GPIO-пины?
Какую периферию, помимо дисплея, собираетесь подключить к Меге16?
0
Orpomx
30.10.2013, 03:16 3
lcd hd44780 в 4 битном режиме. Думаю D4-D7 оставлю на порту "А". Остальные 3 управляющих сигнала (RS, RW, E) растыкаю на какие нибудь другие порты/пины. Тогда получается 4 пина АDC освобождаются. Это 4х входовый АЦП либо 2 канала дифференциальных.

По переферии планы Наполеоновские. Хочется все, или по максимуму, как на оригинале. Мало ли что понадобится в процессе проектирования. А так хочется универсальную штучку на базе которой можно будет сделать задумки.
Сейчас хотелось попробовать сделать балансировочный станок. Надо миливольты с ВЧ-пищалок снимать. 2 канала как раз. А так что еще там надо. Дисплей, I2C, RS232, клавиатура
1 / 1 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
30.10.2013, 06:35 4
дисплей куда угодно можно повесить, зависит от библиотеки. пин RW иногда на землю сразу кидают, чтобы ноги сэкономить, правда тогда за таймингами следить надо.
0
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 1,503
30.10.2013, 07:18 5
Цитата Сообщение от Orpomx
Добрый день. Пытаюсь нарисовать Developer Board самопальную. (заводская выглядит так погуглите cepark atmega16) Сейчас дисплей висит на порту А и он пересекается с каналам АЦП. (надо дифф вход) Но хочу задействовать и АЦП. Не могу понять на какие порты лучше всего повесить LCD чтобы он никому не мешали. и максимум выжать возможность подключения внешней переферии. Спутанно объяснил, как могу.

или на порту А все такие меньше всего мешает? а для одного канала АЦП освободить пару пинов
Я посадил на сдвиговый.

Исходники с драйвером на сдвиговый и ЖКИ через сдвиговый тут
https://github.com/PymkvymOpenTag/LTAscetic

Используются любые 3 ножки контроллера (подписи пусть Вас не смущают, реализация софтовая).
Определяются в хедере shift_regist_dryver.h .
Код
#define SHIFT_REGISTER_DS_PORT PORTB //ii?o, e eioi?oio iiaee??ai aoia DS (aaiiua) naaeaiaiai ?aoimo?a
#define SHIFT_REGISTER_SH_CP_PORT PORTB //ii?o, e eioi?oio iiaee??ai aoia SH_CP (oaeoiaua eiioeunu) naaeaiaiai ?aoimo?a
#define SHIFT_REGISTER_ST_CP_PORT PORTB //ii?o, e eioi?oio iiaee??ai aoia ST_CP ("caueea" aaiiuo) naaeaiaiai ?aoimo?a

#define SHIFT_REGISTER_DS_DDR DDRB //oi?aaey?uee ?aoimo?, e eioi?oio iiaee??ai aoia DS (aaiiua) naaeaiaiai ?aoimo?a
#define SHIFT_REGISTER_SH_CP_DDR DDRB //oi?aaey?uee ?aoimo?, e eioi?oio iiaee??ai aoia SH_CP (oaeoiaua eiioeunu) naaeaiaiai ?aoimo?a
#define SHIFT_REGISTER_ST_CP_DDR DDRB //oi?aaey?uee ?aoimo?, e eioi?oio iiaee??ai aoia ST_CP ("caueea" aaiiuo) naaeaiaiai ?aoimo?a

#define SHIFT_REGISTER_DS_PIN (1<<5) //auaia, e eioi?oio iiaee??ai aoia DS (aaiiua) naaeaiaiai ?aoimo?a
#define SHIFT_REGISTER_SH_CP_PIN (1<<7) //auaia, e eioi?oio iiaee??ai aoia SH_CP (oaeoiaua eiioeunu) naaeaiaiai ?aoimo?a
#define SHIFT_REGISTER_ST_CP_PIN (1<<6) //auaia, e eioi?oio iiaee??ai aoia ST_CP ("caueea" aaiiuo) naaeaiaiai ?aoimo?a
Вот схема, где указаны DS,SH и ST микрухи, но тут резюки на контрастность указаны сильно неконкретно. :-)

<Изображение удалено>

Там же схемы и разводка печатных плат и фотошаблон шилдика для 16х2


<Изображение удалено>


<Изображение удалено>

Микруха - 74HC595D

Все проверено, все работает!
Даже при питании от 3В работает, если контрастность к земле притянуть (убрать резистор к питанию).

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

Поищите 1-wire LCD.

P.S. Потрудился для Вас, поискал


<Изображение удалено>


<Изображение удалено>


<Изображение удалено>

http://mbed.org/cookbook/1-wire-shifting-2x16-LCD
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
30.10.2013, 10:52 6
Цитата Сообщение от Orpomx
lcd hd44780 в 4 битном режиме. Думаю D4-D7 оставлю на порту "А". Остальные 3 управляющих сигнала (RS, RW, E) растыкаю на какие нибудь другие порты/пины. Тогда получается 4 пина АDC освобождаются. Это 4х входовый АЦП либо 2 канала дифференциальных.
... ...
Дисплей, I2C, RS232, клавиатура
UART, SPI, I2C(TWI) - логично отдать им соответствующие аппаратные пины, а не какие-то другие. Если есть ещё какая-то аппаратная завязка (например, таймерные входы, компаратор, ШИМ и т.п.) - так же резервируем определённые пины.
После этого смотрим на "остатки" и ищем для дисплея целую тетраду для шины данных. В идеале старшие 4 бита или младшие 4 бита любого порта.

А зарезервировать пины для всего, что может Мега16, imho не получится. Чем-то надо пожертвовать в конкретном проекте.
0
Orpomx
30.10.2013, 13:21 7
О, спасибо всем за советы. to Pymkvym тоже спасибо что поделились таким замечательным решением. Думаю пригодится не только мне. Буду потихоньку прорисовывать в Proteuse. Проект фоновый поэтому рисовать буду по мере сил. Покупная плата хорошая вещь, но думаю собственный проект будет гибче, и можно будет тиражировать. Спасибо!
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 1,503
31.10.2013, 09:29 8
Цитата Сообщение от Orpomx
О, спасибо всем за советы. to Pymkvym тоже спасибо что поделились таким замечательным решением. Думаю пригодится не только мне. Буду потихоньку прорисовывать в Proteuse. Проект фоновый поэтому рисовать буду по мере сил. Покупная плата хорошая вещь, но думаю собственный проект будет гибче, и можно будет тиражировать. Спасибо!
Плата не покупная - разводил сам, просто заказал изготовление в psitistro.
0
366 / 144 / 17
Регистрация: 06.03.2010
Сообщений: 301
Записей в блоге: 1
01.11.2013, 02:50 9
У меня есть библиотечка, где можно делать вот так:


<Изображение удалено>


Но она на C++, хотя выдернуть оттуда функции в принципе не сложно. На бейсик, кстати, её тоже частично портировал.
0
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,010
01.11.2013, 04:49 10
А я вотакой самопальной либкой пользуюсь http://asis-kbr.ru/forum/viewtopys.php?f=13&t=139
Позволяет выбрать любые 2 линии для управления, и любые 4 идущие подряд пина (0,1,2,3 или 1,2,3,4 или 2,3,4,5 или 3,4,5,6 или 4,5,6,7) для данных. Для управления и данных - могут быть выбраны разные порты.....
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,044
01.11.2013, 22:01 11
Если ATMEGA8535-16-32 то обычно использую PORTC. PORTB SPI, PORTD UART и внешние прерывания, PORTA АЦП. Дисплей работает на 4 битной шине, в чтении с ЖКИ не увидел смысла, остались EN и RS. Итого 6 пинов МК. Скоро хочу перевести дисплей на сдвиговый регистр. Все никак руки не доходят. К схеме на 1 проводочке отношусь с подозрением, сдвигового регистра мне вполне хватит для дисплея.
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
02.11.2013, 01:21 12
Цитата Сообщение от dymyurk1978
Дисплей работает на 4 битной шине, в чтении с ЖКИ не увидел смысла
Смысл там простой: максимальная скорость работы с дисплеем. Если без чтения, то приходится вставлять в программу задержки, заведомо бОльшие необходимых.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,044
02.11.2013, 09:11 13
Цитата Сообщение от OtyxPM
Цитата Сообщение от dymyurk1978
Дисплей работает на 4 битной шине, в чтении с ЖКИ не увидел смысла
Смысл там простой: максимальная скорость работы с дисплеем. Если без чтения, то приходится вставлять в программу задержки, заведомо бОльшие необходимых.
Я уже писал, как я работаю с символьными ЖКИ. Создается буфер. При 20х4=80 байт. Раз в 1 мс поочередно отправляются символы в ЖКИ. И получается, что мы работаем с буфером в ОЗУ. А из буфера в ЖКИ все отправляется автоматом.
0
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
02.11.2013, 13:09 14
Немного не по теме вопрос
Почему никто не делает divelopment board с гибкой конфигурацией?
Таже atmega16 это всего 32 порта ввода-вывода. Берем какую нибудь не самую крутую ПЛИС с количеством входов 32 + 32*n где n количество вариаций подключения портов мега16. В простом случае 32+64 - два варианта, в первом варианте все 32 вывода подключаются на установленную на плате перефирию, во втором варианте все выводы выводятся на внешние пины. Комбинаций можно много придумать, пишу так для упрощения. Плис такая будет стоить 3-6 долларов - не много. После этого програмируя плис можно получить конфигурацию как хочется под конкретный проект и исчезает жесткая привязка того что куда подключено.
Все это теория) возможно что то я не понимаю. Почему не делают так?
0
366 / 144 / 17
Регистрация: 06.03.2010
Сообщений: 301
Записей в блоге: 1
02.11.2013, 16:14 15
Видимо потому что это тянет за собой чтение кучу документации по работе с ПЛИС, установку среды разработки для неё и ещё очень много чего. Но вообще, так делают. Например, когда есть два многоногих камня и между ними нужно сделать коммуникации. Выхода 2: 1) многослойная ПП, 2) ПЛИС. Конфигурация идёт внутри ПЛИС и тем самым уменьшаем требования к ПП.

Проблема одна - ПЛИСками нужно уметь пользоваться.
0
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
02.11.2013, 18:35 16
я понимаю, что одному такую разработку платы сложно поднять и видимо совсем не много знающих ПЛИС еще и заинтересованы в такой плате для МК
но почему производители не делают такое?
могу понять что атмелу зазорно на свой STK впаивать какую нибудт алтеру
но сторонний кто-нибудь вполне мог бы сделать такое и дал бы фору тогда всем остальным
и для них было бы не так сложно сделать примитивный инструмент для не знающих ПЛИС по переконфигурированию платы МК - комбинаций настроек ПЛИС там было бы не так уж и много
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,044
02.11.2013, 18:41 17
Цитата Сообщение от oxytt
ПЛИС
А как вы аналоговые входы МК собираетесь переконфигурировать?
0
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
02.11.2013, 18:53 18
не знаю есть ли что то в ПЛИС для аналоговой комутации
- как вариант внешние аналоговый комутатор
- в более простом варианте если есть на плате аналоговая переферия - цепляем ее обычными dip переключателями (в той же мега16 каналов adc всего 8, на divelopment board обычно задействуют от 0 до 2), все что не использовано выводим на внешние пины. Те выводы, что работают не только как ADC но еще и как цифровые входы выходы - паралельно цепляем на ту же ПЛИС. Думаю она не будет влиять на работу в аналоговом режиме если эти входы будут иметь высокоимпедансное состояние
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
02.11.2013, 19:01 19
Цитата Сообщение от oxytt
не знаю есть ли что то в ПЛИС для аналоговой комутации
- как вариант внешние аналоговый комутатор
- в более простом варианте если есть на плате аналоговая переферия - цепляем ее обычными dip переключателями (в той же мега16 каналов adc всего 8, на divelopment board обычно задействуют от 0 до 2), все что не использовано выводим на внешние пины. Те выводы, что работают не только как ADC но еще и как цифровые входы выходы - паралельно цепляем на ту же ПЛИС. Думаю она не будет влиять на работу в аналоговом режиме если эти входы будут иметь высокоимпедансное состояние
Также нетривиально будет подключение двунаправленных линий с определённой подтяжкой (не равной внутренней подтяжке ПЛИС) - I2C, 1-Wire, USB.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,044
02.11.2013, 19:14 20
Цитата Сообщение от oxytt
ПЛИС
ПЛИС с нуля не каждый освоит. Ключевые слова: Расширители GPIO.
0
02.11.2013, 19:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.11.2013, 19:14
Помогаю со студенческими работами здесь

WH1602 LCD, какие могут быть грабли?
Никак не могу запустить дисплейчик WH1602 от winstor. Подаю питание, сажаю регулятор контраста на...

LCD на базе HD44780+I2C+Atmega8 какие преимущества?
В общем-то в заголовке темы практически все есть. Небольшое уточнение вопроса: - какие...

Какие сом порты есть у компютера?
Как можно узнать используя с++билдер, какие номера сом портов используються в данном конкретном...

Какие бывают порты на материнских платах?
какие были и бывают? знаю только usb com ps\2 vga lpt Enternet это у современных, а ранее...

Какие порты безопасно оставлять открытыми
На сайте есть открытые порты, какие из них могут нанести вред?

Cisco EX-90 - какие порты пробрасывать на роутере?
Здравствуйте. Имеется терминал видеоконференцсвязии Cisco Tandberg EX-90. Устройство нормально...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru