Технический форум по робототехнике.
gppsoft » 14 окт 2015, 09:27
Парни! Помогите пожалуйста подсоеденить в Proteus 8 вот
этот дисплей(UG-2864HSWEG01) по i2c шине к Atmega8. Ни как не могу понять как подключать. Вроде как написано в даташите что D1 это SDA, а D0 это SCL. Вот только не понятно как их подключать в Proteus. На месте этих выводов две синие полоски. К сожалению с Proteus я почти не знаком, а проект надо кодить. Заранее ОГРОМНОЕ человеческое спасибо!
MEXAHuK » 14 окт 2015, 11:06
Добрый день!
Синими полосками в Proteus обозначаются шины, то есть группы проводников. В данном случае в шины объединены выводы D0-D7 и BS0-BS2 дисплея.
К сожалению, у меня нет в библиотеке этого дисплея, поэтому я нарисовал свою шину D0-D7 и подключил к ней два вывода микроконтроллера:
Делается это таким образом. Сначала рисуется провод от нужной ножки контроллера к шине, потом провод выделяется правой клавишей мыши и из меню выбирается пункт "Place Wire Label", далее из выпадающего списка выбирается нужный проводник в шине.
gppsoft » 14 окт 2015, 11:21
MEXAHuK писал(а):Добрый день!
Синими полосками в Proteus обозначаются шины, то есть группы проводников. В данном случае в шины объединены выводы D0-D7 и BS0-BS2 дисплея.
К сожалению, у меня нет в библиотеке этого дисплея, поэтому я нарисовал свою шину D0-D7 и подключил к ней два вывода микроконтроллера:
Вложение bus2.jpg больше недоступно
Делается это таким образом. Сначала рисуется провод от нужной ножки контроллера к шине, потом провод выделяется правой клавишей мыши и из меню выбирается пункт "Place Wire Label", далее из выпадающего списка выбирается нужный проводник в шине.
Огромное спасибо за ответ. Но почему-то у меня в выпадающем списке нет соотв портов. Я прописал вручную, но к сожалению ничего не заработало. Не могли бы вы мне помочь? Я использую Proteus 8 SP2 и в нем есть данный дисплей. На реальном устройстве все работает(там выведена шина i2c, всего 2 провода). Но вот как я понимаю тут нужно выполнить какие-то дополнительные настройки и возможно сделать дополнительную обвязку. К сожалению времени разбираться у меня практически нет
Еще раз спасибо вам!
Прошивка для теста(Atmega8, 16Mhz ext.):
MEXAHuK » 14 окт 2015, 11:48
А. Да
Для того, чтобы выводы дисплея появились в списке, шине, которую вы пририсовали вручную к шине дисплея, надо тоже присвоить имя, например "D", при помощи "Place Wire Label".
gppsoft » 14 окт 2015, 11:53
MEXAHuK писал(а):А. Да
Для того, чтобы выводы дисплея появились в списке, шине, которую вы пририсовали вручную к шине дисплея, надо тоже присвоить имя, например "D", при помощи "Place Wire Label".
К сожалению не помогает
Сделал так.
Добавлено спустя 2 минуты 48 секунд:Почитал даташит(11 стр). Возможно не работает потому что у дивайса нет адреса. Как я понял он устанавливается замыканием порта B на +. Но как это сделать? Еще раз спасибо!
MEXAHuK » 14 окт 2015, 12:43
Согласно даташиту, адрес устройства может быть или 0b0111100 или 0b0111101. Это выбирается битом SA0, который подсоединен к выводу D/C.
Пин R/W отвечает за режим работы - R/W = 0 - режим записи, R/W = 1 - режим чтения.
И еще написано, что и SDA и SCL надо подтянуть к плюсу. Обычно для этого используют резисторы 5-10 кОм.
Добавлено спустя 22 минуты 32 секунды:
В общем вот так, по моему, нужно:
для выбора I2C интерфейса надо установить BS0 = 0 , BS1 = 1, BS2 = 0;
D0 и D1 подтянуть через 2 кОм к плюсу;
R/W - на землю;
D/C - или на землю, или на плюс, не знаю, какая у вас там адресация в МК;
Последний раз редактировалось
MEXAHuK 14 окт 2015, 15:53, всего редактировалось 1 раз.
gppsoft » 14 окт 2015, 14:39
MEXAHuK писал(а):Ненене. Просто D без [0..7]. Тогда протеус автоматом соединит эту шину с пинами дисплея. А сейчас это самостоятельная шина, к дисплею не подключенная.
UPD Хотя нет, вру. Нетлист показывает, что можно и так.
Щас даташиту посмотрю.
Добавлено спустя 23 минуты 43 секунды:
Согласно даташиту, адрес устройства может быть или 0b0111100 или 0b0111101. Это выбирается битом SA0, который подсоединен к выводу D/C.
Пин R/W отвечает за режим работы - R/W = 0 - режим записи, R/W = 1 - режим чтения.
И еще написано, что и SDA и SCL надо подтянуть к плюсу. Обычно для этого используют резисторы 5-10 кОм.
Добавлено спустя 22 минуты 32 секунды:
В общем вот так, по моему, нужно:
для выбора I2C интерфейса надо установить BS0 = 0 , BS1 = 1, BS2 = 0;
D0 и D1 подтянуть через 2 кОм к плюсу;
R/W - на землю;
D/C - или на землю, или на плюс, не знаю, какая у вас там адресация в МК;
Очень благодарен вам. А каким образом установить BS0-BS2? Подать на них питание? Адрес тоже не совсем понял как задать.
Добавлено спустя 1 час 15 минут 47 секунд:Сделал так, но по прежнему ничего не работает.
Адрес у меня в коде 0x3C
И так тоже не работает. Зато видно стало как данные якобы передаются. Мигают квадратики на выводах МК.
MEXAHuK » 14 окт 2015, 18:29
Ушел с работы, доберусь до домашнего компа - попробую запустить.
Добавлено спустя 2 часа 37 минут 20 секунд:Заработало
gppsoft » 15 окт 2015, 03:17
MEXAHuK писал(а):Ушел с работы, доберусь до домашнего компа - попробую запустить.
Добавлено спустя 2 часа 37 минут 20 секунд:Заработало
hello_mex.jpg
КРУТЯГ!!!
Спасибо. Вы сэкономили мне кучу времени.
Получается нужно было подключить VSS, VDD и RES. Еще раз благодарю.
Nikolas » 29 янв 2024, 17:51
по I2C кто то в протеусе подключал. У меня визуализация не работает.