Ник:
Пароль:

Контакты

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

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Embedded Linux
AT91SAM9G45 + STN-экран
Leon_55
Добавлено 11.10.2013 00:52
0
Сообщение: 1
Leon_55
0

Пункты: 215
Регистрация: 11.10.2013
Здравствуйте!
Приобрёл плату SK-AT91SAM9G45 и SK-MI0430FT-Plug с Linux, но возникла необходимость подключить другой дисплей:
STN, mono, 4 bit, 1bpp, одиночное сканирование, интерфейс паралельный, работа через fb. Вроде всё просто, но как настроить Linux? Или нужно писать свой драйвер дисплея?
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 11.10.2013 01:22 Сообщение: 2
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Вроде всё просто, но как настроить Linux? Или нужно писать свой драйвер дисплея?

а вы в ядро загляните, в 2.6.37 в драйвере экрана вижу строки STN, т.ч. есть вероятность, что все давно написано за вас..
дело за малым - правильно соединить, обеспечить согласование уровней, ну и драйвер прописать в структурах экрана файла платы..

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

Пункты: 215
Регистрация: 11.10.2013
На моей плате ядро 2.6.36 -rs6 если вы имели в виду путь linux-2.6.36-rc6\drivers\video\display\display-sysfs.c то там STN не упоминается. Не сочтите за труд, ткните пальцем в тот файл, может в моем ядре он немного отличается от вашего. И ещё в скрипте make_menuconfig наверно надо отключить плагин stsrterkita MI0430F. Надо найти этот плагин и распотрошить его может удастся понять что, и где нужно настроить. Может найдется человек который на STN дисплеях собаку скушал, и обозначил где грабли лежат, а я как умный человек грабли тревожить не буду.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 12.10.2013 23:15 Редактировалось 13.10.2013 02:04 Сообщение: 4
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
как минимум, есть упонминание в драйвере (еле нашел в архивах старое ядро 2.6.36), драйвер для всего атмела. лежит в drivers/video/atmel_lcdfb.c
в нем есть разбор:
Код
if ((lcdcon2 & ATMEL_LCDC_DISTYPE) != ATMEL_LCDC_DISTYPE_TFT) {
/* STN display */
if ((lcdcon2 & ATMEL_LCDC_DISTYPE) == ATMEL_LCDC_DISTYPE_STNCOLOR) {
value *= 3;
}
if ( (lcdcon2 & ATMEL_LCDC_IFWIDTH) == ATMEL_LCDC_IFWIDTH_4
|| ( (lcdcon2 & ATMEL_LCDC_IFWIDTH) == ATMEL_LCDC_IFWIDTH_8
&& (lcdcon2 & ATMEL_LCDC_SCANMOD) == ATMEL_LCDC_SCANMOD_DUAL ))
value = DIV_ROUND_UP(value, 4);
else
value = DIV_ROUND_UP(value, 8);
}

после этого ищите в каталоге arch/arm/mach-at91 файлы со словом "stn", смотрите как прописано в девайсах и файле платы - структуры и вызовы - делаете поправку на копыта 9g45, прописываете в таких же файлах для 9g45 и всё должно взлететь..
заодно почитайте в мане на 9g45 в разделе LCDC..
ну и немаловажно - обеспечить правильное подключение и согласование (если требуется) железа..

не лезу в вашу специфику, но tft был бы лучше со всех т.з..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Leon_55
Добавлено 27.10.2013 14:36 Сообщение: 5
Leon_55
0

