Почитал я даташит внимательно и вроде нашёл причину. Не все команды ещё просмотрел, но изменения внёс, по идее должно как-то заработать. И я был не прав по поводу зависимости от испольуемой половины шины, там одинаково всё. Можно пробовать.
К какой половине 16-разрядной шины данных подключать при 8-битном обмене определяется аппаратно сигналами IM. Посмотрите в даташите на экран. Как выберете, так и будет, на программу это не влияет. Так как картинка в принципе выводится, то нужно поиграться с ориентацией вывода - старший полубайт, записываемый в регистр 0х16 в самом конце инита. Варианты вывода описаны начиная со страницы 58. Визуально похоже на то, что нужно поменять местами Х и У. То есть записывать 0xE8 вместо 0хС8 и 0x28 вместо 0х08. А там дальше видно будет.
спаять, прошить я умею. но в программировании ноль. изменил как вы писали но стало хуже на экране мусор, и в углу такая же картинка, точнее часть ее, повернутая.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Я же указал номер страницы, с которой начинать смотреть описание ориентации вывода. Подымите свой уровень с 0 до 0.1 и меняйте эти 3 бита, смотрите на результат. У меня такого экрана нет. Получите текст, пусть зеркальный или перевёрнутый. Для удобства можете записывать число не в шестнадцатиричной, а в двоичной форме, типа 0b00101000 вместо 0х28 и изменять приямо нужные биты. Ещё на зеркальность вывода целой строки или на порядок вывода строк будут влиять два бита SS_PANEL и GS_PANEL из регистра 0х36.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Понять, как точно происходит вывод, можно в режиме пошаговой отладки, наблюдая поточечный вывод символа. В каком состоянии находятся сигналы IM1 и IM0 на шлейфе? Особенно IM0. Случайно шина экрана не в 16-битном режиме находится? Ибо глядя на первую фотку похоже на работу самого экрана по 16-битной шине. Как это видно: первая строчка должна быть " 3-D Printer ", где первый символ "3" находится на 5 позиции, то есть на первой четверти строки, а на фотке первый символ начинается на середине строки - в 2 раза дальше. При выводе по 8-битной шине каждая точка передаётся по 2 байта, что при физической 16-битной шине экрана выведет в 2 раза больше точек и сместит информацию дополнительно её искажая. В данном случае при выводе синего фона по 16-битной шине экрана при 8-битном обмене вместо одной точки по очереди будут выводится 2 точки - чёрного и синего цвета - 0х00 и 0х1F, что тоже видно на фотке. Но там ещё и с ориентацией вывода проблема.
Дело в том что если подключать к линии d17-d10 я знаю где переключать на 8bil, а d7-d0 я не нашел. В коде что то менять нужно при подключении к d17-d10,,?
Что означает ЗАПУСТИЛ? Переделал инит, взял за основу из выше приложенных исходников MCUFREND. Сделал тестовый вывод информационной строки с состоянием регистра 16, который изменяет в цикле значения битов, отвечающих за ориентацию и выводит его значение с интервалом в 1с. Нужно будет запомнить правильное значение регистра при нормальном выводе строки. И главное - всё-таки разобраться с реальным состоянием сигналов IM1 и IM0 и установить их для используемой половины 8-битной шины согласно даташиту или перейти на 16-битную шину и вторую версию железа. Если и в этот раз не заработает - смотреть на свои руки, я больше ничего заочно сделать не могу.
PS. Исправил тестовый цикл - там ошибка в выводе была.
Serj_K, добрый день, я возвращаюсь к вам после моих экспериментов... после попытки припаяться к микроконтроллеру, у меня результат был 0 . и того я решил снять эти провода ни кому не нужные . и после этого у мена принтер продолжал виснуть при загрузке даже изменив марлин. после этого заметил что две ножки спаяны вместе. почистил и всё вернулось в норму. после того решил попробовать ещё раз с проводками , но в этот раз температуру поднял до 300 градусов , чтоб паяльник долго там не задерживаться , ну и ..... пипетц подкрался незаметно ..... ножки и дорожки, повставали мне честь отдали и ... я думаю что больше описаний нет смысла писать потом пару дней спустя решился, собрать " железо" МКС так как все резисторы, шмисторы и нужные компоненты есть , микроскопические но есть. и так как у меня есть ардуино мега , полностью все схемы. в жизни этого не делал , но решился . У меня родилась маленькая атомная станция и самое интересное , она работает . ну я вернулся к моей проблеме , экран ... теперь все пины доступны, но всё равно ни I2C ни SPI не работают вообще , уже даже просто оставил пустую мега , ничего не подключая . просто Marlin + Mega и экран с STM ... ну ни как не работает .. даже менял MKS Base на Ramps 1.4, результат тот же... я уже думал как можно проверить STM с экраном , есть ли там вообще какая либо коммуникация или информация на подключениях I2C и SPI . может это моя STM не работает ??? уже не знаю что думать, так как я уже должен был, заменить один резистор чтоб он заработал. может ещё какой-то не тот стоит и из-за него нет коммуникации между принтером и экраном. но не знаю как его проверить чтоб лишний раз на него не грешить . он включается и всё, на STM обе LED включены постоянно , без всякого подмигивания , это нормально, так должно быть? Может библиотеки при компиляции Марина не те или что-то не хватает ? я изменил в Arduino IDE и теперь при компиляции идет полное перечисление всех библиотек и всего что там происходит . и там проскакивает такие 3 ошибки ;
Код:
... Error while detecting libraries included by /var/folders/k9/qwx5bz2n5l7147frhvbk69cr0000gn/T/arduino_build_575507/sketch/src/MarlinCore.cpp ... Error while detecting libraries included by /var/folders/k9/qwx5bz2n5l7147frhvbk69cr0000gn/T/arduino_build_575507/sketch/src/gcode/host/M115.cpp ... Error while detecting libraries included by /var/folders/k9/qwx5bz2n5l7147frhvbk69cr0000gn/T/arduino_build_575507/sketch/src/lcd/menu/menu_motion.cpp ...
но при загрузке на Мега , всё ок, без ошибок и есть вот такая заметка ;
это нормально ? а вот при загрузке что высвечивает , может какой-то косяк где то увидите ;
Код:
avrdude: Version 6.3-20190619 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf" User configuration file is "/Users/olganovitskaya/.avrduderc" User configuration file does not exist or is not a regular file, skipping
Using Port : /dev/cu.usbmodem14101 Using Programmer : wiring Overriding Baud Rate : 115200 AVR Part : ATmega2560 Chip Erase delay : 9000 us PAGEL : PD7 BS2 : PA0 RESET disposition : dedicated RETRY pulse : SCK serial program mode : yes parallel program mode : yes Timeout : 200 StabDelay : 100 CmdexeDelay : 25 SyncLoops : 32 ByteDelay : 0 PollIndex : 3 PollValue : 0x53 Memory Detail :
avrdude: verifying ... avrdude: 85568 bytes of flash verified
avrdude done. Thank you.
может BAUDRATE или SERIAL_PORT не тот? не знаю что проверять , и что может повлиять на то что экран не работает... надеюсь у вас найдётся выход с этого положения ....
Прошивка Марлина собралась, записалась и работает сама по себе. BAUDRATE и SERIAL_PORT тут ни причём. Экран отдельно выдаёт стартовую заставку, значит его прошивка тоже работает. Теоретически может есть проблема с библиотеками Марлин-2 для Мега. Как вариант рискните с Марлин-1. У меня других вариантов нет. Сделайте фотку или нарисуйте схему, как Вы соединяете основную плату с платой экрана.
Добрый день. Вот фото и схему нарисовал подключения по I2C и SPI.
Добавлено after 30 minutes 55 seconds: ради интереса у мена есть lcd 16x2 . я его подключил напрямую и активировал #define ULTRA_LCD , всё ок работает . потом использовал адаптер I2C с этим же экраном , и активировал #define RA_CONTROL_PANEL. всё тоже работает . но должен был добавить LiquidCrystal_I2C плюс к библиотеке что у меня уже была но по имени просто LiquidCrystal. после этого пробовал подключить заново экран ТФТ , всё также , без результата. странно почему один да а другой нет??? может у вас найдется список ваших библиотек при компиляции ? я сверю со своими может что-то не хватает или версия не та ? буду пробовать марлин 1 , в этом случае я должен заменять файлы как вы описали в readme? потом второй вопрос в марлине есть такое
Код:
/** * TFT Type - Select your Display type * * Available options are: * MKS_TS35_V2_0, * MKS_ROBIN_TFT24, MKS_ROBIN_TFT28, MKS_ROBIN_TFT32, MKS_ROBIN_TFT35, * MKS_ROBIN_TFT43, MKS_ROBIN_TFT_V1_1R * TFT_TRONXY_X5SA, ANYCUBIC_TFT35, LONGER_LK_TFT28 * TFT_GENERIC * * For TFT_GENERIC, you need to configure these 3 options: * Driver: TFT_DRIVER * Current Drivers are: AUTO, ST7735, ST7789, ST7796, R61505, ILI9328, ILI9341, ILI9488 * Resolution: TFT_WIDTH and TFT_HEIGHT * Interface: TFT_INTERFACE_FSMC or TFT_INTERFACE_SPI */ //#define TFT_GENERIC
/** * TFT UI - User Interface Selection. Enable one of the following options: * * TFT_CLASSIC_UI - Emulated DOGM - 128x64 Upscaled * TFT_COLOR_UI - Marlin Default Menus, Touch Friendly, using full TFT capabilities * TFT_LVGL_UI - A Modern UI using LVGL * * For LVGL_UI also copy the 'assets' folder from the build directory to the * root of your SD card, together with the compiled firmware. */ //#define TFT_CLASSIC_UI //#define TFT_COLOR_UI //#define TFT_LVGL_UI
/** * TFT Rotation. Set to one of the following values: * * TFT_ROTATE_90, TFT_ROTATE_90_MIRROR_X, TFT_ROTATE_90_MIRROR_Y, * TFT_ROTATE_180, TFT_ROTATE_180_MIRROR_X, TFT_ROTATE_180_MIRROR_Y, * TFT_ROTATE_270, TFT_ROTATE_270_MIRROR_X, TFT_ROTATE_270_MIRROR_Y, * TFT_MIRROR_X, TFT_MIRROR_Y, TFT_NO_ROTATION */ //#define TFT_ROTATION TFT_NO_ROTATION
если правильно понимаю , тут поддерживается мой тип экрана ILI9341... нельзя ли использовать вашу прошивку с этой функцией марлина? так как она работает по SPI и в этой функции поддерживается TFT_INTERFACE_SPI ? ну как-то их скомплектовать чтоб вместе работали ?
Добавлено after 2 minutes 46 seconds: вот фото 16х2
Теоретически вторая половина выведется с другой стороны экрана, типа в зеркалке. Если нет, то в любом случае 5 секунд на фотку будет
Добавлено after 21 minute 37 seconds:
vitaliberty писал(а):
Добрый день. Вот фото и схему нарисовал подключения по I2C и SPI
Ничего не разобрать ни на схеме ни на мелких фотках. Лучше сделайте таблицу соответствия текущих соединений между основной платой и платой панели, включая цепи питания, в виде:
Код:
основная - панель D5 - А5 D6 - A6 и тд
vitaliberty писал(а):
может у вас найдется список ваших библиотек при компиляции ?
У меня те библиотеки, которые скачивает сам Марлин.
vitaliberty писал(а):
нельзя ли использовать вашу прошивку с этой функцией марлина?
Нельзя, в этом случае сам Марлин занимается выводом. Но даже если и сможете подключить свой экран по SPI? то на Меге это будет слайдшоу, она не потянет.
vitaliberty писал(а):
буду пробовать марлин 1 , в этом случае я должен заменять файлы как вы описали в readme?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 61
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения