11.10.2018, 02:05
|
|
Временная регистрация
Регистрация: 12.09.2018
Сообщений: 92
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Модель UG-2864HSWEG01 в Proteus 8.7 глючная?
Спасибо, мне уже подсказали.
Теперь новая проблема:
https://radiokot.ru/forum/viewtopic.php?f=57&t=157856
Ступенька появилась на датаграмме, и никаких признаков нормальной работы.
|
|
|
|
12.10.2018, 00:18
|
|
Временная регистрация
Регистрация: 12.09.2018
Сообщений: 92
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Модель UG-2864HSWEG01 в Proteus 8.7 глючная?
Новая версия проекта c аппаратным I2C:
https://radiokot.ru/forum/download/file.php?id=316127
В Протеусе глючит так же как и версия с ногодрыгом.
В железе работает, но вывод цифр зависает в среднем после 10 циклов, скорее всего не получает сигнал ACK.
У кого какие идеи?
Кстати, дисплей заметно мерцает, на фото выше видно тёмную полосу, она движется заметно глазу с циклом около 30 гц.
|
|
|
|
14.10.2018, 00:25
|
|
Временная регистрация
Регистрация: 12.09.2018
Сообщений: 92
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Модель UG-2864HSWEG01 в Proteus 8.7 глючная?
На плате экрана стоит линейный стабилизатор на +3,3v серии XC6206
в корпусе SOT-23, по датащиту на входе и выходе у него должны стоять керамические конденсаторы не менее 1мкФ, на самом деле, на входе не было никакого конденсатора, я отпаял от сломанной материнки два конденсатора 0608 по 4,7мкФ неизвестного типа, сначала припаял один на вход, ничего не изменилось, потом второй на выход, исчезло вышеописанное мерцание, и вот уже 60 минут проект с аппаратным I2C
работает без зависания.
Осталось только разобраться с глюками Протеуса, или зафиксировать наличие в природе минимум двух разных версий контроллера с разной системой команд.
В Протеусе резисторы менял от 1к до 10к ничего не изменилось.
Вопрос: что такое надо сделать в Протеусе что бы в данной схеме увидеть
размах сигнала I2C в осциллографе 3,3 вольта?
|
|
|
|
14.10.2018, 06:09
|
|
Прописка
Регистрация: 17.03.2015
Сообщений: 287
Сказал спасибо: 0
Сказали Спасибо 209 раз(а) в 121 сообщении(ях)
|
Re: Модель UG-2864HSWEG01 в Proteus 8.7 глючная?
Сообщение от Donker
|
Осталось только разобраться с глюками Протеуса
|
Так и отличий в новой версии от "ногодрыга", с точки зрения структуры передачи команд, нет никаких. Почитайте что ранее мы обсуждали и какой вывод был сделан.
Сообщение от Donker
|
Вопрос: что такое надо сделать в Протеусе что бы в данной схеме увидеть размах сигнала I2C в осциллографе 3,3 вольта?
|
В данной ситуации, используются две цифровые модели: MCU и LCD, а значит и симуляция идет на цифровом уровне, т.е. Proteus оперирует не физическими величинами (напряжение, ток), а состояниями контактов (SLO, WHI, ...), хотя МК и переведен в "смешанный режим". Потому, в данном случае, "размах сигнала" для симулятора важен лишь в том смысле, что он должен соответствовать заданным уровням лог. 0 и 1. А т.к. в схеме лишь подтягивающие резисторы, то на выходе будет получен сигнал максимальной амплитуды.
Хотите другую амплитуду - ставьте резисторы на землю. Вот только это абсолютно ничего не даст, т.к. условия соответствия лог. уровням уже соблюдены, а выход из этих уровней нарушит работоспособность схемы.
|
|
|
|
14.10.2018, 12:12
|
|
Временная регистрация
Регистрация: 12.09.2018
Сообщений: 92
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Модель UG-2864HSWEG01 в Proteus 8.7 глючная?
ProtAS-13, вы свой проект на реальном экране проверяли, он там нормально работает?
|
|
|
|
14.10.2018, 13:49
|
|
Прописка
Регистрация: 17.03.2015
Сообщений: 287
Сказал спасибо: 0
Сказали Спасибо 209 раз(а) в 121 сообщении(ях)
|
Re: Модель UG-2864HSWEG01 в Proteus 8.7 глючная?
Сообщение от Donker
|
ProtAS-13, вы свой проект на реальном экране проверяли, он там нормально работает?
|
Если бы у меня был этот дисплей, то стал бы я просить Вас тестировать код в железе?
Я тестировал исключительно примитив SSD1306 Proteus'а, чтобы понять все его возможности и применяемы в нем функциональные и временные свойства.
Но похоже, придется со следующей аказией прикупить дисплейчик с данным контроллером и сваять какую-нибудь developer board с Atmeg'ой.
Добавлю.
Если Вы решитесь перевести свой код в старт-стопный режим, несмотря на то, что в железе "и так работает", то следующими шагами были бы тонкие настройки примитива SSD1306 свойствами SDSETUP, SCLWIDTH и SASETUP.
Все это я мог бы и сам сделать в Вашем коде и отладить в Proteus'е, но, в данной ситуации, важна, именно, работоспособность кода в железе.
Последний раз редактировалось ProtAS-13; 14.10.2018 в 14:15.
|
|
|
|
14.10.2018, 17:05
|
|
Временная регистрация
Регистрация: 12.09.2018
Сообщений: 92
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Модель UG-2864HSWEG01 в Proteus 8.7 глючная?
Мы такое уже пробовали:
Код:
|
void OLED_INIT (void) //ИНИЦИАЛИЗАЦИЯ ДИСПЛЕЯ
{
unsigned char k;
for(k=0;k‹18;k++)
{
START();
SEND(NAME);
SEND(COM);
SEND(pgm_read_byte(init+k));
STOP();
}
} |
Это не сработало.
Если вы о том, что надо таким образом передавать данные, т.е. байты в видеопамять экрана, то если даже сработает, это не приемлемо для меня снизит частоту обновления экрана, я даже не хочу тратить время на проверку такого варианта!
К сожалению, видимо этот примитив писался по датащиту, а в датащите была ошибка, или производитель SSD1306 ввёл недокументированные изменения в контроллер.
Может мои экранчики сделаны на ssd1309:
Последний раз редактировалось Donker; 14.10.2018 в 18:34.
|
|
|
|
14.10.2018, 18:50
|
|
Прописка
Регистрация: 17.03.2015
Сообщений: 287
Сказал спасибо: 0
Сказали Спасибо 209 раз(а) в 121 сообщении(ях)
|
Re: Модель UG-2864HSWEG01 в Proteus 8.7 глючная?
Сообщение от Donker
|
Мы такое уже пробовали:
|
Пробовать то мы пробовали, вот только в новой версии кода все по старому:
Нажмите, чтобы открыть спойлер
Код:
|
void SSD1306_I2C_INIT (void) //ИНИЦИАЛИЗАЦИЯ ДИСПЛЕЯ
{
I2C_Start();
I2C_SendByte(NAME);
for(unsigned char i=0; i‹18; i++)
{
I2C_SendByte(COM);
I2C_SendByte(pgm_read_byte(init+i));
}
I2C_Stop();
} |
и
Код:
|
for(unsigned char k=0; k‹5; k++)
{
I2C_Start();
I2C_SendByte(NAME);
I2C_SendByte(COM);
I2C_SendByte(0x21); //Set Column Address (21h)
I2C_SendByte(COM);
I2C_SendByte(115); //будем выводить между 115...
I2C_SendByte(COM);
... |
Такой код, как мы выяснили, в Proteus'е будет работать неверно.
Сообщение от Donker
|
Если вы о том, что надо таким образом передавать данные
|
Речь идет только о передачи команд - данные мы не трогаем.
Сообщение от Donker
|
Может мои экранчики сделаны на ssd1309:
|
Из видео не понял, какая библиотека работает неверно. Если не трудно, расшифруйте, проанализирую код - тогда будет предметный разговор.
|
|
|
|
15.10.2018, 19:47
|
|
Прописка
Регистрация: 17.03.2015
Сообщений: 287
Сказал спасибо: 0
Сказали Спасибо 209 раз(а) в 121 сообщении(ях)
|
Re: Модель UG-2864HSWEG01 в Proteus 8.7 глючная?
Наконец то мне доперло, по поводу индикации цифр в симуляторе.
Вы как раз наткнулись на глюк примитива SSD1306, который я привел в посте #3 - самая первая установка адреса знакомест работает неверно.
Можно конечно программным способом исправить это (см. рис), но подгонять программу под Proteus - это полнейший БРЕД.
Поэтому, остается только ждать, когда разработчики ( ТЕНЬ ауу!!!) обратят на эту (и с передачей команд) ошибку внимание и исправят ее. И если ошибку с передачей команд можно обойти старт-стопами, что, в общем то, нормально, то эта ошибка - чистый ляп разработчиков.
Короче - забейте, и отлаживайтесь в железе.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:44.
|
|