Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Чт окт 31, 2019 08:48:26

Подскажите по дисплею NOKIA 1202 (контроллер STE2007)!
Я не знаю, китайский он или нет, но покупался на территории РФ в магазине.
Проблема в медленной скорости вывода информации на дисплей. МК ATmega328P, тактовая 1 МГц. Питание МК и дисплея 3,3 В.

SPI пробовал два варианта: программный "ногодрыг" и вариант с посылкой бита команда/данные программно с последующей инициализацией аппаратного SPI.
Программный вариант работает только если есть задержка по между низким и высоким уровнем SCK не меньше 35 мкс.
По второму варианту, работает только при частоте шины SPI = fosc/64 =15625 Гц (64 мкс).
При частоте шины SPI = fosc/32 =31250 Гц (32 мкс) уже ничего дисплей не выводит.

Пробовал инициализировать дисплей по-разному. В даташите инициализация короткая, остальные параметры после сброса устанавливаются по-умолчанию и описаны в табл. 17 даташита. При такой инициализации задержка в SCK должна быть не менее 50 мкс для моего дисплея.
На просторах интернета есть много вариантов инициализации. В частности, подглядев в этих вариантах, я установил Refresh Rate = 65 Гц (по дефолту 80 Гц) и выставил Bias Ratio = 1/4 (по дефолту 1/10). Я не смог разобраться, как данные параметры влияют на скорость работы дисплея, но с их установкой скорость выросла и задержка по между уровнями SCK составила 35 мкс.

Есть ли способ заставить дисплей работать быстрее?
Там же, на просторах интернета, говорилось, что для дисплея NOKIA 1202 можно выставить задержку равную нулю и дисплей будет очень шустро выводить информацию. Информация взята отсюда. https://digitalchip.ru/obnovlenie-bibli ... leev-nokia
И библиотеку эту я тоже пробовал. Работает одинаково по скорости с моей. Да это и не удивительно, если самая главная функция SendByte написана аналогично примеру.

Просто те же дисплеи с контроллером SSD1306 работают на частоте шины до 400 кГц и очень шустро выводят информацию. Здесь же скорость в 8 раз меньше вышла, это если брать программный SPI с задержкой 35 мкс. И вообще, получилось, что программный SPI работает шустрее аппаратного.
В остальном, на моём дисплее не регулируется контрастность параметром Electronic volume.
PS. Charge Pump = 4х по советам с того же интернета для питания дисплея и контроллера от 3,3 В.
Вложения
ste2007.pdf
(725.71 KiB) Скачиваний: 38

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Чт окт 31, 2019 09:28:51

Интересно, что по даташиту из вложения допустимые скорости по SPI должны мегагерцами исчисляться.

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Чт окт 31, 2019 10:50:36

Так в том то и дело. У меня в данный момент полное обновление дисплея составляет 8*35*(96*9)/1000=242 мс, где
8 - бит данных;
35 мкс задержка между передачей бит
96*9 - количество заполняемых столбцов в дисплее.
Но визуально, требуется явно больше времени на обновление и, скорее всего, я чего-то не учел.
Причем, что интересно, интерфейс SPI в данном дисплее требует 9 бит и я их реально передаю. Но, почему-то, при передаче бита команда/данные задержка на SCK не требуется, а при последующей передаче 8 бит она уже нужна. Поэтому то в формуле я и поставил первым число 8.
По факту, при нынешней частоте МК в 1 МГц, время на исполнение команды 1 мкс, что согласно даташита на STE2007, вполне достаточно для работы SPI интерфейса
мой код по передаче 9 бит с использованием программного SPI

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Чт окт 31, 2019 12:13:35

А Вам зачем-то нужно каждый раз при передаче байта дёргать Chip Select? IMHO лучшей тактикой будет "прижать" CS к земле навсегда, аппаратно :)

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Чт окт 31, 2019 12:54:31

А Вам зачем-то нужно каждый раз при передаче байта дёргать Chip Select?

А что это даст? Лишние 2 мкс на переключение CS? У меня там 35*8=280 мкс на передачу байта мешают. А 2 мкс - это ерунда

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Чт окт 31, 2019 12:57:56

Всех приветствую! Есть у кого библиотека для вывода на st7789/st7735 не ардуиновская? Нужны сами функции вывода теста и изображений на экран, не хватает смекалочки... Пишу на си, буду благодарен за любую помощь. Компилятор CVAVR

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Чт окт 31, 2019 13:16:11

serg_svd, а Вы попробуйте :) я не работал с такими дисплеями никогда, просто посмотрел в даташит мельком. Каждый раз, когда Вы "поднимаете" CS, контроллер дисплея обрабатывает данные. И в даташите есть тайминги, на какое время минимум контроллер будет занят. Если хотите - почитайте, посчитайте. Мне кажется, что попробовать намного быстрее. "Отцепить" CS от МК, подключить его к земле. Убрать дилей из Вашей функции передачи данных. Минутное дело.
А что Вам кажется, что это ничего не изменит - так вода-то темна в облацех :) Буферы приёма, буферы передачи... Вы на каждый битик ставите 35 мкс задержек, а на самом деле значение имеет суммарная сформированная пауза в 280 мкс. Потому, что контроллер дисплея раньше этот байт не может забрать. Потому, что Вы ему CS тыкаете без нужды 100500 раз на каждом обновлении экрана. Я бы понял, если б на этом же SPI висела другая периферия, и нужно было б её опрашивать постоянно. (хотя не, вру, всё равно не понял бы).

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Чт окт 31, 2019 14:08:00

AAX писал(а):а Вы попробуйте

Да попробовать то реально делов на полминуты. И они ушли на пайку CS на землю, как Вы и рекомендовали. delay убрал. В итоге, дисплей ничего не выводит. Вернул обратно управление CS и delay - все работает как и раньше. Тормознуто, но работает

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Чт окт 31, 2019 14:18:06

А с "заземлённым" CS и delay-ем работает? Может, CS на землю припаять я и погорячился :) Но после каждого переданного байта его дёргать точно ни к чему

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Чт окт 31, 2019 14:29:29

А с "заземлённым" CS и delay-ем работает?

Не работает

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Пт ноя 01, 2019 09:35:45

Отбой тревоги!
Нашелся у коллеги дисплей 1202. Подключил, контраст регулируется, на 8МГц работает. Все задержки закомментировал.
Так что опять я попал на левую железку

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Ср ноя 06, 2019 20:35:43

Мой 1202 просто летает! А Вы там резет програмный не делали перед инициализацией (честно - код не смотрел)?

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Ср ноя 06, 2019 22:33:08

А Вы там резет програмный не делали перед инициализацией (честно - код не смотрел)?

А кода инициализации я не показывал. Меня больше код SPI 9 бит интересовал. Я думал в нем ошибка где-то.
При инициализации вначале аппаратно сброс делается, дергая ногу RESET. Далее Первой командой идет E2h. А как программный Reset влияет?

PS. у меня нет под рукой именно моего кода инициализации, он на рабочем компьютере (могу завтра выложить). Но если ориентироваться по командам, то инициализация по ДШ такая (код для примера взят с сайта easyelectronics.ru). Отличие только в том, что я закомментировал строчки с регулировкой контраста. На моем дисплее они просто не работали и контраст не регулировался.
Код:
  LcdSend( 0xE2 , 0 );  // Soft reset
  LcdSend( 0x3D , 0 );  // Charge pump
  LcdSend( 0x01 , 0 );  // Charge pump = 4 (default 5 is too hight for 3.0 volt)
//  LcdSend( 0xE1 , 0 );  // Additional VOP for contrast increase
//  LcdSend( 0x16 , 0 );  // from -127 to +127
  LcdSend( 0xA4, 0 );  // Power save OFF
  LcdSend( 0x2F, 0 );  // Booster ON Voltage regulator ON Voltage follover ON
  LcdSend( 0xAF, 0 );  // LCD on

Ну и дополнительно я активировал:
serg_svd писал(а):я установил Refresh Rate = 65 Гц (по дефолту 80 Гц) и выставил Bias Ratio = 1/4 (по дефолту 1/10). Я не смог разобраться, как данные параметры влияют на скорость работы дисплея, но с их установкой скорость выросла и задержка по между уровнями SCK составила 35 мкс.

После этого занимался правкой кода программного SPI. Тоже не знаю по какой причине, но заменив строчки
Код:
if ()....{} else {}
на тернарную операцию я еще получил выигрыш в скорости, но все равно видно было как заливает данные контроллер в дисплей. На оригинальном дисплее скорость была очень высокая. Но оригинальный дисплей не мой, хотя спасибо коллеге, что он у него нашелся. Иначе я бы еще кучу времени потерял пока не сдался и не запинал бы свой дисплей в ближайшую мусорку.

Chettuser писал(а):Мой 1202 просто летает!

1320 fps, конечно внушает. Я свои посчитать не могу, но пусть будет 1-2 fps…
Но есть такая информация. Я общался с одним разработчиком. Он мне показывал скриншот с программы STM32CubeMX. Там SPI 9 bit был настроен на скорость 18 Mbit/s и дисплей спокойно работал с этой скоростью. Я попытался посчитать, хотя бы приблизительно, скорость работы с моим дисплеем и у меня вышло 27 kbit/s. И то, очень приблизительно, так как я не учитывал тики самого контроллера. В реальности там может быть еще медленней.

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Чт ноя 07, 2019 20:00:45

Я запускал 1110 в графическом режиме
C моей тактовой 48 МГц буфер выталкивается за 0.7 мСек
https://www.youtube.com/watch?v=4BIfsrSmDO8

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Чт ноя 07, 2019 20:38:41

Sergi, шикарно.
У меня работало только с тактовой 1 МГц. На 8 МГц я устал подбирать искусственную задержку между CLK_L и CLK_H.
По даташиту там наносекунды должны быть. У меня же задержки до 50 мкс на 1 бит SPI (!!!) приходилось ставить.
И еще, в даташите на STE2007 временные характеристики приведены для тактирования на частотах 1 и 4 МГц. Выходит, что тактирование на частоте 48 МГц недокументированное?

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Пт ноя 08, 2019 05:04:00

Дисплей подключен к STM32F030 работающем на частоте 48МГц. SPI работает без делителя. Частота SCK 12МГц. Была идея запустить дисплей с изображением градаций серого, но за практической ненадобностью не сделал.

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сб ноя 09, 2019 20:14:20

serg_svd писал(а):Выходит, что тактирование на частоте 48 МГц недокументированное?

у STM32F030?
Он спокойно гонится до 90 МГц и даже больше! Но я бы не стал так делать, я этот фокус проворачивал из чистого любопытства. При разгоне всё упирается в частоту Flash, срам и проц молотят нормально, без сбоев. Например STM32F767 спокойно работает и на 500 с лишним МГц - опять же упираемся во Flash (примерно 60-70 МГц это предел). :beer:

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сб ноя 09, 2019 22:45:26

Chettuser писал(а):у STM32F030?

Да нет, конечно! :)) В способностях STM32 работать на высоких частотах я не сомневался.
А вот дисплей на таких частотах - явно недокументированная фишка :). Повторюсь, в ДШ временные характеристики приведены только для частот тактирования 4 МГц и 1 МГц

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Вт ноя 12, 2019 19:17:17

Тот, что на видео, не работает на такой частоте, обновление изображения максимум 80 Гц по даташиту. 1300 - это скорость, с которой я пытаюсь впихнуть данные в дисплей )

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Вт ноя 26, 2019 05:24:12

Здравствуйте! Есть много проектов секундомеров. Но все они внешне похожи на колхозные варианты. Есть дешевый секундомер китайский 150-200 рублей, но у него функционал ни о чем. В него можно добавить микроконтроллер и делай что хош. Но как туда его впиндюрить?
Вскрывал. Там между платой и дисплеем резиновая вставка, видимо что бы не паять. Эта резинка с токопропускающими полосками: прижали - прикрутили = припаяли. Заменить плату надо на лутованную, так как шаг где-то 0,5 мм между выводами. Лутовать не пробовал, раньше делал только на платках с "дырочками"))). Подключиться к имющемуся МК пока не представляется возможным по моему разумению, так как он запаян в черную каплю слюды (как обычно в гирляндах и т.д. и т.п.)

Может у кого-то есть опыт? Подскажите или пните ссылочку.
Ответить