Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

SSD1306 будут работать 4 шт???

Непрочитано 28.07.2018, 21:58  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию SSD1306 будут работать 4 шт???

Здравствуйте. Подключил на два I2C по два дисплея SSD1306. У них по два адреса есть. На I2C1 два дисплея работает с разными адресами. На I2C2 работает один дисплей с адресом 0х78, а 0х7А инициализируется ,но изображение непонятно как выводиться. Справа в 2 пикселя вертикальная полоска. На каждом дисплее я пишу Display 1, Display 2, Display 3, Display
4. На четвертом дисплее выводиться только цифра 4 в первой строке сдвинутая влево на 2 пикселя. Менял дисплеи местами, менял им адреса. Любой дисплей который вешаю именно на I2C2 с адресом 0х7А вот так непонятно показывает.

Проц стм32ф030с8. Может есть какието ограничения секретные? ))
Миниатюры:
Нажмите на изображение для увеличения
Название: 20180728_205657.jpg
Просмотров: 0
Размер:	1.36 Мб
ID:	131350  
Реклама:
miwutka вне форума  
Непрочитано 28.07.2018, 22:18  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО/МО
Сообщений: 12,288
Сказал спасибо: 11,862
Сказали Спасибо 4,159 раз(а) в 3,177 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: SSD1306 будут работать 4 шт???

miwutka, наверное со схемы коммутации каждого дисплея в паре, их подключения к I2C,… стоит начать?
А в коде прошивки отладить отдельно вывод сначала но младший, потом на старший на первом и на втором I2C.
Если отдельно все заработает, потом уже можно совместную работу на каждую пару, а в самом конце уже на все четыре…
Пока совсем непонятно где собака порылась…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Сказали "Спасибо" mike-y-k
miwutka (28.07.2018)
Непрочитано 28.07.2018, 22:39  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: SSD1306 будут работать 4 шт???

Спасибо! Я всё так проверил. Отдельно всё работает. Я вот что думаю. У меня 4 буффера для каждого дисплея

static uint8_t SSD1306_Buffer_1[SSD1306_WIDTH * SSD1306_HEIGHT / 8];
static uint8_t SSD1306_Buffer_2[SSD1306_WIDTH * SSD1306_HEIGHT / 8];
static uint8_t SSD1306_Buffer_3[SSD1306_WIDTH * SSD1306_HEIGHT / 8];
static uint8_t SSD1306_Buffer_4[SSD1306_WIDTH * SSD1306_HEIGHT / 8];

выходит каждый буфер хавает по 1024 кб...

Может банально не хватает памяти ОЗУ для этого? Как я понимаю ОЗУ 8 кб вроде...?
Program Size: Code=7176 RO-data=3632 RW-data=72 ZI-data=4904
Я плохо понимаю что сколько тут занимает... Первое флеш наверно а второе ОЗУ 3632 байта... а 4904 что за хрень? ))

Вообщем у меня все функции скопированы 4 раза. Они для каждого дисплея отдельно. В четвертой функции для обновления дисплея я использовал четвертый буфер. Сейчас решил третий выводить и он вывелся без проблем но с полоской справа в 2 пикселя. С полоской я в курсе что делать. Вот мне кажется что ему может ОЗУ не хватает? Попробовать один буфер для всех может использовать? Конечно так было б экономнее и правильнее, но я хотел отдельные буферы завести...

PHP код:
void SSD1306_UpdateScreen_My_4(void) {
    uint8_t m;
    
    for (m = 0; m ‹ 8; m++) {
        ssd1306_send_4(0x00,0xB0 + m);
        ssd1306_send_4(0x00,0x00); // Смещение по горизонтали na 2 pix
        ssd1306_send_4(0x00,0x10);
        
        /* Write multi data */
        ssd1306_Multisend_4(0x40, &SSD1306_Buffer_3[(SSD1306_WIDTH) * m], (SSD1306_WIDTH));
    }
} 

Последний раз редактировалось miwutka; 28.07.2018 в 22:41.
miwutka вне форума  
Непрочитано 28.07.2018, 22:40  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: SSD1306 будут работать 4 шт???

Сообщение от mike-y-k Посмотреть сообщение
Пока совсем непонятно где собака порылась…
Кто к ночи черта помянет...
Сообщение от mike-y-k Посмотреть сообщение
со схемы коммутации каждого дисплея в паре
Надо понимать, в паре коммутаций нет. Просто обращение по разным адресам.
Сообщение от miwutka Посмотреть сообщение
Любой дисплей который вешаю именно на I2C2 с адресом 0х7А вот так непонятно показывает.
Скорее всего виноват копипаст. Вы же копипастом размножали работу с экранами? Внимательно проверьте.

А к собакам какие могут быть претензии?!

ПЫСЫ. Если грех на неправильность буферов - перепутать их в разных вариантах.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.

Последний раз редактировалось akegor; 28.07.2018 в 22:45.
akegor вне форума  
Непрочитано 28.07.2018, 22:50  
AR_Favorit
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.03.2010
Сообщений: 2,896
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
AR_Favorit на пути к лучшему
По умолчанию Re: SSD1306 будут работать 4 шт???

Сообщение от miwutka Посмотреть сообщение
Program Size: Code=7176 RO-data=3632 RW-data=72 ZI-data=4904
Я плохо понимаю что сколько тут занимает...
Так а почему вы не изучите основы, включающие и этот вопрос, прежде чем выносить свои проблемки на всеобщее обозрение?

Сообщение от miwutka Посмотреть сообщение
Первое флеш наверно а второе ОЗУ 3632 байта... а 4904 что за хрень? ))
"Второе" не озу, а read-only data - константы, расположенные в программной памяти.
Озу у вас - 72 байта неинициализированной памяти плюс 4904 инициализированной (включая массивы).

Если у вас перестанет что-то помещаться в память, компилятор об этом скажет. Ищите ошибку в своих текстах. Стопудово где-то данные одного дисплея пишутся в поток для другого, или в "не тот" порт.
AR_Favorit вне форума  
Сказали "Спасибо" AR_Favorit
miwutka (28.07.2018)
Непрочитано 28.07.2018, 22:55  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: SSD1306 будут работать 4 шт???

Вообщем переписал чтобы первый буфер использовать под первые два дисплея, а второй под вторые два дисплея на второй шине. Теперь всё работает...
Сообщение от AR_Favorit Посмотреть сообщение
Если у вас перестанет что-то помещаться в память, компилятор об этом скажет.
Ну я тож так думал, но малоли... Я ж умею чудить... Завтра на SPI еще два дисплея буду вешать...
miwutka вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
S7-200 CPU222 КАК РАБОТАТЬ С HSC ? rihkov Производственное оборудование 1 07.03.2012 11:07
[Решено] Сменил материнку на P4P800SE - перестал работать программато Владимир Ремонт оргтехники 4 07.04.2005 08:24
как работать с EEPROM в КР1878ВЕ1? Maxoid Микроконтроллеры, АЦП, память и т.д 1 17.12.2003 17:16


Часовой пояс GMT +4, время: 22:52.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.