Перейти к содержанию

Вопросы от начинающих по МК


Рекомендуемые сообщения

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

  • Ответов
  • Создана
  • Последний ответ

Топ авторов темы

8 минут назад, Дмитрий Мамедиев сказал:

но она работает с передачей через порты 4:7

так сделай чтобы работала через 0:3, а не тупо вытри из процедуры инициализации

1 час назад, Дмитрий Мамедиев сказал:


//функция инициализации дисплея
void lcd_ini(void)
{
	_delay_ms(15);
	// Конфигурирование четырехразрядного режима
	PORTC |= (1 << PIND1);
	PORTC &= ~(1 << PIND0);
	// Активизация четырехразрядного режима
	PORTC |= (1 << EN);
	PORTC &= ~(1 << EN);
}

 

Конфигурирование четырехразрядного режима куда делось?

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

13 минуты назад, Дмитрий Мамедиев сказал:

но она работает

Может оно и работает, но закрывая на не правильную (согласно даташиту) инициализацию, вы закладываете себе на будущее  непонятки типа "как, оно же работало!".  Один дисплей может работать, второй нет....Один протеус реагирует на код так другая версия уже может по другому.

Ссылка на комментарий
Поделиться на другие сайты

3 минуты назад, Demonrostov сказал:

Один протеус реагирует на код так другая версия уже может по другому.

ничего не менялось 

Ссылка на комментарий
Поделиться на другие сайты

Только что, Дмитрий Мамедиев сказал:

я только изменил в lcd_com и lcd_data порядок передачи полубайта

Это как? Порядок есть порядок, его менять не надо...

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

26 минут назад, Дмитрий Мамедиев сказал:

да ничего я не вытирал из инициализации.

да ну? передача первых четырех ниблов (команды 0х3 и 0х2) из твой портянки куда делась?

1602.thumb.png.a40df6dc218a0ae5a936c92661da75c8.png

Ссылка на комментарий
Поделиться на другие сайты

19 минут назад, Дмитрий Мамедиев сказал:

lcd_com и lcd_data

Вы не заметили, что эти функции практически одинаковы и отличаются только RS сигналом, так может их стоит объединить и добавить еще один параметр (команда, данные)...И партянка станет короче:rolleyes:

Ссылка на комментарий
Поделиться на другие сайты

void lcd_ini(void)
{
	_delay_ms(15);
	lcd_com(0x3);
	_delay_ms(5);
	lcd_com(0x3);
	_delay_us(100);	
	lcd_com(0x3);//0b00100000 - 4 разрядная шина, 1 строки
	lcd_com(0x2);//очистка дисплея, курсор невидим и не мигает
	lcd_com(0x8);// 0b00000001 очистка дисплея
	lcd_com(0x6);//0b00000110 - курсор движется вправо, сдвига нет
	lcd_com(0xC);//0b00001100 - дисплей включен, курсор выключен, мерцание выключено
}

вот с этим заработало. 

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...
  • 4 недели спустя...

Добрый день!

Раньше имел дело только с дисплеями 1602 и nokia 5110.

Сейчас попал в руки дисплей PG24122 (интернет определяет его как GM24122S1RH).

PG24122_front_640.jpg.8df3afca6cc6fa2b81c53a32c67f51e3.jpgHTB1cFvTJFXXXXcaXVXXq6xXFXXXx.jpg.2b7a9b2946bfbaab83c042a831e4562f.jpg

Описание: http://megtestesules.info/hobbielektronika/cuccok.html

LCD Module Specification: http://megtestesules.info/hobbielektronika/cuccok/HE001/GM24122S1RH-J6.pdf

1365847185_.PNG.e3d8fc9d53abeab008f5ad30461ca31e.PNG

Продается на алиэкспресс: https://ru.aliexpress.com/item/32814247150.html

Это всё, что я смог найти в сети про этот дисплей.

Может кто-то научить, как подключить его к Ардуино или Атмега?

Спасибо!

Ссылка на комментарий
Поделиться на другие сайты

У меня примерно с таким же интерфейсом от древнего ноута есть дисплей. Дело в том что тут не всё так просто. У дисплея есть память только на одну строку, а всю картинку должен держать в себе контроллер. По всей видимости, логически дисплей состоит из двух частей - верхней и нижней половины с независимыми регистрами строк. Каждая часть из себя представляет регистр строки в который ты побитно через SD1 и SD2 с общим клоком CP заносишь данные на одну строку(длину строки в битах х.з. какая у этого дисплея можно определить практически либо с маркировки но думаю что кратная 8) потом выдаёшь сигнал LOAD(типа строчный синхросигнал), и содержимое записывается в транзисторы TFT-матрицы и переключается на следующую строку. Заряд на них держится... какое-то время, от секунд до минуты. Когда загрузил все строки, выдаётся сигнал FRAME(это типа кадровой развертки в телевизоре), счетчик строк обнуляется и всё идет сначала. По-хорошему, сигнал надо выдать в начале отрисовки дисплея.

Общий провод и +5в - понятно куда подключать, VLCD и VADJ всё-таки надо смотреть в даташит, в моём дисплее от ноута там было порядка -19В и на контрасте -21В или наоборот. У этого дисплея поидее должно быть меньше, но надо уточнять.

ME(M) это вход частоты перекллючения ЖК ячеек дисплея... поидее туда надо меандр в диапазоне 10-20Гц. Чем быстрее переключаешь тем отзывчивей дисплей но выше энергопотребление. Можно попробовать в эконом режиме 1-2Гц но может наяать неприятно мерцать.

К мелкому контроллеру не подключишь... тут надо много RAM.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

@Alexeyslav , спасибо за Ваш подробный развернутый ответ.

 

Получается, мне нужно взять массив [240х128] битов (т.к. дисплей монохромный), и всё "рисовать" в него. А затем периодически отрисовывать этот массив на дисплей.

240 * 128 = 30 720 бит = 3 840 Байт = 3,8 кБ только на массив. + какое-то место для вспомогательных переменных + много места для собственно полезных действий контроллера.

Дофига... Разве что искусственно занизить разрешение в два раза. Тогда 120*64=1кБ. Тогда на Ардуино с Атмега328 можно попробовать. Вот только кроме дисплея туда уже почти ничего "полезного" не влезет. (

Делать отдельный контроллер для дисплея? Тогда надо научиться как-то "общаться" этому контроллеру дисплея и основному контроллеру с полезной программой.

 

По поводу заполнения строки:

On 19.07.2019 at 23:38, Alexeyslav said:

...регистр строки в который ты побитно через SD1 и SD2 с общим клоком CP заносишь данные на одну строку...

...вот это не очень понятно. Можно поподробнее? Например, работаем мы с верхней половиной. Тогда у нас есть SD1 и CP. Какие сигналы я должен на них подавать, чтобы передать часть строки "00001111"? После каждого нолика или единички на SD1 надо подавать импульс на CP? Или я неправильно уловил суть?

И еще, меандр на входе ME(M) должен быть как-то синхронизирован с вводом строк или синхронизирован с чем-то еще?

Остальное, вроде бы, Вы очень подробно объяснили, всё понятно, спасибо.

Ссылка на комментарий
Поделиться на другие сайты

39 minutes ago, Lerik-Co said:

Тогда на Ардуино с Атмега328 можно попробовать. Вот только кроме дисплея туда уже почти ничего "полезного" не влезет

Есть же прекрасная флеш память тык. Стоит копейки. Скорости SPI для этого объема будет за глаза. Все картинки загоняете во флеш , напрмер с помощью CH341A. и вся память мк только для "полезного". С графическими дисплеями без флэш ни кудаB)

Изменено пользователем Demonrostov
Ссылка на комментарий
Поделиться на другие сайты

23.07.2019 в 10:30, Lerik-Co сказал:

После каждого нолика или единички на SD1 надо подавать импульс на CP?

Работает как любой регистр сдвига - устанавливаешь 1/0 на входе и подаёшь импульс на CP чтобы его протолкнуть в регистр.

23.07.2019 в 10:30, Lerik-Co сказал:

меандр на входе ME(M) должен быть как-то синхронизирован с вводом строк или синхронизирован с чем-то еще?

Вообще это не обязательно, но могут быть спецэффекты когда часто обноволяешь дисплей. Необходимость этого сигнала обусловлена самим принципом работы жидких кристаллов - если на них просто подать постоянное напряжение то их прозрачнсоть вскоре вернётся к первоначальной, поэтому тчобы держать картинку на дисплее нужно постоянно менять полярность на ячейках. В наручных часах это делается с частотой примерно 10Гц, в компьютерных дисплеях может доходить и до 400Гц. Чем выше частота тем больше энергии тратися на удержание картинки, и тем она контрастнее.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...