roboforum.ru

Технический форум по робототехнике.

Proteus и OLED

Резисторы, транзисторы, конденсаторы, микросборки, чип компоненты ...
Вопросы согласования управляющих модулей с периферией.

Proteus и OLED

Сообщение gppsoft » 14 окт 2015, 09:27

Парни! Помогите пожалуйста подсоеденить в Proteus 8 вот этот дисплей(UG-2864HSWEG01) по i2c шине к Atmega8. Ни как не могу понять как подключать. Вроде как написано в даташите что D1 это SDA, а D0 это SCL. Вот только не понятно как их подключать в Proteus. На месте этих выводов две синие полоски. К сожалению с Proteus я почти не знаком, а проект надо кодить. Заранее ОГРОМНОЕ человеческое спасибо!
123 (2).png
gppsoft
 
Сообщения: 86
Зарегистрирован: 09 апр 2014, 07:56

Re: Proteus и OLED

Сообщение MEXAHuK » 14 окт 2015, 11:06

Добрый день!
Синими полосками в Proteus обозначаются шины, то есть группы проводников. В данном случае в шины объединены выводы D0-D7 и BS0-BS2 дисплея.
К сожалению, у меня нет в библиотеке этого дисплея, поэтому я нарисовал свою шину D0-D7 и подключил к ней два вывода микроконтроллера:

bus2.jpg


Делается это таким образом. Сначала рисуется провод от нужной ножки контроллера к шине, потом провод выделяется правой клавишей мыши и из меню выбирается пункт "Place Wire Label", далее из выпадающего списка выбирается нужный проводник в шине.
Аватара пользователя
MEXAHuK
 
Сообщения: 228
Зарегистрирован: 07 янв 2005, 23:39
Откуда: г.Норильск, Россия
прог. языки: Pascal, C, C++
ФИО: Раф Попов

Re: Proteus и OLED

Сообщение gppsoft » 14 окт 2015, 11:21

MEXAHuK писал(а):Добрый день!
Синими полосками в Proteus обозначаются шины, то есть группы проводников. В данном случае в шины объединены выводы D0-D7 и BS0-BS2 дисплея.
К сожалению, у меня нет в библиотеке этого дисплея, поэтому я нарисовал свою шину D0-D7 и подключил к ней два вывода микроконтроллера:

Вложение bus2.jpg больше недоступно


Делается это таким образом. Сначала рисуется провод от нужной ножки контроллера к шине, потом провод выделяется правой клавишей мыши и из меню выбирается пункт "Place Wire Label", далее из выпадающего списка выбирается нужный проводник в шине.

Огромное спасибо за ответ. Но почему-то у меня в выпадающем списке нет соотв портов. Я прописал вручную, но к сожалению ничего не заработало. Не могли бы вы мне помочь? Я использую Proteus 8 SP2 и в нем есть данный дисплей. На реальном устройстве все работает(там выведена шина i2c, всего 2 провода). Но вот как я понимаю тут нужно выполнить какие-то дополнительные настройки и возможно сделать дополнительную обвязку. К сожалению времени разбираться у меня практически нет :( Еще раз спасибо вам!
1234.png


Прошивка для теста(Atmega8, 16Mhz ext.):
firmware.hex
(4.54 КиБ) Скачиваний: 498
gppsoft
 
Сообщения: 86
Зарегистрирован: 09 апр 2014, 07:56

Re: Proteus и OLED

Сообщение MEXAHuK » 14 окт 2015, 11:48

А. Да :) Для того, чтобы выводы дисплея появились в списке, шине, которую вы пририсовали вручную к шине дисплея, надо тоже присвоить имя, например "D", при помощи "Place Wire Label".
Аватара пользователя
MEXAHuK
 
Сообщения: 228
Зарегистрирован: 07 янв 2005, 23:39
Откуда: г.Норильск, Россия
прог. языки: Pascal, C, C++
ФИО: Раф Попов

Re: Proteus и OLED

Сообщение gppsoft » 14 окт 2015, 11:53

MEXAHuK писал(а):А. Да :) Для того, чтобы выводы дисплея появились в списке, шине, которую вы пририсовали вручную к шине дисплея, надо тоже присвоить имя, например "D", при помощи "Place Wire Label".

К сожалению не помогает :( Сделал так.
1234 (2).png


Добавлено спустя 2 минуты 48 секунд:
Почитал даташит(11 стр). Возможно не работает потому что у дивайса нет адреса. Как я понял он устанавливается замыканием порта B на +. Но как это сделать? Еще раз спасибо!
gppsoft
 
Сообщения: 86
Зарегистрирован: 09 апр 2014, 07:56

Re: Proteus и OLED

Сообщение 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 раз.
Аватара пользователя
MEXAHuK
 
Сообщения: 228
Зарегистрирован: 07 янв 2005, 23:39
Откуда: г.Норильск, Россия
прог. языки: Pascal, C, C++
ФИО: Раф Попов

Re: Proteus и OLED

Сообщение 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
1234.png


И так тоже не работает. Зато видно стало как данные якобы передаются. Мигают квадратики на выводах МК.
123.PNG
gppsoft
 
Сообщения: 86
Зарегистрирован: 09 апр 2014, 07:56

Re: Proteus и OLED

Сообщение MEXAHuK » 14 окт 2015, 18:29

Ушел с работы, доберусь до домашнего компа - попробую запустить.

Добавлено спустя 2 часа 37 минут 20 секунд:
Заработало :)

hello_mex.jpg
Аватара пользователя
MEXAHuK
 
Сообщения: 228
Зарегистрирован: 07 янв 2005, 23:39
Откуда: г.Норильск, Россия
прог. языки: Pascal, C, C++
ФИО: Раф Попов

Re: Proteus и OLED

Сообщение gppsoft » 15 окт 2015, 03:17

MEXAHuK писал(а):Ушел с работы, доберусь до домашнего компа - попробую запустить.

Добавлено спустя 2 часа 37 минут 20 секунд:
Заработало :)

hello_mex.jpg

КРУТЯГ!!! :good: Спасибо. Вы сэкономили мне кучу времени. :Yahoo!: Получается нужно было подключить VSS, VDD и RES. Еще раз благодарю.
gppsoft
 
Сообщения: 86
Зарегистрирован: 09 апр 2014, 07:56

Re: Proteus и OLED

Сообщение Nikolas » 29 янв 2024, 17:51

по I2C кто то в протеусе подключал. У меня визуализация не работает.
Nikolas
 
Сообщения: 2
Зарегистрирован: 29 янв 2024, 16:37


Вернуться в Электроника, электротехника

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17