Была у меня связка PCF8574AT+HD44780 ЖКИ с I2C интерфейсом Купил МЭЛТ MT-20S4A-2YLG-3V0-I который работает с 3.3В и имеет Ш2С Соответсвенно там связка INF8574A+КБ1013ВГ6 Насчет КБ1013ВГ6 Ангстрем заявляет это аналог HD44780 И по идее INF8574A тоже не должен отлитчаться. I2C шина устройство видит, но после инициализации ничего не выводится на экран, просто слабенько подсветка светится. Судя по статьям либа ардуины одна и таже в примерах для работы с HD44780 и этим МЭЛТовским контроллером. Единственно у меня в коде через I2C работа с 8битным интерфейсом, а в ардуине с 4битным Кто нить с таким дисплеем работал из STM32F1? С МЭЛТ MT-20S4A-2YLG-3V0-I?

Комментарии: 23

  1. Dmitriy

    Дак пцф 8 бит и 8 битная шина дисплея. Откуда идут сигналы команд, записи?

    • Aleksey

      а INF8574 разве нет? The device consists of an 8-bit quasi-bidirectional Port and an I 2 C interface Через I2C отсылаются 8битовые значения

      • Tiny

        спасибо за ответы)) пойду значит собеседоваться) посмотрю чем народ живет

        • Artyom

          удачи. к тому же это тоже навык, хорошо себя продать на галеру тоже надо уметь

          • Dmitriy

            +++

          • Tiny

            ну да, soft skills все такое)

            • Dmitriy

              Расширение кругозора тоже skills up

      • Dmitriy

        Восемь бит данных на выход пцф на 8 бит дата дисплея. Ещё нужно 3 служебных RW, Cd и EN, если по памяти правильно помню... Они тогда от пинов дёргаться должны. Именно поэтому модули на пцф работают обычно по 4 битной шине

        • Aleksey

          У меня они в 8битном работали

          • Dmitriy

            Как? 3 Служебных пина отдельно от пцф?

            • Aleksey

              Китайцы чудо совершили видимо, модуль на PCF8574 16 пин на интерфейс ЖКИ И первая строка в инициализации работающей I2C_send(0b00110000,0,phi2c,0x3F,5); // 8ми битный интерфейс

              • Dmitriy

                Там 2 пцф? Или может схема есть?

                • Aleksey

                  I2C_send void I2C_send(uint8_t data, uint8_t flags, I2C_HandleTypeDef *phi2c, uint16_t DevAddress, uint32_t Delay) { HAL_StatusTypeDef res; // бесконечный цикл for (;;) { // проверяем, готово ли устройство по адресу lcd_addr для связи res = HAL_I2C_IsDeviceReady(phi2c, DevAddress, 1, HAL_MAX_DELAY); // если да, то выходим из бесконечного цикла if (res == HAL_OK) break; } // операция И с 1111 0000 приводит к обнулению бит с 0 по 3, остаются биты с 4 по 7 uint8_t up = data & 0xF0; // то же самое, но data сдвигается на 4 бита влево uint8_t lo = (data << 4) & 0xF0; uint8_t data_arr[4]; // 4-7 биты содержат информацию, биты 0-3 настраивают работу дисплея data_arr[0] = up | flags | BACKLIGHT | PIN_EN; // дублирование сигнала, на выводе Е в этот раз 0 data_arr[1] = up | flags | BACKLIGHT; data_arr[2] = lo | flags | BACKLIGHT | PIN_EN; data_arr[3] = lo | flags | BACKLIGHT; HAL_I2C_Master_Transmit(phi2c, DevAddress, data_arr, sizeof(data_arr), HAL_MAX_DELAY); HAL_Delay(Delay); } Схемы нет и PCF там точно один

                  • Dmitriy

                    Забавно ))).. но в таком случае должен работать только в 4 битной

                    • Aleksey

                      Забавно но судя по даташиту это действительно включение 8 битного режима

                      • Ogurezzz

                        Если я правильно помню, то как раз эта команда включит 8битный режим, если все 8 бит подключены. Если же отрезать 4 младших-получится включение 4хбитного Я ж тут недавно свою реализацию делал для этого переходника шоб аппаратно I2C работало. В ардуине оно софтовое по-моему.

                  • Dmitriy

                    Может там часть бит идёт на контрольные линии из слова? Вон в комменте биты 0-3 и 4-7 имеют разную функцию...

              • Ogurezzz

                Не обольщайся. Это стандартный переходник. Там E,R/W,RS,LED,D4,D5,D6,D7 выведены

                • Aleksey

                  Я так и понял. Но тогда почему фокус с МЭЛТом не проходит непонятно, видимо даташит неверно толкую

                  • Ogurezzz

                    Или распиновка другая или тайминги

                    • Dmitriy

                      Да не может он в 8 битной через пцф работать

                • Dmitriy

                  Вот я об этом

Не нашли ответ?

Вам также может быть интересно