Ну что же вы так сразу... Slider дал хорошие ссылки - там все коротко и четко написано по таким дисплеям как у вас.
Вам действительно следовало почитать тему - вы не сможете использовать этот дисплей на ардуине, так как у него нет видеопамяти. Подробнее смотрите в постах выше, Slider писал о подобных дисплеях.
Ну почему нельзя просто сказать что ничего не получится, "вот вам ссылка там аналогичный рассматривали", почему сразу нужно упрекать в том что якобы не читаешь форум? Я прошелся по ссылкам и ненашел, ненашел Карл! своего дисплея. Ну если раздражают такие вопросы, ну не отвечай ты и все, ответят другие адекватные, спокойные люди. Нет бл.. нужно ответить и обязательно вые@нуться, типа вы тут все нубы, один я д'артаньян..
Потому Нельзя сказать что вообще не получиться - потому что это будет ложь. Получиться то получится, можно его прикрутить, не переживайте так. Почти никто, как и вы, не находит своего дисплея, дисплеев бесчисленное множество, делают в основном по аналогии и по даташитам. Но просто это надо брать и делать, как - вся инфа есть, тем более через гугл и яндекс. А ради спортивного интереса, а ну-ка метнитесь и сделайте всё за меня, это врят ли, и у кого найдется точь в точь такой же дисп.
для ардуин подключение диспов с RGB шиной, можно сделать, не парясь с микросхемами внешнего видео ОЗУ:
1. способ через дорогостоящий переходник или самому спаять (мало ли, пытливому уму не важно время) микросхемы ssd1963 не особо дорого стоят.
2. способ (не реализованный мной по причине отсутствия времени и интереса, так что дерзайте сами) - это прикрутить его как есть , типа как ардуинку подключают к телевизору. в качестве фреймбуфера используется внутреннее ОЗУ ардуины) Тогда разрешение по пикселям будет не очень, зато можете использовать всю площадь экрана. Может быть для вас это как раз важно, видеть большую инфу на большом экране.
//Хотелось бы чтобы эта тема жила, и не засиралась однотипными вопросами на каждой странице, а то есть подобные темы за сотню страниц и за 1000 сообщений, никто их уже не читает, все превращено в срач. Случайно или умышленно. Изучение затруднено, там уже каша. Цените пожалуйста что есть. у меня нет здесь модераторства, чтобы подчищать. Хотелось бы чтоб в этой теме народ, наоборот делился что уже победил нового. а изученного и так уже полно выложено в инете. И давайте прекратим писать не по теме, сохраним тему в чистоте и концентрировано в новых решенных диспах.
А вообще, мне кажется, придётся его расковырять, для получения большего количества инфы о нём
bankir_1986, шутник.
походу у гугла тоже вид сзади спрашивал, вот ничего и не нашел. и что там на разъеме невидать.
От фэйса тут толку мало будет, если вы с подобным не сталкивались.
Нужно чтобы bankir_1986 нарисовал примерную схему где он был , + - , конденсаторы керамические на каких пинах. либо это подобие 1602, либо графического (несколько керамич. кондеров тогда у разъема будут) . надо было вид спереди под углом, чтоб сегменты видать было , модель прибора от куда вытащен, можно ещё фотку платы где стоял.
....колупать - это я предложил, чтобы посмотреть куда тот шлейф идёт, распиновку конкретизировать, а то так можно ооочень долго экспериментировать с проводками, даже если там самый дефолтный (по контроллеру) 1602
Привет всем. Хотел бы попросить помощи или хотябы совета. Есть TFT-LCD на шлейфе LMS700KF05 с тач от XEROX Phaser 3635FP для использования в своём проекте. Плата управления CLX_8380_OPE_MAIN на CPU: Samsung S3C2413XL-26. Нужна эта плата, или LCD подключать без неё? Даташит на LMS700KF05 нашёл прилагаю фото распиновки и другие по теме вопроса. Не понял как тут фотки загрузить, поэтому дам ссылку.
На плате управления есть UART. Аппарат достался нерабочий, не включался. Пару дней назад подключил весь аппарат от другого БП, запустился. Аппарат этот по сути дела обычный комп, есть почти полноценная материнка, винчестер на 80Gb, линейка памяти и пр. А эта панель просто как монитор с клавой. Вот и хочу спросить как прикруттить это дело к Arduino, библиотек под него естественно нет. И подскажите знатоки, стоит ли связываться с этим девайсом?
Привет всем. Хотел бы попросить помощи или хотябы совета. Есть TFT-LCD на шлейфе LMS700KF05 с тач от XEROX Phaser 3635FP для использования в своём проекте. Плата управления CLX_8380_OPE_MAIN на CPU: Samsung S3C2413XL-26. Нужна эта плата, или LCD подключать без неё?
....
Не понял как тут фотки загрузить, поэтому дам ссылку.
.....
Вот и хочу спросить как прикруттить это дело к Arduino, библиотек под него естественно нет. И подскажите знатоки, стоит ли связываться с этим девайсом?
фотки прикрутить описано выше в форуме , отдельной темой , можно и поиском найти.
это дисп с RGB шиной. тем более распиновку вы какуюто нашли. если хотите , можете попробовать привязать без всяких переходников но выводя на него меньшее разрешение. черно-белое или м.б. 8ми битное (255 цветов) цветное. на подобие как в проекте с подключением к телевизору или монитору. вы будете первым кто это реализует и расскажет об этом.
сдублирую в эту тему, т.к. много там картинок(кликабельны) приложил:
если предположить: простенький дисплей с RGB шиной и 320х240 пикселей, то чтобы и всех оббежать надо:
для самой простоты при черно-белом изображении (все выводы RGB либо на+ либо на -)
1. 320х240=76800бит *50 раз в сек=3,84Мгц частота вывода инфы , что возможно.
2. 320х240=76800бит /8(бит в байте)=9Кбайт ОЗУ необходимых, которых ни у меги, тем более у уно нет. Так что мож проще достать дисплей уже с внутренним контроллером со своим ОЗУ(в смысле видеопамятью) , или приобрести отдельно SSD1963 board
,почемуто правда они ещё прилично стоят, видимо китайцы ещё не знают что на это может быть спрос, микросхемы SSD1963 то, относительно недорого стоят (200-250руб).
платы переходники на SSD1963 найдете много разных, купить можно погуглив SSD1363 board
как видите в инете их полно всяких разных. мне эти переходники не надо , но я и то нашел для вас. А кому реально надо , тот гораздо больше вариантов найдет.
Попробуйте для опыта подцепить напрямую к 3.3в ардуине или к 5в через резисторы (как ардуино вывод на TB)
а) объеденить пиксели , к примеру по 4 шт, тогда при разрешении 240x136 (бывшее 480х272) потребуется 4КБайта ОЗУ, у ардуиноМЕГИ - 8КБ, должно хватить.
б) Ну или, если выводить только цифры и текст (к примеру цифры , алфавит, значки - всего до 256разных), то каждому знакоместу(массиву) присвоить байт в выделенной "видеопамяти" , который и будет означать что контроллеру выводить в знакоместо.
О 7дюймовых спрашивали уже конечно. Но все же еще свой выложу. Имеется дисплейчик от навигаторов несколько штук с тач панелью. 40 пин 800x480. Адафруит контроллер смотрел но он стоит не реально дорого. Но хотелось бы по минимому вложиться в контроллер. В навигаторе стоит SIRF ATLAS V похоже напрямую к ниму подключается. Подозреваю что этот https://www.maritex.com.pl/product/attachment/42224/KWH070KQ13-F02-%202011.pdf datasheet соответствует этому lcd.
ValGor, подключать так же как и все предыдущие. берете и подключаете. прочитайте тему с начала - это как раз примеры с ходом мыслей , для случаев если их еще никто в инете не подключал.
тем более у вас и распиновка и схема есть что сильно облегчает задачу. Только вроде вы смотрели не на схему дисплейной платы, а схему шлейфа. посмотрите повнимательней.
Набрёл на эту тему некоторое время назад, когда искал информацию об интересующем меня дисплее. И, хотя готовых ответов для моего случая я здесь не нашел, считаю тему весьма полезной, и спасибо всем за информацию, которой вы делитесь!
Хочу добавить свои «5 копеек» и поделиться результатами, к которым я пришёл в процессе своих «изысканий». Надеюсь, кому-то это поможет сэкономить время.
Итак, валялась у меня принесённая кем-то, нерабочая DECT-труба Siemens Gigaset S67H, дисплей из которой было решено использовать для своего проекта.
Чуть более года назад в этой теме уже поднимался вопрос о таком дисплее, оставшийся без ответа (в вопросе вместо марки был ошибочно указан part number).
Поиски в сети какой-либо информации об этом приборе ни к чему не привели. Прозвонкой удалось определить выводы диодов подсветки и предположительные контакты земли и питания, но не более. Рискнул подать питание на контроллер дисплея и подсветку. При этом на подсветку подавал 5в, что было перебором, но прибор вынес издевательства.
Позже был достаточно длительный этап в попытке определить назначение сигнальных линий и тип шины (SPI или I2C) с помощью тупого перебора выводов и подачей на них различных сигналов. Сначала в соответствии с алгоритмами управления уже известными контроллерами похожих дисплеев, а потом и случайно генерируемых последовательностей. Понятно, что с учетом кучи неизвестных в этом уравнении, чуда не произошло - обезьянка не повторила «Войну и мир», беспорядочно стуча по клавишам. Хотя, периодически экран выдавал какие-то признаки жизни, что позволило сделать вывод о его работоспособности.
Далее я наткнулся в сети на объявление о продаже в моем городе точно такой же трубки, б/у. Списывать в убытки уже потраченное время не хотелось, да и вопрос об оживлении этого дисплея уже стал принципиальным. В общем, приобрел трубу и поснимал кучку дампов с помощью простенького логического анализатора на базе отладочной платы STM32F429I-DISCO.
После этого, наконец-то, наступила полная ясность с распиновкой:
1,6 - GND
2 - SDA (MOSI)
3 - SCK (CLK)
4,5 - VCC (3.3V)
7 - CS
8 - D/C
9 - LED K (GND)
10 - LED A (+)
Шина SPI. Все контакты дисплея подключал к сигнальным линиям Arduino а также к линиям GND и VCC (3.3V) напрямую.
Важно отметить, что на дисплей не выведены линии аппаратного сброса контроллера (RESET) и переключения режимов чтения/записи (R/W). Выяснилось также, что в случае наличия в команде параметров, они передаются контроллеру не в режиме передачи данных, а в том же режиме команд (линия D/C активна). В режиме передачи данных контроллер просто пишет в видеопамять.
А еще стало понятно, что ни одна система команд из тех datasheets, с которыми я ознакомился до сих пор, не подходит для этого дисплея. Факт отсутствия режима чтения информации из контроллера также не способствовал его однозначной идентификации.
Далее наступил этап уже более осмысленного ощупывания контроллера и поиска команд управления. В процессе листал datasheets на контроллеры марок SSD*, S1D1*, SED*, ILI*, ST*, SEPS*, HX* и каких-то еще. Некоторые команды таким образом были надерганы из различных источников, какие-то из них пришлось адаптировать. Другие были определены с помощью перебора, наблюдения и поиска закономерностей.
К чему все эти много букв… Вовсе не ради того, чтобы читателю показалось, как всё это сложно. Совсем наоборот. Всё, на самом деле, достаточно просто и понятно. Мне хотелось поделиться одним из возможных путей решения подобной задачки, которым шёл я. Может быть, кого-то это наведет на полезные мысли. По этой же причине я не стал удалять из кода, приведенного ниже, комментарии, появившиеся в процессе изучения контроллера.
Заранее предупреждаю, код не претендует на оптимальность и, тем более, изящество. Это просто рабочий инструмент…
/*
* Color LCD 128x160 LPH9413-1 (from Siemens Gigaset S67H) analysis
* using Arduino Pro Mini Chinese clone
*
* Work-in-Progress
*
* Copyright (c) /nik4ik, Dec, 2016 - Jan, 2017
*/
#include <stdint.h>
#define DISPLAY_MAX_COLUMNS 128
#define DISPLAY_MAX_ROWS 160
#define USE_HW_SPI 1
#define DC 9
#define DATA 11
#define CLK 13
#define CS 10
#define CS_PORT PORTB
#define CS_PORT_PIN 2
#define CLK_PORT PORTB
#define CLK_PORT_PIN 5
#define DATA_PORT PORTB
#define DATA_PORT_PIN 3
#define DC_PORT PORTB
#define DC_PORT_PIN 1
// Color definitions (BGR)
//
#define BLACK 0x0000 /* 0, 0, 0 */
#define NAVY 0x8000 /* 0, 0, 128 */
#define DARKGREEN 0x0400 /* 0, 128, 0 */
#define DARKCYAN 0x8400 /* 0, 128, 128 */
#define MAROON 0x0010 /* 128, 0, 0 */
#define PURPLE 0x8010 /* 128, 0, 128 */
#define OLIVE 0x0410 /* 128, 128, 0 */
#define LIGHTGREY 0xC618 /* 192, 192, 192 */
#define DARKGREY 0x8410 /* 128, 128, 128 */
#define BLUE 0xf800 /* 0, 0, 255 */
#define GREEN 0x07E0 /* 0, 255, 0 */
#define CYAN 0xffe0 /* 0, 255, 255 */
#define RED 0x001f /* 255, 0, 0 */
#define MAGENTA 0xF81F /* 255, 0, 255 */
#define YELLOW 0x07ff /* 255, 255, 0 */
#define WHITE 0xFFFF /* 255, 255, 255 */
#define ORANGE 0x053f /* 255, 165, 0 */
#define GREENYELLOW 0x2ff5 /* 173, 255, 47 */
#define PINK 0xF81F
#ifdef USE_HW_SPI
#include <SPI.h>
#endif
#define send_bit(_DATA, _BIT) \
asm volatile (\
" cbi %[data_port], %[data_pin]\n" \
" cbi %[clk_port], %[clk_pin]\n" \
" sbrc %[data], %[bit]\n" \
" sbi %[data_port], %[data_pin]\n" \
" sbi %[clk_port], %[clk_pin]\n" \
: \
: [data_port] "I" (_SFR_IO_ADDR(DATA_PORT)), \
[data_pin] "I" (DATA_PORT_PIN), \
[clk_port] "I" (_SFR_IO_ADDR(CLK_PORT)), \
[clk_pin] "I" (CLK_PORT_PIN), \
[data] "a" (_DATA), \
[bit] "I" (_BIT) \
)
// Set command mode
#define cm() \
asm("cbi %[dc_port], %[dc_pin]" : : \
[dc_port] "I" (_SFR_IO_ADDR(DC_PORT)), \
[dc_pin] "I" (DC_PORT_PIN));
// Set data mode
#define dm() \
asm("sbi %[dc_port], %[dc_pin]" : : \
[dc_port] "I" (_SFR_IO_ADDR(DC_PORT)), \
[dc_pin] "I" (DC_PORT_PIN));
// CS disable
#define csd() \
asm("sbi %[cs_port], %[cs_pin]" : : \
[cs_port] "I" (_SFR_IO_ADDR(CS_PORT)), \
[cs_pin] "I" (CS_PORT_PIN));
// CS enable
#define cse() \
asm("cbi %[cs_port], %[cs_pin]" : : \
[cs_port] "I" (_SFR_IO_ADDR(CS_PORT)), \
[cs_pin] "I" (CS_PORT_PIN));
// send byte
void sb(char data)
{
#ifdef USE_HW_SPI
SPI.transfer(data);
#else
// MSB
send_bit(data, 7);
send_bit(data, 6);
send_bit(data, 5);
send_bit(data, 4);
send_bit(data, 3);
send_bit(data, 2);
send_bit(data, 1);
send_bit(data, 0);
#endif
}
#define BGR(r, g, b) (((uint16_t) ((r) & 0xf8) >> 3) | ((uint16_t) ((g) & 0xfc) << 3) | ((uint16_t) ((b) & 0xf8) << 8))
typedef struct {
uint8_t x;
uint8_t y;
} point_t;
typedef struct {
uint8_t left;
uint8_t top;
uint8_t right;
uint8_t bottom;
} rect_t;
enum orientation_t {
PORTRAIT,
LANDSCAPE
};
uint8_t displayWidth = DISPLAY_MAX_COLUMNS;
uint8_t displayHeight = DISPLAY_MAX_ROWS;
orientation_t displayOrientation = PORTRAIT;
bool clipMode = false;
rect_t clipRegion = {
0, // left
0, // top
DISPLAY_MAX_COLUMNS, // right
DISPLAY_MAX_ROWS // bottom
};
void csUpDown(void) {
// Прошивка Siemens Gigaset S67H дергает этими линиями между порциями
// команд и перед записью данных. Возможно, неспроста.
// Решил пока тоже следовать такому поведению...
csd(); cse();
csd(); cse();
}
void defineClipRegion(uint8_t left, uint8_t top,
uint8_t right, uint8_t bottom) {
// sb(0xf5); // собственно, команда
// sb(120); // параметр
// задает начальное значение счетчика строк, к которому сбрасываются
// значения указателя строк при достижении конечной строки (см. ниже)
// sb(0xf7);
// sb(120);
// задает конечное значение счетчика строк, по достижении которого
// указатель строк сбрасывается к значению, устанавливаемому
// функцией 0xf5 (см выше)
// sb(0xf4);
// sb(10);
// устанавливает начальное значение счетчика колонок, к которому
// сбразывается текущее значение указателя колонок достижения последней
// колонки. Похоже, что указатель вывода данных тоже нужно двигать
// перед выводом.
// sb(0xf6);
// sb(10);
// устанавливает конечное значение счетчика колонок, по достижении
// которого счетчик сбрасывается к начальному ("нулевому") значению
cm();
csUpDown();
sb(displayOrientation == PORTRAIT ? 0xf4 : 0xf5);
sb(left);
sb(displayOrientation == PORTRAIT ? 0xf5 : 0xf4);
sb(top);
sb(displayOrientation == PORTRAIT ? 0xf6 : 0xf7);
sb(right);
sb(displayOrientation == PORTRAIT ? 0xf7 : 0xf6);
sb(bottom);
clipRegion.left = left;
clipRegion.top = top;
clipRegion.right = right;
clipRegion.bottom = bottom;
clipMode = true;
}
void undefineClipRegion(void) {
defineClipRegion(0, 0, displayWidth - 1, displayHeight - 1);
clipMode = false;
}
void gotoXY(uint8_t x, uint8_t y) {
uint8_t x_, y_;
x += clipMode ? clipRegion.left : 0;
y += clipMode ? clipRegion.top : 0;
if (displayOrientation == PORTRAIT) {
x_ = x;
y_ = y;
} else {
x_ = y;
y_ = x;
}
cm();
csUpDown();
// Set column pointer
sb(0x10 | (x_ >> 4)); // high 4 bits
sb(0x00 | (x_ & 0x0f)); // low 4 bits
csUpDown();
// Set row pointer
sb(0x70 | (y_ >> 4)); // high 4 bits
sb(0x60 | (y_ & 0x0f)); // low 4 bits
}
void displaySetContrast(uint8_t level) {
cm();
csUpDown();
sb(0x81); // set contrast level
sb(level); // (0 - 255)
}
// does this controller use these two funcs?..
//
/*
void displayContrastUp() {
cm();
csUpDown();
sb(0xd6);
}
void displayContrastDown() {
cm();
csUpDown();
sb(0xd7);
}
*/
void displayOn() {
cm();
csUpDown();
sb(0xaf); // Display On
}
void displayOff() {
cm();
csUpDown();
sb(0xae); // Display Off
}
void displaySetAllPoints(bool switchOn) {
cm();
csUpDown();
if (switchOn)
sb(0xa5); // All points on
else
sb(0xa4); // All points on disable (normal mode)
}
void resetDisplay() {
cm();
csUpDown();
sb(0xe2); // Software reset
delay(50);
}
void displayInit(orientation_t orientation) {
displayOrientation = orientation;
if (displayOrientation == PORTRAIT) {
displayWidth = DISPLAY_MAX_COLUMNS;
displayHeight = DISPLAY_MAX_ROWS;
} else {
displayWidth = DISPLAY_MAX_ROWS;
displayHeight = DISPLAY_MAX_COLUMNS;
}
cm();
csUpDown();
resetDisplay();
// sb(0x84); // хз, надо ли оно. В логе было...
if (displayOrientation == PORTRAIT) {
sb(0x89); // адресация построчно, сначала увеличивается номер столбца,
// в конце строки переходим к следующей строке
sb(0xc0); // normal mode
} else {
sb(0x8b); // адресация поколоночно: сначала увеличивается номер строки
// в конце столбца переходим к следующему столбцу
sb(0xc2); // flip vertical
}
sb(0xa6); // Normal (non inverse) mode (Inverse - 0xa7)
sb(0xd6); // ? из лога
sb(0xde); // ? из лога
}
// Не уверен, что функции связаны с режимом Standby, требуется проверка
//
/*
void displaySetStandbyMode(bool switchOn) {
cm();
csUpDown();
if (switchOn)
sb(0xac);
else
sb(0xad);
}
*/
void displaySetInverseMode(bool switchOn) {
cm();
csUpDown();
if (switchOn)
sb(0xa7); // Inverse
else
sb(0xa6); // Normal
}
void displaySetStartLine(uint8_t line) {
cm();
csUpDown();
sb(0x50 | (line >> 4)); // high 4 bits
sb(0x40 | (line & 0x0f)); // low 4 bits
}
// fills area with given color
// if no clipping region defined this will fill entire display
void fillRegion(uint16_t color) {
uint16_t i;
uint16_t x1, y1, x2, y2;
if (clipMode) {
x1 = clipRegion.left;
x2 = clipRegion.right;
y1 = clipRegion.top;
y2 = clipRegion.bottom;
} else { // Clear entire display area
x1 = 0;
x2 = displayWidth - 1;
y1 = 0;
y2 = displayHeight - 1;
}
gotoXY(0, 0);
dm();
csUpDown();
for (i = 0; i < ((x2 - x1 + 1) * (y2 - y1 + 1)); i++) {
sb((uint8_t) (color >> 8));
sb((uint8_t) color);
}
}
void putPixel(uint8_t x, uint8_t y, uint16_t color) {
gotoXY(x, y);
dm();
csUpDown();
sb((uint8_t) (color >> 8));
sb((uint8_t) color);
}
void drawHLine(uint8_t x1, uint8_t x2, uint8_t y, uint16_t color) {
defineClipRegion(x1, y, x2, y);
fillRegion(color);
}
void drawVLine(uint8_t x, uint8_t y1, uint8_t y2, uint16_t color) {
defineClipRegion(x, y1, x, y2);
fillRegion(color);
}
void setup () {
Serial.begin(9600);
Serial.println("");
Serial.println("LCD Test!");
randomSeed(analogRead(0));
pinMode(DC, OUTPUT);
#ifdef USE_HW_SPI
SPI.begin();
SPI.beginTransaction(SPISettings(16000000, MSBFIRST, SPI_MODE0));
#else
pinMode(DATA, OUTPUT);
pinMode(CLK, OUTPUT);
pinMode(CS, OUTPUT);
#endif
// дадим контроллеру немного времени чтобы очухался после подачи питания
delay(50);
}
void loop() {
int i;
unsigned long time;
int x1, y1, x2, y2;
uint16_t baseColors[] = {
BLACK, NAVY, DARKGREEN, DARKCYAN, MAROON, PURPLE, OLIVE, LIGHTGREY,
DARKGREY, BLUE, GREEN, CYAN, RED, MAGENTA, YELLOW, WHITE, ORANGE,
GREENYELLOW, PINK
};
displayOff();
displayInit(PORTRAIT);
// displayInit(LANDSCAPE);
displaySetContrast(144);
fillRegion(BLACK);
displayOn();
time = millis();
// random rectangles
for (i = 0; i < 100; i++) {
x1 = random(0, displayWidth - 10 - 1);
x2 = random(x1 + 10, displayWidth - 1);
y1 = random(0, displayHeight - 10 - 1);
y2 = random(y1 + 10, displayHeight - 1);
defineClipRegion(x1, y1, x2, y2);
fillRegion(baseColors[random(sizeof(baseColors) / sizeof(uint16_t))]);
}
undefineClipRegion();
delay(1000);
fillRegion(BLACK);
// random pixels
for (i = 0; i < 5000; i++) {
x1 = random(0, displayWidth - 1);
y1 = random(0, displayHeight - 1);
putPixel(x1, y1,
baseColors[random(sizeof(baseColors) / sizeof(uint16_t))]);
}
delay(1000);
fillRegion(BLACK);
// random horizontal/vertical lines
for (i = 0; i < 5000; i++) {
x1 = random(0, displayWidth - 1);
x2 = random(x1, displayWidth - 1);
y1 = random(0, displayHeight - 1);
y2 = random(y1, displayHeight - 1);
if (random(0, 2) == 1) {
drawHLine(x1, x2, y1,
baseColors[random(sizeof(baseColors) / sizeof(uint16_t))]);
} else {
drawVLine(x1, y1, y2,
baseColors[random(sizeof(baseColors) / sizeof(uint16_t))]);
}
}
undefineClipRegion();
delay(1000);
time = millis() - time;
Serial.print("Loop done in ");
Serial.print(time);
Serial.println(" millis");
// tests...
//
// 0x0x, 0x1x, 0x6x, 0x7x - used for memory address setting (see gotoXY)
//
// 0x4x, 0x5x - disp start line coordinates.
//
// 0x2x - can't see any noticeable effects
// 0x3x, 0x9x - the same shit
//
// sb(0xad);
// sb(0x8a); // после сброса экран заполняется мусором
// sb(0x8c); // ...
// sb(0x8e); // ...
// sb(0x88); // ...
//
// sb(0xc6); // rotate 180 (as c2 | c4)
// sb(0xc2); // flip vertical
// sb(0xc4); // flip horizontal
// sb(0x8f); // rotate 90
// sb(0xc2); // flip vertical
// sb(0x89); // нормальный портретный режим, слева направо
// sb(0x86); // ...
// sb(0x87); // ...
// sb(0x8b); // Landscape mode, 90 CCW, справа налево!
// sb(0x8d); // rotate 180, справа налево
// sb(0x8f); // Landscape mode, 90 CCW, слева направо!
// sb(0xa9);
// Что-то делает. В некоторых источниках эта команда
// задает параметры duty cycle
// 0x25, 0x26, 0x27
// последовательный вызов приводит к увеличению яркости подсветки?
// 0x28 тушит изображение...
// смысл и назначение неясны
// sb(0xf9);
// после вызова это команды следующие далее команды вывода на экран
// никакого видимого эффекта не производят
// возобновяется все при последующем вызове команды 0xf8
// смысл и назначение неясны
// Вызов команды 0x88 приводит к тому, что вывод выполняется с увеличением
// указателя колонки, но при достижении указателем колонки
// максимального значения, указатели колонки и строки автоматически
// не изменяются, и весь вывод выполняется в последнюю точку строки.
// Подумалось о режимах вывода Horizontal, Vertical & Page Mode
//
// 0xb9 - сандартный режим вывода
//
// Вызов команды 0x8a приводит к тому, что вывод выполняется с увеличением
// указателя строки (отрисовка столбца), а при достижении указателем строки
// максимального значения, указатели строки и колонки автоматически
// не изменяются, и весь вывод выполняется в последнюю точку колонки
//
// 0x8b - сначала меняется адрес строки, затем столбца
//
// 0x8c - ведет себя как 0x88 ?
//
// 0x8d - во время записи адрес колонки увеличивается, при достижении
// указателя колонки последнего значения адрес строки, вместо увеличения,
// уменьшается
//
// 0x8e - как 0x8a, но во время записи адрес строки уменьшается
//
// 0x8f - во время записи адрес строки уменьшается. При достижении
// минимального значения адреса строки, указатель строки получает максимально
// возможное значение, а указатель колонки увеличивается.
//
Serial.println("Done");
delay(2000);
}
Как видно, разведанных функций не особо много. Но мне, к примеру, их уже достаточно для того, чтобы перейти к следующему этапу использования этого дисплея. Возможно, кто-то пожелает добавить этот тип дисплея к одной из существующих библиотек и использовать готовые процедуры отрисовки примитивов и шрифтов. Мне же для моей задачи достаточно будет кода для работы с парой-тройкой типоразмеров шрифтов и вывода прямых линий.
В завершение хочу обратиться к тем, кто продвинется дальше в исследовании этого дисплея: пожалуйста, поделитесь своими наработками. Хотелось бы, в конце-концов, вычислить, что за контроллер использован в устройстве. Ну а может быть, я просто плохо искал, а это всё «велосипед», и кто-то сразу сможет назвать модель контроллера и ткнуть меня носом в datasheet?
Upd 09/01/2017, уточнены названия сигнальных линий.
с регистра 00 читается 0x9225 это контроллер ILI9225B .
из его даташита 8.2.24. Horizontal and Vertical RAM Address Position (R36h/R37h, R38h/R39h) ......................... 79
с регистров 0x36 0x38 считывается 0x00AF 0x00DB что значит разрешение 176 220 . //в других дисплеях в основном можно подобно подсматривать разрешение , и по другим адресам.
распиновка:
GND
ts
ts
ts
ts
GND
+VDD VCC
CS
CD (RS)
WR
RD
DB0
DB1
DB2
DB3
BD4
DB5
DB6
DB7
RESET
GND
A
A
A
K
библу на базе UTFT подготовил https://yadi.sk/d/eoa6HW_5rSyfE ( init code ili9225 ili9225b положил в папку C:\Documents and Settings\Admin\Мои документы\Arduino\libraries\UTFT\tft_drivers\s6d0164 )
все что нужно, остается просто запустить пример UTFT\examples\Arduino (AVR)\UTFT_Demo_220x176
nik4ik , ну круто. боюсь спросить сколько на это "принципиально" времени ушло? что с распиновкой разобрались это больше полдела. Из скетча напрашивается , что он все же SPI ? тогда правильней обозвать пины mosi sck cs ... Для распознания можно было и дешевым анализатором на CY7C68013A пройтись , там вроде есть автоматическое распознавание протоколов.
SPI есть и удафруита и UTFT (4pin и 5pin) , все их иниты перепробовали? думаю 4pin UTFT как раз ваш вариант. в описании UTFT_Requirements.pdf указано подключение. Пример UTFT_Demo_160x128_Serial , там описано подключение // Usage: myGLCD(<model code>, SDA, SCL, CS, RST[, RS]);
можно и все другие примеры с *_Serial перебрать, там тоже есть варианты с 4пиновым подключением.
Хотя не мудрено что у сименса может быть свой редкий контроллер, на который и не найти даташит. Можете фотки еще прицепить к своему сообщению , что смогли вывести на этот дисп., что выводит ваш скетч. // У вашего сообщения есть для вас изменить : ( изменить , ответить, цитировать)
с регистров 0x51 0x53 считывается 0x00AF 0x00DB что значит (175 и 219 ) это разрешение 176x220 . //в других дисплеях в основном можно подобно подсматривать разрешение , и по другим адресам.
в режиме 16бит UTFT тест проходит за 36 секунд , в режиме 8бит - за 39 сек.
в либу на базе UTFT занес рабочий, отысканный в инете инит. Готово к пользованию: https://yadi.sk/d/eoa6HW_5rSyfE ( init code R61503 R61503U положил в папку C:\Documents and Settings\Admin\Мои документы\Arduino\libraries\UTFT\tft_drivers\ili9325c )
все что нужно, остается просто запустить пример UTFT\examples\Arduino (AVR)\UTFT_Demo_220x176
надо только перекоментить в нем на так:
//UTFT myGLCD(S6D0164,38,39,40,41); // S6D0164 для ILI9225 Fly MC130
UTFT myGLCD(ILI9325C,38,39,40,41); // ILI9325C для R61503U Fly DS240 B700
nik4ik , ну круто. боюсь спросить сколько на это "принципиально" времени ушло? что с распиновкой разобрались это больше полдела.
Лучше я не буду подсчитывать общее время, дабы самому не испугаться :-) . Как минимум, все эти новогодние выходные, ну и в том году сколько-то выходных и вечеров. На самом деле, есть в наличии дисплей такого же разрешения, вполне себе известный и признаваемый существующими библиотеками. В данном случае я скорее удовлетворял свой интерес и любопытство, поэтому не считаю, что время потрачено совсем уж напрасно.
slider пишет:
Из скетча напрашивается , что он все же SPI ? тогда правильней обозвать пины mosi sck cs ... Для распознания можно было и дешевым анализатором на CY7C68013A пройтись , там вроде есть автоматическое распознавание протоколов.
Согласился. Тех, кто не полезет в скетч, названия могут смутить. Поправил. А анализатора и на отладочной хватило. Тем более, что она есть, а дополнительный собирать/покупать - это время и средства.
slider пишет:
SPI есть и удафруита и UTFT (4pin и 5pin) , все их иниты перепробовали?;
О, да. Перепробовал все варианты. Правда, это было еще тогда, когда перебирались выводы и протоколы. Но потом я еще пробегался глазами по заголовочным файлам из папки драйверов - подходящийх последовательностей не узрел.
А насчет фоток того, что выводит дисплей... Я не знаю даже, есть ли смысл. Сейчас, как я и писал, это лишь прямоугольники, линии да точки. Давайте так: как только я прикручу к нему шрифты или добавлю этот дисплей к той же Adafruit GFX (что тоже может статься) - обещаю обновить.
Добрый вечер есть дисплей HL-FPC040005B помогите разобраться с ним инфи по нем не нашёл имеет 39pin c подсветкой и тачем разобрался помогите с остальным .
Всем привет! Имеется Дисплей от Galaxy S3 GT I9300. Был упал и после падения при разблокировке не включалась подсветка, а так все отлично работает. Буду менять модуль а данных дисплей хочу поставить на Ардуино для вывода информации и управлением. Распиновка контактов:
Ruskat, если б прочли хотя бы пару первых страниц , то ззаметили б , что надо выводы DB0..DB7..DB16 . А здесь пары(как витые в компьютерной сети) - шина LVDS , или DSI , MIPI ,... (гуглить вместе с arduino) . Дисплеи такого высокого разрешения не могут иметь большой видеоконтроллер (видеокарту) на стекле по многим причинам. Обслуживанием графики большого разрешения и скорости занимается процессор на плате, как собственно и в компьютере, планшетниках,...
Подключить можно только через плату - переходник , выполняющую роль скалера (плата как в любом мониторе) + выдеокарты (видеопроцессор с видеопамятью) как в любом компьютере . Ссылки на на подобные проекты давал здесь ранее. Это очень затратное решение, но выполнимое.
Подпаял провода к экрану добавил резисторы4,7ком, но вот не пойму, к каким контактам ардуино их подключать, и не могли бы вы дать какой-нибудь скетч для пробы? возможно требуется какая то специальная библиотека для нокиа 1100? http://digitalchip.ru/podklyuchenie-displeya-ot-nokia-1100-chast-1
Назначение выводов экрана Nokia1100. Вид с обратной (задней) стороны.
Вывод CS на экране это что? SDA к А4, SCLK к А5. Не понял, куда цеплять CS, а RES к 10 пину ардуино, правильно?
Comondante , я б на вашем месте просто прошелся по нему либой UTFT , пример UTFT_Demo_160x128_Serial , перебирая иниты . (лог ваш пока не смотрел , можете сами в инете пошукать по разрешению 128x160 какие контроллеры применяются. на Али какие распространенные, в шилдах ардуиновских. Ранее приводил ссылку на таблицу что в сотовых тлф применяется)
надо ещё установить разрядность в либе на 8 для всех инитов - в UTFT.cpp
подредактируйте
disp_x_size =127;
disp_y_size =159;
display_transfer_mode =8;
На RD не забудьте подать лог.1
и, да, применяя ардуино уно , у него не хватит памяти на включенные все иниты в memorysaver.h , поэтому можете раскоментить для больших экранов
#define DISABLE_SSD1963....
#define DISABLE_ILI9486
#define DISABLE_ILI9481
#define DISABLE_R61581 ....
остальные disable оставьте закоментенными
// при вставке кода, в том же окне нажмите следующую вкладку , там есть "сворачивать код по умолчанию" . у вас еще доступно изменить к своему сообщению.
Цветной снег - это хорошо - это он прошел инициализацию. случайным образом, вы включили дисп. перебирая его регистры. В моей читалке (нужна ардуина Мега) после каждого обращения регистра и чтения , отправляется он в сброс + время, потому как некоторые регистры могут его отправить в сон, но зачастую производители сделали после регистра сна , следующий регистр - это пробуждение , на сколько это быстро , не вдавался в подробности.
что привели сюда стороннюю читалку для UNO и 8бит для Адафруитских шилдов, здорово, буду знать :) , а то некогда мониторить кто еще что придумал .
bester , поищите в инете arduino uno pinouts . там расписано какие ардуиновские пины подключены к порту С atmega328
ywor , дисп либо не подключен , либо неправильно подключен, в скетче написано к каким пинам надо подключить.
// при вставке кода, в том же окне нажмите следующую вкладку , там есть "сворачивать код по умолчанию" . у вас еще доступно изменить к своему сообщению.
по читалке пока больше не запаривайтесь (ее только для ардуины Мега делал), просто переберите иниты , с большой вероятностью найдете подходящий.
Ведь он у вас подключен к UNO . разве что шину данных диспа DB0..DB7 переключите с распиновки адафруита ( D 89234567 ) на распиновку утфт ( D 01234567 ) . и на RD подать лог.1
slider Вы не могли выложить схему подключения программы для определения ID контроллера дисплея а то не могу понять выводы (дисплея желательно подключать через резист. делители к примеру 10к+22к , на крайняк тупо через 10к,) к каким выводам подпаивать резисторы и если шилд к нему тоже надо подпаивать резисторы.На дисплее поставить резистор 3,3к между VO и VSS(+) , RW замкнуть на VSS(+), подключить A и K к VSS(+) и VDD Это правильная распиновка как на датише так Vss это ( -) а Vdd это (+).
Подскажите пожалуйста что бы определить id дисплея как я понял с описания slider его нужно выпаять а на готовом шильде он не определиться.И как На RD подать лог.1 это подать на него питание или это программно. Не судите строго я только учусь работать с ардуино
Доброго времени суток, друзья! Прошу помощи! Есть экранчик от "китайца" TFT8K2108FPC-A2-E (ILI9481 ? или SSD1289 ? , информация из глубин интернета. Не знаю кому верить.). Есть две китайские ардуинки UNO и MEGA, хочу их вместе подружить), но безрезультатно. Просто есть нестыковочка с распиновкой. В распиновке шлейфа , которую я нашел (не уверен, что от него) 2 контакта IM0 и IM1? а в даташите (ILI9481) их 3, IM0, IM1 и IM2. Может кто сталкивался с таким экранчиком.
diger67, прошу прощения, сонный я, что-то не посмотрел кто пишет. Да, вы правы.
Ну что же вы так сразу... Slider дал хорошие ссылки - там все коротко и четко написано по таким дисплеям как у вас.
Вам действительно следовало почитать тему - вы не сможете использовать этот дисплей на ардуине, так как у него нет видеопамяти. Подробнее смотрите в постах выше, Slider писал о подобных дисплеях.
Ну почему нельзя просто сказать что ничего не получится, "вот вам ссылка там аналогичный рассматривали", почему сразу нужно упрекать в том что якобы не читаешь форум? Я прошелся по ссылкам и ненашел, ненашел Карл! своего дисплея. Ну если раздражают такие вопросы, ну не отвечай ты и все, ответят другие адекватные, спокойные люди. Нет бл.. нужно ответить и обязательно вые@нуться, типа вы тут все нубы, один я д'артаньян..
Потому Нельзя сказать что вообще не получиться - потому что это будет ложь. Получиться то получится, можно его прикрутить, не переживайте так. Почти никто, как и вы, не находит своего дисплея, дисплеев бесчисленное множество, делают в основном по аналогии и по даташитам. Но просто это надо брать и делать, как - вся инфа есть, тем более через гугл и яндекс. А ради спортивного интереса, а ну-ка метнитесь и сделайте всё за меня, это врят ли, и у кого найдется точь в точь такой же дисп.
для ардуин подключение диспов с RGB шиной, можно сделать, не парясь с микросхемами внешнего видео ОЗУ:
1. способ через дорогостоящий переходник или самому спаять (мало ли, пытливому уму не важно время) микросхемы ssd1963 не особо дорого стоят.
2. способ (не реализованный мной по причине отсутствия времени и интереса, так что дерзайте сами) - это прикрутить его как есть , типа как ардуинку подключают к телевизору. в качестве фреймбуфера используется внутреннее ОЗУ ардуины) Тогда разрешение по пикселям будет не очень, зато можете использовать всю площадь экрана. Может быть для вас это как раз важно, видеть большую инфу на большом экране.
//Хотелось бы чтобы эта тема жила, и не засиралась однотипными вопросами на каждой странице, а то есть подобные темы за сотню страниц и за 1000 сообщений, никто их уже не читает, все превращено в срач. Случайно или умышленно. Изучение затруднено, там уже каша. Цените пожалуйста что есть. у меня нет здесь модераторства, чтобы подчищать. Хотелось бы чтоб в этой теме народ, наоборот делился что уже победил нового. а изученного и так уже полно выложено в инете. И давайте прекратим писать не по теме, сохраним тему в чистоте и концентрировано в новых решенных диспах.
Достался от сломанного терминала оплаты.
Гугл помощи не дает. может кто подскажет что за зверь и с чем его едят.
Достался от сломанного терминала оплаты.
Гугл помощи не дает. может кто подскажет что за зверь и с чем его едят.
Фото "фэйса" в студию.
А вообще, мне кажется, придётся его расковырять, для получения большего количества инфы о нём
....
Фото "фэйса" в студию.
А вообще, мне кажется, придётся его расковырять, для получения большего количества инфы о нём
bankir_1986, шутник.
походу у гугла тоже вид сзади спрашивал, вот ничего и не нашел. и что там на разъеме невидать.
От фэйса тут толку мало будет, если вы с подобным не сталкивались.
Нужно чтобы bankir_1986 нарисовал примерную схему где он был , + - , конденсаторы керамические на каких пинах. либо это подобие 1602, либо графического (несколько керамич. кондеров тогда у разъема будут) . надо было вид спереди под углом, чтоб сегменты видать было , модель прибора от куда вытащен, можно ещё фотку платы где стоял.
От фэйса смысла нет, такой же ка и 1602.
Колупать пробовал - вклеен намертво. Собственно взял его с ооочень маленькой надеждой его запустить (благо на халяву достался, на это и купился).
Схему посмотрю вечером.
....колупать - это я предложил, чтобы посмотреть куда тот шлейф идёт, распиновку конкретизировать, а то так можно ооочень долго экспериментировать с проводками, даже если там самый дефолтный (по контроллеру) 1602
Привет всем. Хотел бы попросить помощи или хотябы совета. Есть TFT-LCD на шлейфе LMS700KF05 с тач от XEROX Phaser 3635FP для использования в своём проекте. Плата управления CLX_8380_OPE_MAIN на CPU: Samsung S3C2413XL-26. Нужна эта плата, или LCD подключать без неё? Даташит на LMS700KF05 нашёл прилагаю фото распиновки и другие по теме вопроса. Не понял как тут фотки загрузить, поэтому дам ссылку.
https://yadi.sk/d/UcBJR8pjxTan9
На плате управления есть UART. Аппарат достался нерабочий, не включался. Пару дней назад подключил весь аппарат от другого БП, запустился. Аппарат этот по сути дела обычный комп, есть почти полноценная материнка, винчестер на 80Gb, линейка памяти и пр. А эта панель просто как монитор с клавой. Вот и хочу спросить как прикруттить это дело к Arduino, библиотек под него естественно нет. И подскажите знатоки, стоит ли связываться с этим девайсом?
Дисплей, вроде не маленький. Дюймов 7 наверное? Скорее всего там RGB интерфейс. С таким интерфейсом прикрутить к ардуино можно, но не эффективно. Про это здесь писали: http://arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-mobilnykh-telefonov#comment-91565
Ну еще посмотреть сам дисплей, его шлейф, прикинуть примерную распиновку, искать аналоги.. Посмотрите тему - есть советы что и как
Привет всем. Хотел бы попросить помощи или хотябы совета. Есть TFT-LCD на шлейфе LMS700KF05 с тач от XEROX Phaser 3635FP для использования в своём проекте. Плата управления CLX_8380_OPE_MAIN на CPU: Samsung S3C2413XL-26. Нужна эта плата, или LCD подключать без неё?
....
Не понял как тут фотки загрузить, поэтому дам ссылку.
.....
Вот и хочу спросить как прикруттить это дело к Arduino, библиотек под него естественно нет. И подскажите знатоки, стоит ли связываться с этим девайсом?
фотки прикрутить описано выше в форуме , отдельной темой , можно и поиском найти.
это дисп с RGB шиной. тем более распиновку вы какуюто нашли. если хотите , можете попробовать привязать без всяких переходников но выводя на него меньшее разрешение. черно-белое или м.б. 8ми битное (255 цветов) цветное. на подобие как в проекте с подключением к телевизору или монитору. вы будете первым кто это реализует и расскажет об этом.
по поводу подобного диспа отвечал здесь http://arduino.ru/forum/apparatnye-voprosy/pomogite-pozhaluista-podklyuchit-kitaiskii-tft-displei-k-arduino
сдублирую в эту тему, т.к. много там картинок(кликабельны) приложил:
если предположить: простенький дисплей с RGB шиной и 320х240 пикселей, то чтобы и всех оббежать надо:
для самой простоты при черно-белом изображении (все выводы RGB либо на+ либо на -)
1. 320х240=76800бит *50 раз в сек=3,84Мгц частота вывода инфы , что возможно.
2. 320х240=76800бит /8(бит в байте)=9Кбайт ОЗУ необходимых, которых ни у меги, тем более у уно нет. Так что мож проще достать дисплей уже с внутренним контроллером со своим ОЗУ(в смысле видеопамятью) , или приобрести отдельно SSD1963 board
или на RA8875
библиотека RA8875 https://github.com/adafruit/Adafruit_RA8875
)
купить можно
https://www.adafruit.com/product/1590 и http://www.ebay.com/itm/RA8875-Driver-Board-for-40-pin....
,почемуто правда они ещё прилично стоят, видимо китайцы ещё не знают что на это может быть спрос, микросхемы SSD1963 то, относительно недорого стоят (200-250руб).
платы переходники на SSD1963 найдете много разных, купить можно погуглив SSD1363 board
купить можно 700-1000руб на таобао https://world.taobao.com/item/12897334160.htm и https://world.taobao.com/item/15253677647.htm
они также с разъемами под разные шлейфы диспов 36 и 40 пин
, RA7785 там дороже.
библиотека UTFT в ней есть поддержка ssd1963 http://www.rinkydinkelectronics.com/library.php?id=51
ещё такие платы бывают
http://www.adafruit.com/product/1654
как видите в инете их полно всяких разных. мне эти переходники не надо , но я и то нашел для вас. А кому реально надо , тот гораздо больше вариантов найдет.
Попробуйте для опыта подцепить напрямую к 3.3в ардуине или к 5в через резисторы (как ардуино вывод на TB)
а) объеденить пиксели , к примеру по 4 шт, тогда при разрешении 240x136 (бывшее 480х272) потребуется 4КБайта ОЗУ, у ардуиноМЕГИ - 8КБ, должно хватить.
б) Ну или, если выводить только цифры и текст (к примеру цифры , алфавит, значки - всего до 256разных), то каждому знакоместу(массиву) присвоить байт в выделенной "видеопамяти" , который и будет означать что контроллеру выводить в знакоместо.
Молодец! Огромную работу проделал! Вызывает уважение. Вот мой один из экспериментов с LCD TFT 2.8 240x320 c сенсором https://youtu.be/Yx5-GhII6Hk
О 7дюймовых спрашивали уже конечно. Но все же еще свой выложу. Имеется дисплейчик от навигаторов несколько штук с тач панелью. 40 пин 800x480. Адафруит контроллер смотрел но он стоит не реально дорого. Но хотелось бы по минимому вложиться в контроллер. В навигаторе стоит SIRF ATLAS V похоже напрямую к ниму подключается. Подозреваю что этот https://www.maritex.com.pl/product/attachment/42224/KWH070KQ13-F02-%202011.pdf datasheet соответствует этому lcd.
Здравствуйте, очень нужна помощь с подключнием дисплеев от телефонов, ну или хотя бы узнать от чего они, никак не найду информацию по ним. Вот:
Это два одинаковых
Вот такой еще. 10-ти контактный
Двойной от раскладушки
И еще одна раскладушка, два одинаковых двойных дисплея:
Заранее благодарен
Slider , хотел задать вам пару вопросов. uhbirj@bigmir.net Заранее спасибо
heisenberg133
Второй сверху 10 контактный - Nokia 6101
Два одинаковых двойных дисплея - Siemens EF81
Подскажите как подружить с UNO
Подскажите как подружить с UNO
2,2 дюйма 220x176
ValGor, подключать так же как и все предыдущие. берете и подключаете. прочитайте тему с начала - это как раз примеры с ходом мыслей , для случаев если их еще никто в инете не подключал.
тем более у вас и распиновка и схема есть что сильно облегчает задачу. Только вроде вы смотрели не на схему дисплейной платы, а схему шлейфа. посмотрите повнимательней.
heisenberg133 , ValGor, есть форум по подобной мелочи http://vrtp.ru/index.php?showtopic=1120 , посмотрите примеры там.
Да это схема разьема телефона.
сейчас сделаю платку для дисплея и в перед
Вспомнил про заначку :D
4й маленький LCD оказался OLED 2864 (pg-2864gswb.03b) только 31 pin а не 30
нет ли случаем разводки oled shild
нашел на радиокот такое
но не уверен дя и 31pin у меня и кстати не синие а белые пиксели.
Спасибо
Как видно, разведанных функций не особо много. Но мне, к примеру, их уже достаточно для того, чтобы перейти к следующему этапу использования этого дисплея. Возможно, кто-то пожелает добавить этот тип дисплея к одной из существующих библиотек и использовать готовые процедуры отрисовки примитивов и шрифтов. Мне же для моей задачи достаточно будет кода для работы с парой-тройкой типоразмеров шрифтов и вывода прямых линий.
читалка 8bit выдает
библу на базе UTFT подготовил https://yadi.sk/d/eoa6HW_5rSyfE ( init code ili9225 ili9225b положил в папку C:\Documents and Settings\Admin\Мои документы\Arduino\libraries\UTFT\tft_drivers\s6d0164 )
все что нужно, остается просто запустить пример UTFT\examples\Arduino (AVR)\UTFT_Demo_220x176
фотки кликабельны
nik4ik , ну круто. боюсь спросить сколько на это "принципиально" времени ушло? что с распиновкой разобрались это больше полдела. Из скетча напрашивается , что он все же SPI ? тогда правильней обозвать пины mosi sck cs ... Для распознания можно было и дешевым анализатором на CY7C68013A пройтись , там вроде есть автоматическое распознавание протоколов.
SPI есть и удафруита и UTFT (4pin и 5pin) , все их иниты перепробовали? думаю 4pin UTFT как раз ваш вариант. в описании UTFT_Requirements.pdf указано подключение. Пример UTFT_Demo_160x128_Serial , там описано подключение // Usage: myGLCD(<model code>, SDA, SCL, CS, RST[, RS]);
можно и все другие примеры с *_Serial перебрать, там тоже есть варианты с 4пиновым подключением.
это еще гляньте https://learn.adafruit.com/1-8-tft-display/downloads
Хотя не мудрено что у сименса может быть свой редкий контроллер, на который и не найти даташит. Можете фотки еще прицепить к своему сообщению , что смогли вывести на этот дисп., что выводит ваш скетч. // У вашего сообщения есть для вас изменить : ( изменить , ответить, цитировать)
при выборе 8бит на IM0 лог.1, они переносятся на старший байт , т.е. используются DB8-DB15 .
в режиме 16бит (лог1 на IM0) читалка ID_display_read_to_serial_monitor_universal_v3.1_16bit_PortCA_a выдает
в режиме 8 бит (лог0 на IM0) , другая читалка для 8бит ID_display_read_to_serial_monitor_universal_v3.1_8bit_PORTA_all выдает
в режиме 16бит UTFT тест проходит за 36 секунд , в режиме 8бит - за 39 сек.
в либу на базе UTFT занес рабочий, отысканный в инете инит. Готово к пользованию: https://yadi.sk/d/eoa6HW_5rSyfE ( init code R61503 R61503U положил в папку C:\Documents and Settings\Admin\Мои документы\Arduino\libraries\UTFT\tft_drivers\ili9325c )
все что нужно, остается просто запустить пример UTFT\examples\Arduino (AVR)\UTFT_Demo_220x176
надо только перекоментить в нем на так:
nik4ik , ну круто. боюсь спросить сколько на это "принципиально" времени ушло? что с распиновкой разобрались это больше полдела.
Лучше я не буду подсчитывать общее время, дабы самому не испугаться :-) . Как минимум, все эти новогодние выходные, ну и в том году сколько-то выходных и вечеров. На самом деле, есть в наличии дисплей такого же разрешения, вполне себе известный и признаваемый существующими библиотеками. В данном случае я скорее удовлетворял свой интерес и любопытство, поэтому не считаю, что время потрачено совсем уж напрасно.
Из скетча напрашивается , что он все же SPI ? тогда правильней обозвать пины mosi sck cs ... Для распознания можно было и дешевым анализатором на CY7C68013A пройтись , там вроде есть автоматическое распознавание протоколов.
Согласился. Тех, кто не полезет в скетч, названия могут смутить. Поправил. А анализатора и на отладочной хватило. Тем более, что она есть, а дополнительный собирать/покупать - это время и средства.
SPI есть и удафруита и UTFT (4pin и 5pin) , все их иниты перепробовали?;
О, да. Перепробовал все варианты. Правда, это было еще тогда, когда перебирались выводы и протоколы. Но потом я еще пробегался глазами по заголовочным файлам из папки драйверов - подходящийх последовательностей не узрел.
А насчет фоток того, что выводит дисплей... Я не знаю даже, есть ли смысл. Сейчас, как я и писал, это лишь прямоугольники, линии да точки. Давайте так: как только я прикручу к нему шрифты или добавлю этот дисплей к той же Adafruit GFX (что тоже может статься) - обещаю обновить.
Добрый вечер есть дисплей HL-FPC040005B помогите разобраться с ним инфи по нем не нашёл имеет 39pin c подсветкой и тачем разобрался помогите с остальным .
Фото шлейфа с двух сторон.
вот он
Похоже что:
27, 28 +3.3в
5, 29 gnd
23, 24, 25, 26 сигналы управления, RD, WR, RS, CS, надо разбираться по месту
7, 8, 9, 10, 11, 12, 13, 14 шина данных D8 -> D0
6 reset.
Всем привет! Имеется Дисплей от Galaxy S3 GT I9300. Был упал и после падения при разблокировке не включалась подсветка, а так все отлично работает. Буду менять модуль а данных дисплей хочу поставить на Ардуино для вывода информации и управлением. Распиновка контактов:
Удастся ли дисплей вообще подружить с Ардуино?
Ruskat, если б прочли хотя бы пару первых страниц , то ззаметили б , что надо выводы DB0..DB7..DB16 . А здесь пары(как витые в компьютерной сети) - шина LVDS , или DSI , MIPI ,... (гуглить вместе с arduino) . Дисплеи такого высокого разрешения не могут иметь большой видеоконтроллер (видеокарту) на стекле по многим причинам. Обслуживанием графики большого разрешения и скорости занимается процессор на плате, как собственно и в компьютере, планшетниках,...
Подключить можно только через плату - переходник , выполняющую роль скалера (плата как в любом мониторе) + выдеокарты (видеопроцессор с видеопамятью) как в любом компьютере . Ссылки на на подобные проекты давал здесь ранее. Это очень затратное решение, но выполнимое.
вот и на сайте известного Адафруита есть про него https://blog.adafruit.com/2016/03/31/control-smartphone-display-from-mipi-display-serial-interface-arduino-and-raspberrypi-compatible/
шилд для ардуино Уно, Меги,.. через HDMI для малины , апельсина , компа,...
Люди добрые,подскажите пожалуйста чайнику, как подключить дисплей от вот такой нокиа 1100 к ардуино?
Люди добрые,подскажите пожалуйста чайнику, как подключить дисплей от вот такой нокиа 1100 к ардуино?
ну что ж вы поиском не пользуетесь ? в гугле и яндексе nokia 1100 arduino
даже здесь на форуме есть http://arduino.ru/forum/programmirovanie/biblioteka-dlya-lcd-nokia-1100
Подпаял провода к экрану добавил резисторы4,7ком, но вот не пойму, к каким контактам ардуино их подключать, и не могли бы вы дать какой-нибудь скетч для пробы? возможно требуется какая то специальная библиотека для нокиа 1100? http://digitalchip.ru/podklyuchenie-displeya-ot-nokia-1100-chast-1
Назначение выводов экрана Nokia1100. Вид с обратной (задней) стороны.
Вывод CS на экране это что? SDA к А4, SCLK к А5. Не понял, куда цеплять CS, а RES к 10 пину ардуино, правильно?
Что же? Никто не подключал что ли такой дисплей?
Доброго времени суток Всем!Я новичёк в этом деле.
И я внесу свои пять копеек.
Раздобыл
сей девайс из китайского mp3 плеера.Припаял на вот такую платку.
DB0...DB7 и управляющие выводы посадил через 10k.
Вот хочу попробывать прикрутить его к какой нить атмеге.
По надписям на шлейфе удалось лишь найти распиновку шлейфа .А вот какой там контроллер не знаю.
Добавил фоток для идентификации девайса.Может кому пригодится.На шлейфеL 1209 T-177B49-A-5
проц в плеере ATJ2117.
Читалкой ID контроллеров через UNO удалось добиться мусора на экране.
Вот что удалось увидеть в окне монитора порта
Куда копать дальше?Подскажите пожалуйста.Как оперделить ID контроллера по этим данным ?
Спасибо.
Comondante , я б на вашем месте просто прошелся по нему либой UTFT , пример UTFT_Demo_160x128_Serial , перебирая иниты . (лог ваш пока не смотрел , можете сами в инете пошукать по разрешению 128x160 какие контроллеры применяются. на Али какие распространенные, в шилдах ардуиновских. Ранее приводил ссылку на таблицу что в сотовых тлф применяется)
надо ещё установить разрядность в либе на 8 для всех инитов - в UTFT.cpp
подредактируйте
Спасибо Slider ! Буду копать дальше.
По замечаниям буду иметь ввиду.Яж только учусь.=)
ywor , дисп либо не подключен , либо неправильно подключен, в скетче написано к каким пинам надо подключить.
// при вставке кода, в том же окне нажмите следующую вкладку , там есть "сворачивать код по умолчанию" . у вас еще доступно изменить к своему сообщению.
В продолжение поста о дисплее из ктиайского mp3 плеера с надписью на шлейфе L 1209 T-177B49-A-5
и процессором в плеере ATJ2117.
Методом научного тыка были определены некоторые регистры на которые откликается дисплей
void loop() {
lcdWriteCommand(0x38); не понял что .На дисплея как бы меняется контрастность
slider,
Подскажитек как пользоваться этой либой UTFT.cpp
Какие там данные выставить в UTFT myGLCD(ILI9325C,38,39,40,41);для uno.Чёт не разберусь.
slider,
Подскажитек как пользоваться этой либой UTFT.cpp
Какие там данные выставить в UTFT myGLCD(ILI9325C,38,39,40,41);для uno.Чёт не разберусь.
ответ ранее #239 http://arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-mobilnykh-telefonov?page=4#comment-254715, прочтите внимательней и делайте .
разве что добалю, чтоб долго не думать какие кто , просто пробуете поочередно от 0 до 31 , с задержкой 3-5секунд после загрузки скетча
для UNO будет так:
myGLCD(0,A5,A4,A3,A2); // это (номер инита утфт, RS, WR, CS, RST ).
.....
myGLCD(31,A5,A4,A3,A2);
по читалке пока больше не запаривайтесь (ее только для ардуины Мега делал), просто переберите иниты , с большой вероятностью найдете подходящий.
Ведь он у вас подключен к UNO . разве что шину данных диспа DB0..DB7 переключите с распиновки адафруита ( D 89234567 ) на распиновку утфт ( D 01234567 ) . и на RD подать лог.1
Slider,DB0...DB7 были подключены согласно utft -ной распиновки для uno.RD посажен на +5в.
myGLCD(0,A5,A4,A3,A2); // это (номер инита утфт, RS, WR, CS, RST ).
.....
myGLCD(31,A5,A4,A3,A2);
преребрал все значения от 0..31.
библа memorysaver.h стандарная ничего не раскоментывал памяти хватило.
Но ничего не получилось.Экран даже не моргнул.
Что ещё можно попробывать??
slider Вы не могли выложить схему подключения программы для определения ID контроллера дисплея а то не могу понять выводы (дисплея желательно подключать через резист. делители к примеру 10к+22к , на крайняк тупо через 10к,) к каким выводам подпаивать резисторы и если шилд к нему тоже надо подпаивать резисторы.На дисплее поставить резистор 3,3к между VO и VSS(+) , RW замкнуть на VSS(+), подключить A и K к VSS(+) и VDD Это правильная распиновка как на датише так Vss это ( -) а Vdd это (+).
Да это схема разьема телефона.
сейчас сделаю платку для дисплея и в перед
Дай лаяут платы.
Подскажите пожалуйста что бы определить id дисплея как я понял с описания slider его нужно выпаять а на готовом шильде он не определиться.И как На RD подать лог.1 это подать на него питание или это программно. Не судите строго я только учусь работать с ардуино
Доброго времени суток, друзья! Прошу помощи! Есть экранчик от "китайца" TFT8K2108FPC-A2-E (ILI9481 ? или SSD1289 ? , информация из глубин интернета. Не знаю кому верить.). Есть две китайские ардуинки UNO и MEGA, хочу их вместе подружить), но безрезультатно. Просто есть нестыковочка с распиновкой. В распиновке шлейфа , которую я нашел (не уверен, что от него) 2 контакта IM0 и IM1? а в даташите (ILI9481) их 3, IM0, IM1 и IM2. Может кто сталкивался с таким экранчиком.