![]() STM3. 2F1хх — продолжаем лечение от ардуинозависимости при помощи LCD / Хабрахабр.Добрый день, уважаемые хабровчане.В своей прошлой статье я рассмотрел применение замечательных микроконтроллеров STM3. Скачать Аудиокнигу Дракон Шварца there. F1xx на примере управления сервоприводами.В этой статье мы обратимся к более интересному вопросу – управлению цветным графическим LCD- дисплеем.Помимо стандартной работы с дисплеем я постараюсь осветить вопросы использования особенностей микроконтроллеров STM3. F для эффективного решения данного вопроса. Итак, начнем. Небольшое дополнение к вступлению – эта статья была начата более полугода назад, однако потом мне пришлось прерваться (сначала защита дипломного проекта, потом множество срочных проектов на работе), и время нашлось только сейчас. RESET – вывод для сброса контроллера; 2. Контроллер Philips LDS183, применяемый в дисплее LPH9135, по командам совместим с LCD - контроллером Philips PCF8833, который применялся в телефонах Nokia 6100, 7210, 6610, 7250. LCD, Экран, Дисплей, модуль Купить Отснято оригинальное видео 2600/ 2650/3100/3120/3200/5100/5140/6100/6220/7210/7250/ 6610. Завалялся в закромах дисплейчик от мобилки Nokia 3100, хочу. ЖК-дисплеев популярностью пользуются дисплеи от Nokia ХЗ и Siemens S(K)65. ![]() Поэтому она получилась сейчас, конечно, не совсем такой, какой я ее представлял в начале, часть кода и графического материала бы потеряна – но все- таки, я постарался закончить ее, и надеюсь, что она будет для вас интересна. Железо. Прежде всего, о железе. Ядром системы, как и в прошлый раз, будет отладочная плата STM3. VLDISCOVERY, которую можно приобрести за 3. Собирать схему будем на макетной плате, чтобы поменьше паять. Однако, в отличие от прошлого раза, пайка нам таки предстоит, причем довольно специфическая – паять придется к гибко- жесткой печатной плате сзади дисплея (попросту говоря, к пленочке с контактами). Но об этом позже. Источник питания на 3. ![]() В есть на отладочной плате, поэтому все что нам потребуется дополнительно – это собственно дисплей и источник питания на 1. Собственно, одному из таких дисплеев и посвящена эта статья. Есть более большие дисплеи nokia чем ваш, и по "копеечной" цене. Завалялся в закромах дисплейчик от мобилки Nokia 3100, хочу " Nokia 6610 6610 7210 7250 3100 цветной Epson( контроллер. Поэтому в данный момент, я, конечно, считаю дисплеи с е- бей наиболее удобным и правильным вариантом. Наконец, последний вариант, который мне бы хотелось отметить, это вот такие занятные девайсы: 1- 5- lcd- rechargeable- digital- usb- photo- frame- keychain. Это чудо китайских технологий представляет собой миниатюрную цифровую фото- рамку. Как выяснилось, несколько зарубежных энтузиастов уже копались в ее недрах, и выяснили, что строятся они на 6. ST2. 20. 3U, прошивка коего фиксируется при производстве, поэтому нам он не интересен. Зато, менее чем за 2. STN ЖК- дисплей (большинство из них построены на контроллере PCF8. И все же, остановимся пока на первом варианте, то есть — дисплее от мобильного телефона. Согласно информации, взятой с просторов интернета, из небольших цветных ЖК- дисплеев популярностью пользуются дисплеи от Nokia ХЗ и Siemens S(K)6. По первому дисплею довольно много информации, но сам он уступает дисплеям от сименса в качестве изображения, разрешении, а главное – во времени отклика, которое делает его почти непригодным для воспроизведения анимации. А нам с вами не интересно выводить статические картинки, так ведь? Второй дисплей, судя по данным из интернета, предоставляет нам разрешение в 1. Впрочем, возможности сравнить эти два дисплея у меня, к сожалению, не было – т. Первые грабли подстерегают нас при покупке самого дисплея. Дело в том, что сименс устанавливает в свои S6. LS0. 20xxx, LPH8. ![]() L2. F5. 0xxx. Про третий я не слышал вообще ничего, на второй есть официальный даташит, но, похоже, этот контроллер намного менее распространен. А вот первый, LS0.
SK6. 5 не оказался исключением. Казалось бы – все замечательно, но тут кроется один неприятный факт: на контроллер даташита нет. Таким образом, разрабатывать придется без официального документа, в котором бы были описаны команды и регистры. Но не все так плохо – умельцы провели сеанс реверс- инжениринга и определили основы взаимодействия с дисплеем, и информации о нем в интернете очень немало. Рассмотрим дисплей подробнее. Дисплей LS0. 20xxx. Первое, что бросается в глаза – весьма удобные контактные площадки, подпаяться к которым куда проще, чем к мелким разъемам на большинстве дисплеев. Правда, расположены они на гибко- жесткой печатной плате, которую, при неосторожном обращении, можно поплавить паяльником, так что при пайке ставим температуру паяльника поменьше. Всего дисплей имеет 1. RS – сигнал переключения команда / данные RESET – сигнал сброса дисплея. CS – сигнал выбора устройства SPICLK – тактовый сигнал SPIDAT – сигнал MOSI SPI2. V и 1. 8. V – питание дисплея. LED+, LED. Это питание подается на 3 светодиода, ток через них регулируется схематикой контроллера, так что к ним безбоязненно можно подключить одну- две 9. В батарейки без токоограничительных резисторов. Я подключил две последовательно включенные, слегка подсевшие, кроны, получив напряжение около 1. В. Контакты 1. V8, 2. V9 и GND обеспечивают питание схем дисплея. Что интересно, во многих схемах подключения можно увидеть пин 1. V8 вообще никуда не подключенным. Во всех остальных схемах пины 1. V8 и 2. V9 соединены вместе и подключены к источнику 3. В. Это подключение оказалось вполне работоспособным, поэтому так и поступим. Пины CS, DAT, CLK являют нам тривиальный SPI интерфейс без ответного провода. Этот факт не может не радовать, т. Пины RS и RESET – два дополнительных управляющих сигнала для дисплея. Первый, находясь в активном уровне (лог 0) индицирует о том, что мы передаем дисплею команды, а в неактивном (лог 1) – данные. RESET, как следует из названия, предназначен для сброса контроллера. Теперь нам требуется подключить дисплей к нашей отладочной плате при помощи макетки. Для этого мной был выбран шлейф с 1. IDC- разъемом. Свой тактический промах я понял когда уже подпаял шлейф – дело в том, что на макетке горизонтальные гнезда соединены между собой, поэтому ряды разъема оказываются закороченными. Как бы то ни было, другого разъема у меня все равно не было, так что пришлось вносить поправки в виде «ножек» из проволоки — т. Тем, кто будет повторять мои эксперименты все же советую взять однорядный 1. После того как шлейф обжат, его следует подпаять к контактам дисплея – напоминаю о том, что пленка, на которой расположены контакты, не очень любит длительное воздействие высокой температуры, так что стараемся паять быстро и четко. После пайки размещаем разъем на макетной плате и начинаем соединять перемычками с контроллером. Пины питания подсветки сразу же отводим куда подальше, втыкаем туда разъем от кроны и забываем о них. У кого есть источник питания на 1. В – еще лучше, не придется постоянно отключать батарейки в целях экономия энергии. Далее соединям SPI- интерфейс. Отладочную плату в макетку удалось установить только свесив горизонтальные пины (по уже описанной причине перемыкания), которых, к счастью было немного. Однако среди них оказался интерфейс SPI2, так что в нашем распоряжении остался только первый. Впрочем, нас это не должно сильно расстроить, т. Поэтому соединяем CLK с пином PA7, DAT – с пином PA5. CS будем дергать ручками в соответствии с логикой работы, как и RS с RESETом – поэтому эти три сигнала выводим туда, куда нам удобно. Я выбрал пины PA2, PA3, PA4. В итоге у вас получится что- то вроде этого: Кстати, небольшой оффтоп: после того, как я все подключил, я выдал тестовый 1. КГц меандр на один из пинов. И вот что показал осциллограф: Канал 2, обозначенный синим цветом, подключен к самому пину. А вот канал 1 (желтый), подключен к соседнему с ним выводу. Видите эти красивые экспоненты с амплитудой почти 1. В? Все эти перемычки на макетке дают неслабую емкостную связь между пинами. Что характерно, если отладочную плату вытащить из макетки, влияние пракически отсутствует: Поэтому проектируя устройство будьте бдительны: макетка вносит свою специфику, с котрой надо считаться. Высокочастотные схемы собрать на ней практически невозможно. После подключения дисплея достаем мультиметр и внимательно проверяем сборку, прозванивая все сигналы, чтобы не грешить на прошивку когда у вас отойдет проводок. Если все соединено правильно, запускаем Кейл и переходим к следующей части. Код. Как я уже упоминал, я вернулся к написанию статьи спустя много месяцев после, собственно, экспериментов с дисплеем, поэтому часть кода была потеряна. Но я постарался восстановить важные моменты по памяти. Впрочем, взаимодействие с дисплеем весьма тривиально и не должно вызвать затруднения. Так как наша задача сейчас – разобраться с дисплеем, то не будем мудрствовать лукаво и прикручивать загрузку с карточек, чтение файловых систем и т. Для этого рекомендую набросать на удобном вам языке программирования программку, которая переведет стандартный bmp- файл в запись вида const uint. Больше всего это похоже на черную магию, потому что даташита на контроллер у нас нет, зато есть инструкции от тех, кто реверсил, в которых сразу дается «заклинание» в виде последовательности байт, без объяснения, почему она именно такая. Если вас не устраивает такой подход, то наилучшим выходом будет приобрести какой- нибудь из упомянутых мной дисплеев с е- бея, к которым идет полный комплект документации. Итак, заклинания. Дисплей инициализируется следующей последовательностью (очень чувствительной к паузам!): Подаем уровень лог 0 на линию RESET и удерживаем его около 5 мс. Выдаем первое заклинание дисплею, представляющее собой вот такой блок байт: uint. После этого блока байт необходимо выждать 7 мс. Выдаем блок байт uint. Я решил заодно испробовать бит- бандинг, для чего сразу объявил три указателя: uint. Так как адресное пространство у нас 3. ИО или RAM (bit- band alias region) с двордами в bit- band region. Уровнем сигнала на нем управляет бит номер 2 регистра GPIOA- > ODR. Собирая все это вместе получаем. CS = 0x. 42. 00. 00. C)*3. 2+2*4 = 0x. Теперь, записав отличное от нуля значение по этому адресу, мы установим связанный с этой ячейкой памяти бит в 1, записав нулевое – в 0. Три блока байт у нас уже объявлены, проведем инициализацию периферии: RCC- > APB2. ENR . Итак. Команда . Байты ХХ и YY обозначают позицию нижнего левого угла прямоугольника. Верхний правый угол всегда будет равен пикселю (1. В данном случае – 1. R- G- B)Для вывода информации в ограниченную область, команда используется в несколько модифицированном виде: ! Это уже неплохое достижение и широкое поле для деятельности, но. А наша цель – вылечиться от ардуинозависимости и понять, какие задачи лучше решать другими методами.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |