Дмитрий Мамедиев Опубликовано 14 июня, 2019 Поделиться Опубликовано 14 июня, 2019 инициализация может и требует внимания, но она работает с передачей через порты 4:7 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
IMXO Опубликовано 14 июня, 2019 Поделиться Опубликовано 14 июня, 2019 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); } Конфигурирование четырехразрядного режима куда делось? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
20% скидка на весь каталог электронных компонентов в ТМ Электроникс!Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!Перейти на страницу акции Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849
Дмитрий Мамедиев Опубликовано 14 июня, 2019 Поделиться Опубликовано 14 июня, 2019 да ничего я не вытирал из инициализации. я только изменил в lcd_com и lcd_data порядок передачи полубайта 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>> Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
Demonrostov Опубликовано 14 июня, 2019 Поделиться Опубликовано 14 июня, 2019 13 минуты назад, Дмитрий Мамедиев сказал: но она работает Может оно и работает, но закрывая на не правильную (согласно даташиту) инициализацию, вы закладываете себе на будущее непонятки типа "как, оно же работало!". Один дисплей может работать, второй нет....Один протеус реагирует на код так другая версия уже может по другому. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Дмитрий Мамедиев Опубликовано 14 июня, 2019 Поделиться Опубликовано 14 июня, 2019 3 минуты назад, Demonrostov сказал: Один протеус реагирует на код так другая версия уже может по другому. ничего не менялось 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Demonrostov Опубликовано 14 июня, 2019 Поделиться Опубликовано 14 июня, 2019 Вам никто не поможет, пока вы сами не начнете делать сразу правильно, а не так "как вроде работает". 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
ARV Опубликовано 14 июня, 2019 Поделиться Опубликовано 14 июня, 2019 Только что, Дмитрий Мамедиев сказал: я только изменил в lcd_com и lcd_data порядок передачи полубайта Это как? Порядок есть порядок, его менять не надо... 0 Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют... Ссылка на комментарий Поделиться на другие сайты Поделиться
Demonrostov Опубликовано 14 июня, 2019 Поделиться Опубликовано 14 июня, 2019 Ошибка инициализации есть. Почитайте даташит. Ее надо исправлять. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Дмитрий Мамедиев Опубликовано 14 июня, 2019 Поделиться Опубликовано 14 июня, 2019 скажите тогда lcd_com и lcd_data правильно на ваш взгляд? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
IMXO Опубликовано 14 июня, 2019 Поделиться Опубликовано 14 июня, 2019 26 минут назад, Дмитрий Мамедиев сказал: да ничего я не вытирал из инициализации. да ну? передача первых четырех ниблов (команды 0х3 и 0х2) из твой портянки куда делась? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Demonrostov Опубликовано 14 июня, 2019 Поделиться Опубликовано 14 июня, 2019 19 минут назад, Дмитрий Мамедиев сказал: lcd_com и lcd_data Вы не заметили, что эти функции практически одинаковы и отличаются только RS сигналом, так может их стоит объединить и добавить еще один параметр (команда, данные)...И партянка станет короче 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Дмитрий Мамедиев Опубликовано 14 июня, 2019 Поделиться Опубликовано 14 июня, 2019 думал об этом но решил пока оставить так 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Дмитрий Мамедиев Опубликовано 14 июня, 2019 Поделиться Опубликовано 14 июня, 2019 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 - дисплей включен, курсор выключен, мерцание выключено } вот с этим заработало. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
IMXO Опубликовано 14 июня, 2019 Поделиться Опубликовано 14 июня, 2019 11 минуту назад, Дмитрий Мамедиев сказал: вот с этим заработало. лапшу на ущи не вешай. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Дмитрий Мамедиев Опубликовано 14 июня, 2019 Поделиться Опубликовано 14 июня, 2019 Не вешаю я ничего. Обидели вы меня. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
IMXO Опубликовано 14 июня, 2019 Поделиться Опубликовано 14 июня, 2019 ну если не вешаешь расскажи, что ты там передал в ЖКИ этой командой lcd_com(0x3); или этой lcd_com(0x2); и что надо было передать, обиженный ты наш 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Дмитрий Мамедиев Опубликовано 14 июня, 2019 Поделиться Опубликовано 14 июня, 2019 Аааа, коментарии надо исправить они вас смутили? Я просто команды подогнал под даташит. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Дмитрий Мамедиев Опубликовано 25 июня, 2019 Поделиться Опубликовано 25 июня, 2019 Есть зверек at90pwm3b avrdude через usbasp не шьется. Точней дудка говорит прошился но контроллер отказался моргать сд. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Demonrostov Опубликовано 26 июня, 2019 Поделиться Опубликовано 26 июня, 2019 Вы там ни че не напутали? После прошивки идет верификация и если нет ошибок значит все хорошо. Ошибка в программе или нерабочий пин. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Alexeyslav Опубликовано 27 июня, 2019 Поделиться Опубликовано 27 июня, 2019 То что программа скомпилировалась не означает что она рабочая. 0 Учение - изучение правил. Опыт - изучение исключений. Ссылка на комментарий Поделиться на другие сайты Поделиться
Lerik-Co Опубликовано 19 июля, 2019 Поделиться Опубликовано 19 июля, 2019 Добрый день! Раньше имел дело только с дисплеями 1602 и nokia 5110. Сейчас попал в руки дисплей PG24122 (интернет определяет его как GM24122S1RH). Описание: http://megtestesules.info/hobbielektronika/cuccok.html LCD Module Specification: http://megtestesules.info/hobbielektronika/cuccok/HE001/GM24122S1RH-J6.pdf Продается на алиэкспресс: https://ru.aliexpress.com/item/32814247150.html Это всё, что я смог найти в сети про этот дисплей. Может кто-то научить, как подключить его к Ардуино или Атмега? Спасибо! 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Alexeyslav Опубликовано 19 июля, 2019 Поделиться Опубликовано 19 июля, 2019 У меня примерно с таким же интерфейсом от древнего ноута есть дисплей. Дело в том что тут не всё так просто. У дисплея есть память только на одну строку, а всю картинку должен держать в себе контроллер. По всей видимости, логически дисплей состоит из двух частей - верхней и нижней половины с независимыми регистрами строк. Каждая часть из себя представляет регистр строки в который ты побитно через SD1 и SD2 с общим клоком CP заносишь данные на одну строку(длину строки в битах х.з. какая у этого дисплея можно определить практически либо с маркировки но думаю что кратная 8) потом выдаёшь сигнал LOAD(типа строчный синхросигнал), и содержимое записывается в транзисторы TFT-матрицы и переключается на следующую строку. Заряд на них держится... какое-то время, от секунд до минуты. Когда загрузил все строки, выдаётся сигнал FRAME(это типа кадровой развертки в телевизоре), счетчик строк обнуляется и всё идет сначала. По-хорошему, сигнал надо выдать в начале отрисовки дисплея. Общий провод и +5в - понятно куда подключать, VLCD и VADJ всё-таки надо смотреть в даташит, в моём дисплее от ноута там было порядка -19В и на контрасте -21В или наоборот. У этого дисплея поидее должно быть меньше, но надо уточнять. ME(M) это вход частоты перекллючения ЖК ячеек дисплея... поидее туда надо меандр в диапазоне 10-20Гц. Чем быстрее переключаешь тем отзывчивей дисплей но выше энергопотребление. Можно попробовать в эконом режиме 1-2Гц но может наяать неприятно мерцать. К мелкому контроллеру не подключишь... тут надо много RAM. 1 Учение - изучение правил. Опыт - изучение исключений. Ссылка на комментарий Поделиться на другие сайты Поделиться
Lerik-Co Опубликовано 23 июля, 2019 Поделиться Опубликовано 23 июля, 2019 @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) должен быть как-то синхронизирован с вводом строк или синхронизирован с чем-то еще? Остальное, вроде бы, Вы очень подробно объяснили, всё понятно, спасибо. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Demonrostov Опубликовано 23 июля, 2019 Поделиться Опубликовано 23 июля, 2019 (изменено) 39 minutes ago, Lerik-Co said: Тогда на Ардуино с Атмега328 можно попробовать. Вот только кроме дисплея туда уже почти ничего "полезного" не влезет Есть же прекрасная флеш память тык. Стоит копейки. Скорости SPI для этого объема будет за глаза. Все картинки загоняете во флеш , напрмер с помощью CH341A. и вся память мк только для "полезного". С графическими дисплеями без флэш ни куда Изменено 23 июля, 2019 пользователем Demonrostov 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Alexeyslav Опубликовано 28 июля, 2019 Поделиться Опубликовано 28 июля, 2019 23.07.2019 в 10:30, Lerik-Co сказал: После каждого нолика или единички на SD1 надо подавать импульс на CP? Работает как любой регистр сдвига - устанавливаешь 1/0 на входе и подаёшь импульс на CP чтобы его протолкнуть в регистр. 23.07.2019 в 10:30, Lerik-Co сказал: меандр на входе ME(M) должен быть как-то синхронизирован с вводом строк или синхронизирован с чем-то еще? Вообще это не обязательно, но могут быть спецэффекты когда часто обноволяешь дисплей. Необходимость этого сигнала обусловлена самим принципом работы жидких кристаллов - если на них просто подать постоянное напряжение то их прозрачнсоть вскоре вернётся к первоначальной, поэтому тчобы держать картинку на дисплее нужно постоянно менять полярность на ячейках. В наручных часах это делается с частотой примерно 10Гц, в компьютерных дисплеях может доходить и до 400Гц. Чем выше частота тем больше энергии тратися на удержание картинки, и тем она контрастнее. 1 Учение - изучение правил. Опыт - изучение исключений. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.