Тренд на Arduino Mega 2560 + TFT LCD 320х480 HX8357B

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

zhenya_alex пишет:

redmaxs пишет:

Видимо действительно когда проверял lcdOff и lcdOn использовал какую-то другую библиотеку. Доработал стандартную добавлением следующего - в файле UTFT.cpp дописал строки 1286-1288 и 1305-1307

Теперь экран выключается но подсветка не гаснет

Мдя, все оказалось предельно просто, спасибо за подсказку. Осталось с подсветкой что-то придумать и будет совсем отлично.


Перегрызть дорожку по которой питается подсветка. Что тут еще думать. Но как вариант, полистать даташит. Иногда подсветка управляется через шим с видеоконтролера.

AndreyZXZZ
Offline
Зарегистрирован: 29.03.2015

redmaxs пишет:

Если тупо стирать экран, то потом надо перерисовывать содержимое. А выключив не надо перерисовывать, информация остается и при включении картинка та-жеш. Посветку не отрубишь, подключена напрямую к 5В.

Не совсем понятно, вылезающие как попало точки удалось победить включением-отключением экрана? 

Я тоже приобрел такой дисплейчик и столкнулся с этой проблемой, есть какое нибудь решение? Контакты все пропаивал, отклеив экран, мыл растворителем - эффекту ноль.

По подсветке - управляю подсветкой по шим - перерезав провод питания подсетки и кинув на соответствующий пин ардуинки. С фоторезистором получил авторегулировку яркости)

redmaxs
redmaxs аватар
Offline
Зарегистрирован: 24.04.2015

Честно сказать мне пришла из китая платка STM32F429i-Disco и я забил на проблемы с этим экраном ибо стм'ка намного интереснее :) и по вычислительным мощностям больше подходит под мой проект. И к тому - жеш по деньгам почти одинаково.

AndreyZXZZ
Offline
Зарегистрирован: 29.03.2015

redmaxs пишет:

Честно сказать мне пришла из китая платка STM32F429i-Disco и я забил на проблемы с этим экраном ибо стм'ка намного интереснее :) и по вычислительным мощностям больше подходит под мой проект. И к тому - жеш по деньгам почти одинаково.

А я мучаюсь, дождусь еще один такой экран и попробую на DUE - может перестанет глючить. А на  STM32F429i-Disco используете этот же экранчик или какой то другой?

kortium
Offline
Зарегистрирован: 23.01.2015

на дуе точно так же глючит - проверено

AndreyZXZZ
Offline
Зарегистрирован: 29.03.2015

Жесть, но дуе и экран уже едут) Да и по цене на али это чуть ли не самый лучший вариант. Может кто может посоветовать экран без таких глюков? Нужен 3.2 дюйма желательно 320х480 и по размерам не больше этого. Я и так его подпиливаю со всех сторон чтоб засунуть в свой проект, а тут еще глюки эти с пикселями... 

redmaxs
redmaxs аватар
Offline
Зарегистрирован: 24.04.2015

На STM-ке уже установлен экранчик с точскрином.

redmaxs
redmaxs аватар
Offline
Зарегистрирован: 24.04.2015

как вариант, я уже обдумывал использовать этот глюк как фишку. т.е. данные и так перерисовываются и мусора на них нет а на свободных полях, где появляется мусор, самому рандомно рисовать точки. чтобы получилось типа феерверка. другими словами когда точки появляются когда захотят это выглядит как глюк, а когда быстро и много это уже фишка :D

redmaxs
redmaxs аватар
Offline
Зарегистрирован: 24.04.2015

Не сочтите за рекламу...

STM-ку я взял в руки всего месяц назад, тогда-жеш впервые столкнулся с Keil (среда программирования) и С++, но уже я очень доволен тем что перешел на эти процессоры. Памяти море, коммуникаций хоть отбавляй, частоты запредельные (мой работает до 180 МГц, при этом сам настраиваешь на какой частоте он работает), часы реального времени встроены в процессор, и цены симпатичнее (если брать процы отдельно). Да, инфы поменьше и чтоб заставить это все работать гемора поболее, но мы не ищем легких путей :) А учитывая тот факт что ST выпустила среду настройки CubeMX, то разбираться с ним стало полегче...

luxdark
Offline
Зарегистрирован: 12.11.2015

Привет!

Как ты смог использовать UTFT.h для HX8357B? У меня такая же модель экрана, но библиотека не хочет с ним работать - выдаёт ошибку компиляции и в самой библиотеке не прописана эта константа. Не мог бы ты мне скинуть ту библиотеку UTFT.h, которая у тебя?

redmaxs
redmaxs аватар
Offline
Зарегистрирован: 24.04.2015

luxdark пишет:

Привет!

Как ты смог использовать UTFT.h для HX8357B? У меня такая же модель экрана, но библиотека не хочет с ним работать - выдаёт ошибку компиляции и в самой библиотеке не прописана эта константа. Не мог бы ты мне скинуть ту библиотеку UTFT.h, которая у тебя?

Без проблем тут

Объявлял так:

#include <UTFT.h>

// Declare which fonts we will be using
extern uint8_t SmallFont[];
extern uint8_t BigFont[];

UTFT myGLCD(HX8357B,38,39,40,41);

 

victorv
Offline
Зарегистрирован: 31.07.2015

Здравствуйте , помогите разобраться -купил это "http://ru.aliexpress.com/item/5-0-800x480-TFT-LCD-Module-Display-Touch-Panel-SSD1963-For-51-AVR-STM32/1859157478.html" и это "http://ru.aliexpress.com/item/TFT-3-2-4-3-5-0-7-0-Mega-touch-LCD-Shield-Expansion-board-Module/32238738721.html?adminSeq=201492522&shopNumber=612195" . Дисплей через стандартную библиотеку заработал (UTFT myGLCD(ITDB50,38,39,40,41);)  а тач не хочет . Что может быть , может есть у кого другие библиотеки UTouch ?

 

 

victorv
Offline
Зарегистрирован: 31.07.2015

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

kobalt
Offline
Зарегистрирован: 12.08.2015

В библиотеке  UTFT   в папке UTFT\tft_drivers\HX8357C лежат 2 файла: initlcd.h и setxy.h  . Для чего они и как их приспособить?

у меня экран HX8357C. заработал со стандартными примерами сразу.

Diaz
Offline
Зарегистрирован: 27.12.2015

   

Diaz
Offline
Зарегистрирован: 27.12.2015

У меня теже проблемы с этим экраном.

Подсветку победить не удается.

А мусор полностью победить тоже и не получается.

Мы уменьшили скорост, пикселей стало меньше, но они все равно появляются.

riemann
Offline
Зарегистрирован: 11.01.2016

У меня экранчик подключен по FSMC к STM32f407 (168МГц). Такая же проблема (мусор на статичиской картинке), думал проблема в таймингах FSMC. Перепробывал почти все варианты таймингов. Вручную (ногодрыганьем+формирование задержек) упровляющие импульсы не формировал - лень. Заметил особенность, если после каждого масива данных передавать команду 0x3E (продолжительное чтение), то мусор не появляется.

Поясняю:запись пикселей   = команда 0x2c ->данные1 (т.е.цвет пикселя)+данные2+данныеN ->команда 0x3E(холостая команда чтения). 

Точно так, же с остальными комадами - выбор окна +0x3E, выбор режима+0x3E и т.д..Перепробывал множество вариантов - помогает только 0x3E.

Тестирую 2 день на минимальных таймингах, пока ОК. Наверное так и оставлю!

Кстати,пишу на асме без библиотек.

kortium
Offline
Зарегистрирован: 23.01.2015

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

Diaz
Offline
Зарегистрирован: 27.12.2015

kortium пишет:

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

А 9481 лучше?
Как там обстоят дела с подсветкой? А то ня этих nх8357 экран выключается, а подсветка нет...
Это очень плохо, что делать ума не приложу.

kortium
Offline
Зарегистрирован: 23.01.2015

шума вроде нет, а так почти тоже самое, цвета и контрастность по-моему чуть хуже

Diaz
Offline
Зарегистрирован: 27.12.2015

kortium пишет:

шума вроде нет, а так почти тоже самое, цвета и контрастность по-моему чуть хуже

 

А с подсветкой как быть?

Дисплей выключается, а подсветка продолжает гореть...

MrAcsacal
Offline
Зарегистрирован: 18.02.2016

Интересный вопрос! Кто-то может столкнулся? У меня экран, по заверению китайских друзей HX8357B, но получается интересная история. Цвета инвертируются, т.е. белый становится черным, черный становится белым, а остальные цвета вообще не понятно как отображаюся. Ощущение такое, что надо просто инвертировать код, например вместо setColor(0, 0, 0) - черный, надо писать setColor(255, 255, 255). И с остальными цветами так же.

В паралельной теме ты это обсуждаем. Кому интересно, то милости просим. Там рассписанно все более подробно. http://arduino.ru/forum/apparatnye-voprosy/ne-vidit-cd-kartu-mega-2560-tft-lcd-320x480sdcard?page=1#comment-176726.

diakin
diakin аватар
Offline
Зарегистрирован: 04.06.2016

Кстати, массив определен как

int buf_pH_ai_sec[407], buf_pH_sp_sec[407];
то есть в нем 407 элементов, от 0 до 406

а дальше обращение идет к 407 элементу, то есть за пределы массива
....
for (int x2=0; x2<=407; x2++)
139          {
140            buf_pH_ai_sec[(407-x2)]=buf_pH_ai_sec[(406-x2)];
141            buf_pH_sp_sec[(407-x2)]=buf_pH_sp_sec[(406-x2)];
142          }

Хотя у меня все и с 407 заработало )
Был один глюк, если задать  белый цвет - 255,255,255 то print глючил, строка выводилась с каким-то "битыми пикселями". 250,250,250 решило проблему.
 

Viacheslav77
Offline
Зарегистрирован: 16.05.2016

Доброго времени суток,

пробрел вот такой экземпляр http://ru.aliexpress.com/item/Free-shipping-3-2-inch-TFT-LCD-screen-modu...

не могу запустить, перепробовал все библиотеки результат - 0, экран светится белым.

Пробовал выложенную тут библиотеку и вот эту http://dvrobot.ru/239/290/480.html; последняя 1в1 с указанной на али как пример.

Куда копать?

diakin
diakin аватар
Offline
Зарегистрирован: 04.06.2016

Точно такое же на вид. Включаю в due
Заработал с такой строчкой.

#include <UTFT.h>
UTFT myGLCD(CTE32HR, 38, 39, 40, 41); // инициализация TFT

 

Хотя в описании написано HX8357B, а в комментах на али ILI9481.

Надо перебрать все варианты, + в библиотеке UTFT.h посмотреть примеры с другими контроллерами.

Viacheslav77
Offline
Зарегистрирован: 16.05.2016

блин, я в шоке. Потратил вчера весь день, сейчас заработало после перезагрузки по питанию. Просто полежало на полке. Пример и библиотеки взял с dvrobot. Ушел бица ап стену. Комменты читал, в коде

UTFT myGLCD(HX8357B,38,39,40,41);

 

MacSim
Offline
Зарегистрирован: 28.11.2012

.

Pin
Offline
Зарегистрирован: 30.03.2016

kortium, привет, ты там фото платы делал с отклеенным дисплеем...
Можешь тоже самое с обратной стороны шлейфа сфотать?
Распиновку собираю...
Очень надо. (

MacSim
Offline
Зарегистрирован: 28.11.2012

Pin пишет:

kortium, привет, ты там фото платы делал с отклеенным дисплеем...
Можешь тоже самое с обратной стороны шлейфа сфотать?
Распиновку собираю...
Очень надо. (

отклеил экран от шильда. на шлейфе надпись TFT8K4132FPC-A1-E  TRULY-M

на обороте экрана M201100326  TFT1P2875-V2

кое что высмотрел: http://arduino.ru/forum/programmirovanie/tft-lcd-32-320x480-hx8357b-kak-schitat-s-ekrana-tsvet-tochki-po-koordinatam#comment-218188

MacSim
Offline
Зарегистрирован: 28.11.2012

Viacheslav77 пишет:

блин, я в шоке. Потратил вчера весь день, сейчас заработало после перезагрузки по питанию. Просто полежало на полке. Пример и библиотеки взял с dvrobot. Ушел бица ап стену. Комменты читал, в коде

UTFT myGLCD(HX8357B,38,39,40,41);

 

что не работает? покопал библтотеку не понравилась.

TFT_HX8357 получше. все понятно в ней.  

Pin
Offline
Зарегистрирован: 30.03.2016

MacSim, мне нужно фото, так как именно по нему я пойму что куда идет.
Мой экран еще не приехал, еще даже не заказан.
А разводить плату надо.

Pin
Offline
Зарегистрирован: 30.03.2016

Вот #49, все хорошо видно.
Я уже почти всю распиновку восстановил.
Не хватает только с обратной стороны шлейфа посмотреть...

MacSim
Offline
Зарегистрирован: 28.11.2012

MrAcsacal пишет:

Интересный вопрос! Кто-то может столкнулся? У меня экран, по заверению китайских друзей HX8357B, но получается интересная история. Цвета инвертируются, т.е. белый становится черным, черный становится белым, а остальные цвета вообще не понятно как отображаюся. Ощущение такое, что надо просто инвертировать код, например вместо setColor(0, 0, 0) - черный, надо писать setColor(255, 255, 255). И с остальными цветами так же.

В паралельной теме ты это обсуждаем. Кому интересно, то милости просим. Там рассписанно все более подробно. http://arduino.ru/forum/apparatnye-voprosy/ne-vidit-cd-kartu-mega-2560-tft-lcd-320x480sdcard?page=1#comment-176726.

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

BEST-83154
Offline
Зарегистрирован: 16.03.2016

как его запустить?

ничего не подписано

by_ruslan
Offline
Зарегистрирован: 15.08.2015

Здравствуйте!

Столкнулся с тем что тоже нужно выключать посветку дисплея. Посмотрел (но ещё не проверял) там вроде подсветка управляется через транзистор на который постоянно подан +, вот и думаю что в целях доработки самого дисплея можно перерезать дорожку и кинуть на любой свободный пин, тем самым будет возможность управлять путём подавания высокого или низкого уровня. 

 

by_ruslan
Offline
Зарегистрирован: 15.08.2015

by_ruslan пишет:

Здравствуйте!

Столкнулся с тем что тоже нужно выключать посветку дисплея. Посмотрел (но ещё не проверял) там вроде подсветка управляется через транзистор на который постоянно подан +, вот и думаю что в целях доработки самого дисплея можно перерезать дорожку и кинуть на любой свободный пин, тем самым будет возможность управлять путём подавания высокого или низкого уровня. 

 

Вникнул немного, а то не транзистор а стабилизатор на 3.3 вольта. 

Поищу схему.

Pin
Offline
Зарегистрирован: 30.03.2016

Если у тебя такой (внимание на края корпуса дисплея) могу дать распиновку шлейфа:

На такой гугли сам:

Pin
Offline
Зарегистрирован: 30.03.2016

Схемы там толком никакой нет, стаб в обрыв питанию, анод подсветки замкнут на питание прямо у шлейфа, а одинокий резистор на плате это катод подсветки замкнутый на землю.
+ микрухи согласования уровней.
Все.

Pin
Offline
Зарегистрирован: 30.03.2016

Единственное что, так как у меня нет Arduino Mega я не уверен что мой дисплей рабочий, ибо на STM32 и Orange Pi его завести не получилось, тупо никакой реакции, эран сетится белым и все.

К стати, у шлейфа так же есть контакты замыкая которые можно задать режим шины дисплея.
IM1,IM0
0,0 18-bit
0,1 9-bit
1,0 16-bit
1,1 8-bit

Вобщем-то все это есть в даташите.

Хотя и под второй вариант могу дать распиновку шлейфа, но она у меня не полная.

BEST-83154
Offline
Зарегистрирован: 16.03.2016

у кого то есть библиотека для протеуса для дисплея сконтроллером HX8357B ?

diakin
diakin аватар
Offline
Зарегистрирован: 04.06.2016

Пришли экранчики такие же конструктивно, сзади написано HX8357B.
При подключении  работает с

UTFT myGLCD(CTE32HR, 38, 39, 40, 41); // инициализация TFT (старого)

но изображение в негативе, то есть вместо черного фона белый и остальные цвета тоже инвертированы.
Решилось добавлением функции
 

void UTFT::Invert(boolean inv)
{
	cbi(P_CS, B_CS);
	if (inv) LCD_Write_COM(0x21);
	else LCD_Write_COM(0x20);
	sbi(P_CS, B_CS);
}

в UTFT.cpp и соответственно в заголовочный файл

		void	Invert(boolean inv);

В скетче в Setup() добавляем

  myGLCD.Invert(true);

и все норм.