Проверил работу панели с SPI. Это у меня какой-то аппаратный глюк - при питании панели от 5В панель работает корявенько, как я описывал ранее, а при питании от 3,3В от стабилизатора основной платы работает нормально. Так что пробуйте по SPI, в самом Марлине вроде нет проблем - прошёлся по инициализации в отладке. Теперь займусь проблемой I2C.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Прошивку проверил - работает. Только нужно DISPLAY_CHARSET_HD44780 поставить CYRILLIC, а то вместо кирилицы вопросы выводятся. На всякий случай - на BlackPill сигналы SPI это PA5 - SCK, PA6 - MOSI, PA7 - MISO. И в Вашем варианте TFTGLCD_CS - РС15. По умолчанию для I2C будут РВ6 и РВ7.
Драйвер нужен только для согласования уровней при подключении к 5В матплатам на Мегах, а мультиплексор - при использовании карточки. При инициализации панели по SPI как минимум SCK на выходе матплаты увидеть можно - минимум 3 байта должны выйти - команда инициализации, тип прошивки и байт на приём. Выложите свои схемы панели и матплаты в виде jpg или pdf. Может ошибка где-то есть.
Проверил в отладке работу по I2C. Оказалось, что в прошивке всё правильно, а у меня на панели были попутаны местами надписи SDA и SCL и я подключал провода не правильно. Переставил провода и в принципе панель заработала, но как-то не стабильно. Потом взял другую панель с тачем и она работала стабильно. То есть с работой I2C в Марлине всё нормально.
вот ребус. Проверил всё в статике-сигналы проходят. Моя матплата по i2c работает с маленким олед дисплеем, а с вашей панелью никак. Может я в кокосе чего накосячил. Но я там только лазер закоментировал, чтоб прошивку уменьшить. Не проверите?
Добавлено after 11 minutes 53 seconds: схема панели и разводка ваша. Я только перенёс разводку из Альтиума в диптрейс, а он проверяет ошибки разводки. Если у вас их нет, то и у меня не должно быть.
Моя панель по SPI с этой прошивкой работает. Насчёт I2C - изначально у меня были преобразователи уровней на транзисторах, которые я потом убрал и оставил только подтягивающие резисторы на +3,3В. Должно быть так и на фотке платы вижу, что так. Почему не работает - ХЗ.
Не должно, но я вон в 2 проводах ошибся. Сейчас посмотрел на отличие между моими двумя панелями в резисторах подтяжки по I2C - на плате с энкодером стоят по 20к и она работает плохо, а на плате с тачем по 5к и она работает нормально. Заодно проверил панели на синей таблетке - ведут себя аналогично. Завтра перепаяю резисторы с 20к вообще на 1к и посмотрю разницу. Я диптрейсом не пользуюсь и если он делает контроль платы по схеме, как альтиум, то мне лучше схему смотреть, но в pdf/gif/jpg.
Повозился немного с I2C, слегка поправил код панели. На панели с энкодером поставил подтягивающие резисторы по 2к. При подаче питания на основную плату панель не запускается - идёт сбой по шине, смотрел осциллографом. После нажатия сброса на плате с Марлином панель запускается, но после логотипа сразу попадает в меню, как будто уже была нажата кнопка энкодера. При этом кнопка энкодера работает нормально, а ручка практически нет. Подключил панель с тачем - после старта тоже стала попадать сразу в меню, раньше такого не было, видно что-то в Марлине зацепил, в остальном работает нормально. На SPI всё работает отлично. Пробовал в Марлине задержки ставить - не помогло. Пока не понимаю, куда копать.
скомпилировал и залил всё назад. Олед по i2c работает, энкодер работает, карту по SPI читает. Где-то косяк в панели, вычислить не могу, вроде всё проверил. Может какой тест есть, почему CTM32 не видит внешние сигналы?
Можно. Марлин на Ардуине ведь тоже работает и с Ардуины начинался. Только для этого нужно соответствующую Ардуину. Или самому тест написать, используя как основу код из Марлина из marlinui_TFTGLCD.cpp. Но можно попробовать через отладку Марлина в пошаговом режиме посмотреть. Для этого нужно в Марлине отключить watchdog - в Configuration_adv.h закомментировать #define USE_WATCHDOG. Поставить стопы в MarlinUI::init_lcd() в marlinui_TFTGLCD.cpp и смотреть, что происходит при обмене. С SPI у меня проблем вообще нет. Причём если планируется использовать СД карту, то SPI будет предпочтительнее, так как для работы панели будет использоваться всего 1 дополнительный провод, а не 2 как для I2C. Для отладки SPI тоже проще.
Опять всё править! У вас есть бинарник под синюю таблетку на ili9325 8бит, чтоб я своими кривыми в кокос не лез, соберу для пробы на ней.
Добавлено after 9 hours 59 minutes 3 seconds: таблетку запустил в 8-битном режиме. Осталось к материнке прицепить
Добавлено after 41 minute 46 seconds: прицепил, результат тот же, не видит принтер. Значит что-то в марлине не то делаю
Добавлено after 57 minutes 31 second: я вот это не делал, может в этом дело Общие для Марлина-1 и Марлина-2:
Если вы планируете подключить панель TFTGLCD по шине SPI, вам нужно добавить несколько новых строк в файл pins_YOURS_BOARD_NAME.h. Самый простой способ сделать это - поменять раздел на «#if HAS_SPI_LCD».
Для Marlin-2 текст «TFTGLCD_ADAPTER» выше должен быть заменен на «IS_TFTGLCD_PANEL», а текст «DOGLCD_CS» на «TFTGLCD_CS». Кроме того, исходный код Marlin уже имеет поддержку TFTGLCD PANEL для некоторых плат. В новом разделе основное описание - "DOGLCD_CS" ("TFTGLCD_CS") для подключения по SPI. просто не пойму, где это надо делать
Ваш файл pins_RUMBA32_common.h уже содержит TFTGLCD_CS и Марлин с ним у меня работал.
кт315b писал(а):
прицепил, результат тот же, не видит принтер. Значит что-то в марлине не то делаю
Я решал проблемы при помощи пошаговой отладки. Прикладываю свою прошивку под SPI и файл моего варианта распиновки для проверки только панели так как отличаются почти все сигналы. В моём варианте TFTGLCD_CS = PA4.
Добавлено after 3 hours 58 minutes 8 seconds: Завёл! Miso на земле сидело, под маской даже в микроскоп не увидел. осталось на своей прошивке запустить. Спасибо!!!
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 31
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения