Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:0
Поисковых ботовПоисковых ботов:2
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:3
Форум » starterkit.ru » Отладочные платы » Hola(Duo)-PC
HOLA PC + дисплей WH1602
Roman17
Добавлено 18.03.2017 16:01
0
Сообщение: 1
Roman17
0

Пункты: 113
Регистрация: 08.03.2017
Разбираюсь как подключить к плате дисплей типа WH1602.
На плате есть свободные контакты, к которым мо;но подпаятся.
Пробую к Х8 подцепить дисплей и написать код, но все никак не получается.
Той же дисплей на STM32 цеплял и по аналогии пытаюсь код на HOLA переписать но не получается.

У кого то есть пример рабочего кода, чтобы поцепить дисплей типа WH1602 на плату? Помогите мне с подключением.
Какая информация есть по HOLA PC и портам?

Заранее благодарен.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 18.03.2017 17:57 Сообщение: 2
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
не знаю, что такое wh1602, вероятно символьник 2 строки Х 16 знаков..
1 вариант - посмотреть в состав видеодрайверов в ядре, возможно там есть подходящий вариант фреймбуфера..
2 вариант - цепляете свой индикатор на свободные пины кита (с учетом уровней сигналов кита и индикатора), в схеме кита выясняете имена пинов с функцией gpio и именами типа GPIOX_Y. в ядре включаете поддержку GPIO и прописываете эти контакты в режим gpio-mode. далее на любом знакомом языке пишете программу, которая будет рулить этими контактами. далее пишете функции byte-write, byte-read, lcd-ready, lcd-init, если до этого доберетесь, то расскажу дальше..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Roman17
Добавлено 19.03.2017 20:32 Сообщение: 3
Roman17
0

Пункты: 113
Регистрация: 08.03.2017
Верно, две строки 16 символов.
А для примера покажите фрагмент кода, которым можно в логическую "1" любой пин GPIO Х8 выставить.
У меня сейчас проблема, чтобы какой-то пин в логическую 1 ставить.
На STM32 я выставил в логические "1" пины, а потом функциями подачи команды, байта, строки уже выводил информацию.

И детальней напишите где в ядре холы смотреть то что вы написали.
Спуститься к концу Подняться к началу
Персональная информация
Roman17
Добавлено 19.03.2017 20:34 Сообщение: 4
Roman17
0

Пункты: 113
Регистрация: 08.03.2017
"в ядре включаете поддержку GPIO" - как это сделать?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 19.03.2017 22:37 Редактировалось 19.03.2017 22:48 Сообщение: 5
sasamy
4.71

Пункты: 83552
Регистрация: 14.08.2009
WH1602 - это наверняка клон

https://ru.wikipedia.org/wiki/HD44780

Сделал проект из нескольких

https://yadi.sk/d/rjhtdZC43G9dxn

Интересовать вас там будет файл lcd.c. Если у вас плата с процессором Dual - замените там

#undef CONFIG_MX6Q
#define CONFIG_MX6DL

на

#undef CONFIG_MX6DL
#define CONFIG_MX6Q

Подключение описано там же - используется 4-битный интерфейс

Цитата

#define GPIO_EN IMX_GPIO_NR(6,0) /* Hola PC, X8 - 15, CSI_D2 */
#define GPIO_RS IMX_GPIO_NR(6,1) /* Hola PC, X8 - 22, CSI_D3 */
#define GPIO_D7 IMX_GPIO_NR(6,2) /* Hola PC, X8 - 16, CSI_D4 */
#define GPIO_D6 IMX_GPIO_NR(6,3) /* Hola PC, X8 - 11, CSI_D5 */
#define GPIO_D5 IMX_GPIO_NR(6,4) /* Hola PC, X8 - 18, CSI_D6 */
#define GPIO_D4 IMX_GPIO_NR(5,30) /* Hola PC, X8 - 12, CSI_D0 */


Добавить свой код - в main, у меня только базовая инициализация сделана. Код на работоспособность не проверялся ибо у меня не на чем проверить - только то что собирается и запускается без ошибок. Если писали на stm32 - не проблема дописать будет то что нужно. Не забывайте повесить на ноль пин дисплея Pin #5 (RW) - только запись в дисплей, читать из него НЕЛЬЗЯ - пины imx6 не толерантны к +5В

Общее впечатление от такого дисплея на процессоре i.MX6 - как велосипедная фара на КАМАЗ-е.
Спуститься к концу Подняться к началу
Персональная информация
Roman17
Добавлено 20.03.2017 02:03 Сообщение: 6
Roman17
0

Пункты: 113
Регистрация: 08.03.2017
Подпаяюсь днем и проверю.
В какой программе писали код?
В какой компилировали?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 20.03.2017 08:40 Сообщение: 7
sasamy
4.71

Пункты: 83552
Регистрация: 14.08.2009
Цитата

В какой программе писали код?


В любом текстовом редакторе с подсветкой синтаксиса

Цитата

В какой компилировали?


посмотрите исходники - там есть скрипт build.sh, замените там путь до кросс-компилятора gcc - по аналогии как у меня он у вас есть в собранном buildroot.
Спуститься к концу Подняться к началу
Персональная информация
Roman17
Добавлено 22.03.2017 01:02 Сообщение: 8
Roman17
0

Пункты: 113
Регистрация: 08.03.2017
Правильно ли я делал?
1) Я взял ваш код
2) Открыл мейкфайл и там как входной файл прописал lcd.c. А выходной main.out.
3) Сохранил
4) Открыл терминал и написал make
5) Затем новый main.out + ваш код и скопировал на рабочий стол linux, который установлен на вашу плату. В папку lcd
6) Там открыл папку lcd и через терминал запускал ее sudo./main.out
Я осцилографом смотрел - на пинах "1", постоянно.

И такое:
"в ядре включаете поддержку GPIO" - как это сделать?
У вашем коде включена поддержка GPIO или это отдельно както надо включать поддержку?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 22.03.2017 09:45 Редактировалось 22.03.2017 10:04 Сообщение: 9
sasamy
4.71

Пункты: 83552
Регистрация: 14.08.2009
1) прописать путь до кросскомпилятора в build.sh

2) выполнить его

./build.sh

3) скопировать lcd на плату, например через SSH по сети

scp lcd root@192.168.0.136:/root

4) запустить команду по сети с виртуальной машины на плате

ssh root@192.168.0.136 '/root/lcd'

или непосредственно на плате

/root/lcd

Цитата

Я осцилографом смотрел - на пинах "1", постоянно.


сделайте меандр с большим периодом и смотрите вольтметром/светодиодом/чем угодно, например пин 15, разъем X8

Цитата

int main(int argc, char **argv)
{
int out = 0;
int ret = 0;
......
/*
* Here should be your code
*/

while (1) {
sleep(1);
out = !out;
gpio_set_value(GPIO_EN, out);
}


Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » Hola(Duo)-PC