Пункты: 215
Регистрация: 11.10.2013
Насчёт TFT вы правы но у меня дисплей не совсем честный STN, я использую дисплей с интерфейсом TFEL, сейчас их производит люминек. Хотя настройка очень похожа на STN. Однако сейчас возникла небольшая проблема, при выводе на экран пингвина и приветствия текст выводится неправильно. Длинная строка заканчивается и буква "о" не переносится а разрезается пополам, вторая половинка буквы вылазит на этой строке но только с левой стороны, а вот следующая буква переносится правильно в левую сторону строкой ниже. Хотя наверно правильно будет переносить слово полностью и писать слово с новой строки. Вероятно есть ещё настройки связанные с FB которые я не откопал.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 27.10.2013 16:06 Сообщение: 6
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
для ускорения процесса можно было выложить параметры разрешения экрана и по возможности фотку экрана с дефектом вывода.. (о куске с цифрами инита и линком на доку для экрана даже не упоминаю)
наиболее вероятно - вы неправильно определили т.н. служебные зоны в синхроимпульсах.. для растрового экрана достаточно затянуть или подать не вовремя импульс строба (hs, vs) и изображение уедет (я, когда изобретал контроллер tft на фпга такого насмотрелся при отладке)..
в меньшей степени может повлиять размер консольного шрифта - выбирается в меня ядра.. при некратном случае (например 430 пикселей в строке и шрифте 8х8) будет некрасиво..
при наличии осцилла проверьте времянки для экрана - их можно подкрутить через регистры, а потом прописать в структуре фреймбуфера..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Leon_55
Добавлено 15.01.2014 17:09 Сообщение: 7
Leon_55
0

Пункты: 215
Регистрация: 11.10.2013
title
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 15.01.2014 17:53 Сообщение: 8
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
дак у вас изображение банально сдвинуто - правая половинка "о" видна слева от "W"
крутите времянки..
теплый оранжевый цвет - зачет!

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Leon_55
Добавлено 15.01.2014 18:22 Сообщение: 9
Leon_55
0

Пункты: 215
Регистрация: 11.10.2013
Наконец пришло осмысление ситуации, настройки сделал правилно, глюк вылазит из за функции вывода текста в ядре, исправлять ненужно. Пользоватся встроенными шрифтами и функциями нестану. Работать буду напрямую с видеопамятью, спасибо за пример ts_test там нарыл много полезного, добавил своих шрифтов, русифицировал их, разработал графические примитивы. Идея проста на экране должно быть только что, мне надо и там где надо.
Сейчас решаю проблему нужно запустить приложение за 5 секунд, тоесть загрузить ядро и выставить картинку на дисплее. Решил попробовать новый at91bootstrap-3-3.5.2 смотрел тут wiki отказался от использования u-boot.
Ядро и FS оставил с адресами по дефолту перезаписал только bootstrap но ядро не грузится вот лог
Код
AT91Bootstrap 3.5.2 (Wed Jan 15 03:13:08 EST 2014)


NAND: ONFI not supported

NAND: Manufacturer ID: 0xec Chip ID: 0xda

NAND: Press the recovery button (BP4) to recovery

NAND: Image: Copy 0x300000 bytes from 0x80000 to 0x70080000


Image magic: 0x27051956 is found

The comp type has not been supported

NAND: Failed to load image
Спуститься к концу Подняться к началу
Персональная информация
Leon_55
Добавлено 15.01.2014 20:25 Сообщение: 10
Leon_55
0

Пункты: 215
Регистрация: 11.10.2013
Есть некоторые сомнения, где то напортачил с настройками. Начну по порядку, наложил патч, наложил настройки по дефолту
Цитата
make at91sam9m10g45eknf_linux_defconfig
, в make menuconfig исправил адреса и размер ядра в логе видно их, изменить 18 МГц на 12 МГц в menuconfig не удалось пришлось выставлять в файле. Затем запускал make и полученный бинарник загружал через JTAG и sam-ba_2.12.
И тут возникает несколько вопросов:
1. Зачем нужно делать инициализацию DDRAM туда не записываем ни чего.
2. Разве bootstrap заливается в NandFlash через
Цитата
Scripts --> Enable NandFlash --> Execute и Send File
а может надо так
Цитата
для записи его в dataflash через samba требуется специальный скрипт, который выбирается из выпадающего меню а не простая загрузка бинарного имиджа. Другой вариант - вручную в hex-редакторе исправить его на правильный (по смещение 0×14 от начала файла) размер файла.
.
Может кто то собирал at91bootstrap-3-3.5.2 под загрузку linux c NandFlash и поделится опытом и главное настройками.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux