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

Re: Графический дисплей LCD 12864 (128x64 пикселя) на ST7920

Вт авг 12, 2014 13:08:28

Я так думаю, что наверное мы с вами все таки пойдем по разным путям, и в итоге получится 2 разных девайса...
Но по крайней мере так веселее будет, и дело быстрее будет двигаться, т.к. все равно база одинаковая...

Вадиматоричик писал(а):Со стробом-то как быть? Как вариант - настроить таймер и шим, пустив вместе с DMA.
А строб это что и для чего?

Re: Графический дисплей LCD 12864 (128x64 пикселя) на ST7920

Вт авг 12, 2014 13:13:37

Ну как же? На LCD пин "E"-то нужно после выставления каждого байта на 8-ми битную шину переводить из одного состояния в другое и обратно. То есть выдал байт, сделал строб, снова выдал байт и т.д. Так же нельзя забывать про RS (Или RW, не помню уже), чтобы показывать, что мы передаем, данные или команду.

Re: Графический дисплей LCD 12864 (128x64 пикселя) на ST7920

Вт авг 12, 2014 13:23:24

Вадиматоричик писал(а):Ну как же? На LCD пин "E"-то нужно после выставления каждого байта на 8-ми битную шину переводить из одного состояния в другое и обратно. То есть выдал байт, сделал строб, снова выдал байт и т.д. Так же нельзя забывать про RS (Или RW, не помню уже), чтобы показывать, что мы передаем, данные или команду.
Ах да...

Думаю что это тоже решаемо, тут http://forum.easyelectronics.ru/viewtop ... 35&t=16592 тоже чел использовал DMA для рефреша цветного дисплея... надо будет глянуть как там сделано...

Re: Графический дисплей LCD 12864 (128x64 пикселя) на ST7920

Ср авг 13, 2014 05:47:47

Исправление ошибок!На просторах интернета удалось найти корпус LQFP48. Который с моим не сошелся. По-этому пришлось переделывать. Теперь все сходится. + доработал LCD макрос.
Мои.rar
(21.47 KiB) Скачиваний: 804

Re: Графический дисплей LCD 12864 (128x64 пикселя) на ST7920

Ср авг 13, 2014 11:18:52

Вадиматоричик писал(а):На просторах интернета удалось найти корпус LQFP48. Который с моим не сошелся.

А что именно не сошлось?... я вроде сверял с реальным контроллером, вроде все ОК было.....

Сверил два варианта, расхождения не нашел... (кроме только того, что площадки отодвинуты от контроллера на 0,1мм, но это никакой роли не играет...)

Re: Графический дисплей LCD 12864 (128x64 пикселя) на ST7920

Ср авг 13, 2014 11:55:47

Вадиматоричик писал(а):Ну как же? На LCD пин "E"-то нужно после выставления каждого байта на 8-ми битную шину переводить из одного состояния в другое и обратно. То есть выдал байт, сделал строб, снова выдал байт и т.д.

А не как же!!! Два таймера и один канал ДМА... Один таймер дёргает Е и ДМА... другой рулит CS1 и CS2... вот и всё... и по сути хардварно...
Так же нельзя забывать про RS (Или RW, не помню уже), чтобы показывать, что мы передаем, данные или команду.

Если через ДМА, то побоку это всё... RS устанавливаем заранее ручками... т.к. пишем через ДМА только данные... а WR вообще можно наглухо привязать к земле... всё можно делать в буфере...

Re: Графический дисплей LCD 12864 (128x64 пикселя) на ST7920

Чт авг 21, 2014 17:28:00

Делаю я себе печатную плату, как вдруг понимаю, что начинаю путаться. Т.к. слишком много элементов обвязки всяких доп. модулей. Да и тяжело держать в голове, что куда подсоединяется и при этом думать, как лучше провести дорожку. Нужно было начертить схему. Но вот беда. Кроме протеуса знаний нет. А в нем нет ни одного нужного элемента (кроме рассыпухи). Т.к. симуляция мне не нужна, а на качество "ГОСТ" я не претендую, то, после выбора программы "по силам" (ею оказался Splan 7.0), я начал чертить схему. Само собой компоненты пришлось делать в ручную. Для начала сделал компонент нашего LCD + "STM32F100xx value line LQFP48". В архиве библиотека компонентов. Все по даташиту. + на макросе LCD, на пустом месте, написаны значения обозначений из статьи с хабра (http://habrahabr.ru/post/213459/). + для тех, кто не пользуется этой программой фото компонентов.
Moi.rar
(24.38 KiB) Скачиваний: 558

Изображение

Re: Графический дисплей LCD 12864 (128x64 пикселя) на ST7920

Пт авг 22, 2014 17:01:32

Вообщем вот версия 0.1:
Изображение
Связь с внешним миром:
1. I2C с подтяжкой подстроечным резистором.
2. 1-Wire с подтяжкой подстроечным резистором.
3. Разъем подключения +5 V.
4. 6 кнопок общего назначения + 2 специального (reset и boot1 (для входа в Bootloader для заливки прошивки)).
5. USART1 подключен через микросхему переходник CP2102 к USB B. Может служить как для общения с компьютером, так и для заливки прошивки.
6. LCD подключен по SPI2, подсветка регулируется через КТ315.
7. К LCD подключается резистивный тачскрин.
8. Есть активный биппер (самостоятельная пищалка). Завалялась в коробке)
Питание:
1. Ставить стабилизатор на 5 вольт не стал. Так что питание на LCD и его подсветку, а так же на подтяжку интерфейсов идет напрямую. А вот на МК - через стабилизатор на 3.3 + обтяжка.
2. Ножки интерфейсов (там где подтяжка к +5) толерантны к 5V.
Что бы еще добавить? Если ничего больше не придумаю, то разведу так, как есть + все свободные порты разведу в форме пинов с шагом 2.54 мм. В построении схем я не очень силен, так что буду благодарен за советы и замечания.

Re: Графический дисплей LCD 12864 (128x64 пикселя) на ST7920

Вс сен 07, 2014 20:31:43

Поигрался немного с дисплеем ST7920 на ATmega32. Написал библиотечку небольшую с использованием фреймбуфера в 1кБ.

Всё-таки гораздо проще с фреймбуффером работать, не отвлекаясь на аппаратные тонкости дисплея. Шрифты, например,
крутить:

Изображение

При этом по таймеру фреймбуфер считывается в экран достаточно быстро, легко давая 20 кадров в секунду. Красота.

Правда, пока библиотека только под 8-бит параллельное подключение, т.к. ориентируюсь на то, чтобы по точно такой же системе в неё добавить поддержку дисплея KS0108, который совместим по пинам и габаритам. Одна плата - два варианта дисплея с разными, естественно, прошивками.

Хотя принципиальной сложности перейти на аппаратный SPI МК никакой нет. Просто, по идее, вместо выставления данных на порту положить их в соответствующий регистр SPI.

Re: Графический дисплей LCD 12864 (128x64 пикселя) на ST7920

Сб ноя 01, 2014 22:08:09

Всем привет.
Я уже пробовал прикрутить дисплей st7920 к Си-библиотеке u8glib - https://code.google.com/p/u8glib/ (U8glib for AVR),использовал Atmega32.Работало отлично(SPI,8-bit).
Теперь вот пробую подключить к STM32F4 DISCOVERY.Использовал библиотеку от Вадиматоричика для STM32.Перепортировал для stm32F407VGT6 на SPI1.Все запустилось,спасибо автору.
Хотелось спросить есть ли какие-то обновления?Как с поддержкой кирилицы?

Re: Графический дисплей LCD 12864 (128x64 пикселя) на ST7920

Пн ноя 03, 2014 20:32:18

Вот поюзал библиотеку от Вадиматоричика

Изображение

Практически все заявленые функции работают.Непонятно только функция OUT_Graf_PasteJmeg,а именно как правильно оформить картинку при помощи Bitmap2Code.Объясните начинающему.

Паралельно юзал библиотеку http://www.coocox.org/driver_comp/lcd12864-c601.html?mc=4&sc=24 но там нет функций графики.

Использовал stm32f4 discovery.

Re: Графический дисплей LCD 12864 (128x64 пикселя) на ST7920

Вт ноя 04, 2014 00:32:31

rastamanoff писал(а):Вот поюзал библиотеку от Вадиматоричика
А де кириллица?...

rastamanoff писал(а):Использовал stm32f4 discovery.
Ой... а я думал что он для цветных смачных дисплеев... наверное лучше - поменять контроллер "вниз", или поменять дисплей "вверх" :).....

Re: Графический дисплей LCD 12864 (128x64 пикселя) на ST7920

Вт ноя 04, 2014 16:06:25

А де кириллица?...


А в том-то и дело - не работает с этой библиотекой,на экране крякозябы.Тот-же пример что и для STM8, но для STM32:

OUT_Graf_String("Èíîãäà ÿ äóìàþ äîëãî", 0, 4, FonOFF_InversOFF);
или
OUT_Graf_String("Иногда я думаю долго", 0, 4, FonOFF_InversOFF);

-результат один крякозябы.При этом выведеный на экран английский алфавит явно соответствует font8x8.h, где есть и кирилица .В библиотеке от CoCoxa используются английские символы вшитые в st7920,а они побольше - на экране помещается всего 4 строки по 16 символов

наверное лучше - поменять контроллер "вниз", или поменять дисплей "вверх"


-наверное...Объясню почему выбор пал на STM32F4, дело в том что есть идея установить у себя в доме что-то типа системы "Умный дом".Потихоньку продвигаюсь с ремонтом,полностью меняю електопроводку ,при этом пробрасывал "вытые пары" в нужные мне точки.Планируется основной модуль и slave-модуля.Вот для основного блока и F4.Правда сначала я думал применять Atmega328 (потом Atmega32),под них и покупался st7920.Использовал библиотеку u8glib в режиме 8-bit (по SPI медленно работает).Проблема для меня в количестве пинов чипа - мало (даже Меги32).А так вполне можно "заваять" все на любимом Atmele.Понравилась u8glib,большой функционал.Делал графическое меню,все просто и понятно.Да и можно симулировать в Proteuse,для этого достаточно поменять одну строчку инициализации на дисплей KS0108 ,и не гонять даром контролер пограматором.
На счет LCD - он меня вполне устраивает потому что во первых есть в наличии.А во-вторых для меня его вполне достаточно что-бы посмотреть состояние каналов,температуру и часы.Хотя можно было цветной или сенсорный поискать.Но...
И еще на F4 есть аудио ЦАП с усилителем,а это уже для авторечевого информатора,который я планировал делать отдельно на Attiny861 по схеме от мистера Чана.
Я ищу библиотеку для STM32 под st7920 с поддержкой графики.Информации в сети по этому поводу прямо скажу не густо.Вот здесь на форуме и наткнулся на библиотеку от Вадиматоричика.
Для меня возникли непонятки с выводом картинки."Рыбка" автора выводится нормально,пробую свои картинки - получается мусор.
И еще заметил такой глюк.Если питание платы (от USB) отключить,а через некоторое время включить,не совсем коректно высвечиваются символы,кнопк RESET не помогает.Лишь после нескольких раз!!! полного отключения и включения питания все приходит в норму.

Re: Графический дисплей LCD 12864 (128x64 пикселя) на ST7920

Ср ноя 05, 2014 01:02:34

rastamanoff писал(а):Объясню почему выбор пал на STM32F4, дело в том что ...........
Ды нормально все, лишь бы устраивали цена и возможности... я бы в принципе даже к intel-у прикрутил бы этот дисплейчик, если его возможностей будет хватать для конкретной задачи...

rastamanoff писал(а):st7920 можно симулировать в Proteuse, для этого достаточно поменять одну строчку инициализации на дисплей KS0108
Во... это интересно... можете примерчик скинуть проекта для AVRSTUDIO ну и проетик в PROTEUS, чтобы на примере все было понятно...

rastamanoff писал(а):На счет LCD .......... для меня его вполне достаточно что-бы посмотреть состояние каналов,температуру и часы.
100%... у меня задачи те же... я тоже пятак таких дисплейчиков заказал, хочу прикрутить к STM32F100 с 8кб RAM-а...

rastamanoff писал(а):Для меня возникли непонятки с выводом картинки."Рыбка" автора выводится нормально,пробую свои картинки - получается мусор.
Ну значит нет все таки ясного представления о строении внутреннего буфера дисплея... нужно грызть дальше :)...

rastamanoff писал(а):И еще заметил такой глюк.Если питание платы (от USB) отключить,а через некоторое время включить,не совсем коректно высвечиваются символы,кнопк RESET не помогает.Лишь после нескольких раз!!! полного отключения и включения питания все приходит в норму.
Это уже совсем странно :shock: ...

Re: Графический дисплей LCD 12864 (128x64 пикселя) на ST7920

Ср ноя 05, 2014 19:40:59

Насчет Proteusa.
Скоее всего я не правильно выразился.Дело в том ,что плагина для st7920 под Proteus ,я в сети не нашел.Зато есть ks0108,правда только 8-bit.Библиотека u8glib поддерживает оба дисплея.Инициализация LCD это одна строка в коде.Я писал две,допустим инициализация для SPI(st7920) и 8-bit(ks0108),одна из которых закоментирована в зависимости от того симулирую я в Proteuse или заливаю прошивку в реальный контролер.В симуляторе отладил всю графику,даром не гоняя МК прошивкой.Недостатком было +10 пинов для ks0108.
И вот еще "наковырял" в сети пример адаптации STM32F101CBT6 под эту библиотеку ,только под другой дисплей http://blog.bastelhalde.de/?p=759#comment-1567.Хочу еще попробовать портировать под F4 и st7920 .Библиотека действительно неплохая,одних названий функций целая страница,всякие там прямоугольники с закругленными углами,пару десятков шрифтов,картинки в формате xbm. :)))

Re: Графический дисплей LCD 12864 (128x64 пикселя) на ST7920

Вт ноя 11, 2014 23:55:09

Доброй ночи.
Мне удалось портировать STM32F4 на LCD ST7920 под библиотекой u8glib,по выше приведеной ссылке.Небольшой отчет ,для сообщества, о проделаной работе и тестовый поект для Keil на моей странице - http://radiomanoff.at.ua/index/stm32f4_discovery_lcd_st7920_u8glib/0-71
Изображение

Re: Графический дисплей LCD 12864 (128x64 пикселя) на ST7920

Пт ноя 14, 2014 12:09:47

rastamanoff писал(а):Доброй ночи.
Мне удалось портировать STM32F4 на LCD ST7920 под библиотекой u8glib,по выше приведеной ссылке.Небольшой отчет ,для сообщества, о проделаной работе и тестовый поект для Keil на моей странице - http://radiomanoff.at.ua/index/stm32f4_discovery_lcd_st7920_u8glib/0-71
Изображение


бился я с ним долго так и не подключил, можно распиновку подключения? если не жалко. Спасибо... )

Re: Графический дисплей LCD 12864 (128x64 пикселя) на ST7920

Пт ноя 14, 2014 17:15:22

STM32F4 DISCOVERY - SPI 1.
RS - PA6.
R/W - PA7.
E - PA5.
BLK +- - +-5V.
VDD - +5V.
VSS - GND.
V0 - неподключен.Это контраст,в моем дисплее он не регулируется.Хотя есть LCD ,где есть рeгулировка контраста.Подробней http://habrahabr.ru/post/213459/

Re: Графический дисплей LCD 12864 (128x64 пикселя) на ST7920

Пт ноя 14, 2014 18:27:01

у меня
19-А +5v
20-К GND

вроде получилось все работает но при включении часто на дисплее рябь всякая и бессмыслица но периодически все хорошо.

Я начинающий и пытаюсь во всем разобраться, прошу сильно не пинать ) Вопрос в следующем а как можно выводить инфу на дисплей в реальном времени считывая ее с чего либо? ну например показания какого либо датчика, температуры например, или еще чего нить.

Re: Графический дисплей LCD 12864 (128x64 пикселя) на ST7920

Сб ноя 15, 2014 11:05:55

Вот проект часов с выводом картинки в формате xbm
Для вывода переменной используется функция sprintf
Изображение
https://yadi.sk/d/AczxiJCdciraZ
Ответить