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

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

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

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

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

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


 
Опции темы
Непрочитано 09.10.2016, 14:47  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: OLED ssd1306 + STM32f030f4

Сообщение от dosikus Посмотреть сообщение
Вообще нет? Издеваешься, да?
понял )))) один кондер впаял но дисплей зависает еще )) Я понял что дело в железе. А вот на вашей фото на дисплее рисуется график. Надо будет и себе такое КАК-ТО запилить попозже..... )))
Реклама:
miwutka вне форума  
Непрочитано 09.10.2016, 14:58  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: OLED ssd1306 + STM32f030f4

miwutka, там пока рисуется фигня, взятая отсюда
http://cadhouse.narod.ru/projects/oled/oled.htm

Кстати я неверно писал о записи с автоEND.
Там можно и больше 255 байт гнать.
Надо выставить бит RELOAD, в NBYTES загрузить 0xFF .
И в цикле вычитать из счетчика посылок 0xFF , когда значение счетчика будет меньше 0xFF сбросить RELOAD выставить AUTOEND и далее как обычно.
См. Figure 228. Transfer sequence flowchart for I2C master transmitter for N›255 bytes
А вот с DMA похоже можно только 255 отправлять...

А здесь посылка данных в ssd1306 для случая когда счетчик меньше 255.
Код:
void ssd1306_SendData(uint8_t *data, uint8_t count)
{ 
		uint8_t index=0;
		I2C1-›CR2 =  I2C_CR2_AUTOEND | ((1+count)‹‹16) | (SSD1306_OWN_ADDRESS‹‹1); 
		
			/* Check Tx empty */
	  while (!(I2C1-›ISR & I2C_ISR_TXE) );
	
	 I2C1-›TXDR = SSD1306_DATA_MODE; 
	 I2C1-›CR2 |= I2C_CR2_START; 
	
	for(index=0;index‹=count-1;index++)
	 {
		while (!(I2C1-›ISR & I2C_ISR_TXIS) );
		
	I2C1-›TXDR = *data++ ; /* Byte to send */
	 }	
}
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 09.10.2016 в 15:17.
dosikus вне форума  
Сказали "Спасибо" dosikus
miwutka (09.10.2016)
Непрочитано 09.10.2016, 18:20  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: OLED ssd1306 + STM32f030f4

Добывил таймауты в трех местах I2C - теперь дисплей не зависает.
miwutka вне форума  
Непрочитано 09.10.2016, 19:22  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: OLED ssd1306 + STM32f030f4

Плохо это всё! Там и без тайм аутов всё должно работать. Таймаут это уже как последний рубеж, когда и так всё работает хорошо.
STM32F0 вне форума  
Непрочитано 09.10.2016, 21:55  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: OLED ssd1306 + STM32f030f4

STM32F0, дисплей зависал как когда я сделал частоту I2C 1.3 МГц. Дотронишся до платы - и втыкнула. Частоту вернул до 400 и всё стало стабильно. Где-товидел что через дросели дисплеи какие-то подключали. Так можно делать? Если да то какой номинал дроселей?
miwutka вне форума  
Непрочитано 09.10.2016, 22:08  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: OLED ssd1306 + STM32f030f4

Лучше резисторы подтяжки сигналов I2C уменьшить Ом до 500-800.
И скорость 1 МГц - опциональная, надо смотреть, принимает ли ее. На 100 кГц работают все устройства. 400 кГц - большинство. А 1 МГц и выше - по особому распоряжению
NewWriter вне форума  
Непрочитано 10.10.2016, 09:50  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: OLED ssd1306 + STM32f030f4

Подскажите такой вопрос: мне нужно генерировать импульсы от 0 до 320 Гц. Для этого у меня формула такая
LEDpins[0] = (23920000/(F_Taho*200))*2;
TIM16-›PSC = LEDpins[0];
Если F_Taho = 0 то частота 12 кГц. Для этого я просто выключаю таймер. Но тогда ножка остается то в состоянии 1 то 0. Как принудительно ее в 0 перевести? В GPIO в каком то регистре можно писать чтобы ножка в 0 перевелась?
miwutka вне форума  
Непрочитано 10.10.2016, 09:53  
DanilinSA
Почётный гражданин KAZUS.RU
 
Регистрация: 25.11.2010
Адрес: г. Дзержинск Нижегородская обл.
Сообщений: 1,721
Сказал спасибо: 130
Сказали Спасибо 1,109 раз(а) в 528 сообщении(ях)
DanilinSA на пути к лучшему
По умолчанию Re: OLED ssd1306 + STM32f030f4

Я такой дисплей по I2C спокойно гнал до нескольких мегогерц ( цифры точные не помню). Короткие провода ( около 5 см). Резисторы подтяжки - штатные на плате дисплея.

Но не рискнул оставить надолго.
DanilinSA вне форума  
Непрочитано 10.10.2016, 12:18  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: OLED ssd1306 + STM32f030f4

Это не помогло.....
PHP код:
TIM_Cmd(TIM17DISABLE);
         
TIM_Cmd(TIM16DISABLE);
         
GPIOB-›BSRR GPIO_BSRR_BR_8;    //сброс в 0
         
GPIOB-›BSRR GPIO_BSRR_BR_9;    //сброс в 0 
miwutka вне форума  
Непрочитано 10.10.2016, 12:39  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: OLED ssd1306 + STM32f030f4

И не поможет. Если выводы назначены как выходы альтернативных функций, то от обычных манипуляций с битами они отключены. Нужно использовать возможности таймера, в частности, регистра BDTR. Там есть табличка состояний выхода при различных комбинациях битов.
Также зависит от того, на каком этапе остановился таймер - до равенства с регистром сравнения или после. Обнулением счетного регистра можно принудительно установить его на 0

Последний раз редактировалось NewWriter; 10.10.2016 в 12:43.
NewWriter вне форума  
Сказали "Спасибо" NewWriter
miwutka (10.10.2016)
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OLED из ЖК 1602 mikesmith Делимся опытом 0 19.05.2016 17:34
LCD или OLED графический дисплей? NecroSS Электроника - это просто 0 06.08.2010 21:33
OLED индикаторы(возможно, от мобильных телефонов, 64х48 и более) Savrik Информация по радиокомпонентам 11 30.06.2010 12:17
Pictiva 128x64 (SSD0323) OLED Module Proteus VSM Model OttoStirliz Микроконтроллеры, АЦП, память и т.д 28 02.04.2008 17:44


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot