П`ятниця, 29.03.2024, 15:42
Приветствую Вас Гість | RSS

Radiomanoff+

Меню сайта
Форма входа
Календарь
«  Листопад 2016  »
ПнВтСрЧтПтСбНд
 123456
78910111213
14151617181920
21222324252627
282930

Блог

Главная » 2016 » Листопад » 25 » STM32L - Controller LCD display
20:54
STM32L - Controller LCD display

 

Цікава тема, та на жаль занадто мало висвітлена в мережі.

Я вже мав можливість "поюзати" Liquid crystal display controller - на SPL та "штатному" LCD STM32L-DISСOVERY. Використовувались при цьому стандартний набор бібліотек для Discovery, на той час...

А зараз розберемо,  цю тему в розрізі бібліотеки HAL та кодогенератора CubeMX. Крім того, будемо використовувати не "штатний LCD" на платі STM32L Discovery, а сторонній сегментний LCD.

Наш "піддослідний" сегментний LCD. Ви його бачите на фото на початку статті.  Нічого особливого в ньому нема - 8 символів, три cпарених COMx-піна (1...6) та на кожний символ використано по 3 сегментних піна, загалом 30 пінів.

 "Добув" я його із електронного лічильника "Енергія-9" 2011 року випуску, який чомусь забракувала енергопостачальна організація... Було зрозуміло, що дисплей без вмонтованого контролера, і невелике "гугління" вивело на дисплеї фірми МЭЛТ МТ-8Т2 - http://www.melt.com.ru/docs/MT-8T2.pdf, які так і позиціонуються фірмою-виробником, як дисплеї для електролічильників.

 
MT-8T2-4T     Без контроллера 70x25x2.8 -40-+70 Для электросчетчиков

Дисплей пересаджений на макетну плату, та під дисплеєм перемичками з'єднані піни дисплея СОМ3, СОМ2, СОМ1, відповідно 1-6, 2-5, 3-4. Все це добро, в свою чергу під'єднане до Discovery із STM32L152RBT6 на борту. Задіяні лише перших два символа дисплея, так би мовити для проби, оскільки майбутній проект із дисплеєм планується на іншому МК L-серії. Мені важливо було "просто поюзати тему"...

Проект в CubeMX. Запускаємо кодогенератор та вибираємо на МК STM32L152RBT6. Вмикаємо SWD-інтерфейс, "часовий" кварц, світлодіоди на платі РВ6, РВ7. Я ще ввімкнув кварц тактування мікроконтролера, хоча в проекті він не використовується, та i взагалі він на платі STM32L Discovery, заводом-виробником не впаюється (хоча в мене впаяний - колись "юзав" USB, i якщо будете запаювати, обовязково поставте перемички каплею припою на платі Discovery, див.схему).

Також було ввімкнено RTC, оскільки без цієї процедури відмовлялось працювати, та "висло" на перевірці  while(__HAL_LCD_GET_FLAG(hlcd, LCD_FLAG_RDY) == RESET) у функції HAL_LCD_Init  (файл stm32l1xx_hal_lcd.c). Думаю це повязано із особливостями плати Discovery, на ній не під'єднано пін VLCD, оскільки резистор R29 незапаяний заводом-виробником, тому потрібно задіювати внутрішнє джерело керуючої напруги. Та без задіяння RTC, це зробити не вдалось. На сайті ziblog.ru читаємо ось таке:

Однак безпосередньо (відразу) вказати LSI-генератор як джерело тактових сигналів LCD модуля можна, так як тактування з`єднано з годинником реального часу (RTC) і пріоритет відданий йому (це видно за назвою сигналу RTCCLK і бітів вибору тактових частот RTCSEL), а в увазі специфіки роботи RTC модуля, необхідно попередньо (після скидання мк) "отримати" доступ до бітам RTCSEL.

Вкладка Clock Configuration має такий вигляд:

Далі вмикаємо контроллер LCD, режим multiplex. В PDF на дисплей МЭЛТ МТ-8Т2, вказано метод керування дисплеєм - 1/3DUTY, 1/3BIAS, VOP=3,0V. Сегменти SEG3...SEG6 не задіяні, в звязку із особливостями плати Discovery, підключено "тач-скрін", тому використаємо слідуючі вільні - SEG7(PB3), SEG8(PB4), SEG9(PB5).

Вкладка LCD Configuration - привязана до параметрів нашого дисплея та деякі параметри налаштувань були підглянуті в репозиторії CubeMX для STM32L15x, там є приклади для плати STM32L Discovery.

Проект. Генеруємо проект в KEIL 5, та в основному циклові будемо виводити на дисплей числа від 0 до 10, потім число 2,2 ну а потім знову з нуля... Проект чисто демонстраційний - http://radiomanoff.at.ua/load/segment/1-1-0-42

Просмотров: 1531 | Добавил: rastamanoff | Рейтинг: 0.0/0
Всего комментариев: 0
Ім`я *:
Email *:
Код *:
Статистика

Онлайн всього: 1
Гостей: 1
Користувачів: 0