как из 3.3 или 5 вольт сделать питание для LCD nokia 1100 ? (прочитал что ему нужно 2.8-2.9 вольта) поставить стабилитрон BZX55C3v3 и последовательно диод ?
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Как то от 3.3 после предупреждения боязно питать...
Не надо боятся, работает без проблем при напряжение 3.3в. А ежели почитать внимательно даташит, то и спакойно от 5ти вольт можно запитать. Сейчас точно регистры не скажу, но дело в преобразователе напряжения (в дисплее) В зависимости от напряжения питания надо выставлять толи 8 толи 13 вольт при помощи внутреннего умножения напряжения. Но лучше конечно делать как положенно.
А стабилизаторы можно не искать, просто через два диода к +5в. На каждом падение 0.6 вольт.
_________________ Ни один домашний кот незнает что он домашний.
но есть проблемы: 1. Дисплей периодически (1-2 раза в секунду) помаргивает.. 2. через какое то время (разное! от 1 до 5 секунд) изображение пропадает... появляется после сброса прошивки (переинициализации дисплея), иногда на 2,3,4,5 сброс..
никто не сталкивался с таким поведением ?
питаю дисплей от 2.9 вольт через PS7A4501 с резюками делителя 3300 ом и 4700 ом
и вот снял видео: http://vimeo.com/37297812 видно что сначала есть полоски на экране, горят долго... потом исчезают, нажимаю на сброс: загораются и исчезают уже быстрее...
На моей схеме приведённой выше VDDI 1,8v Для STM не пишу. Если правильно понял первой командой идёт очистка. Я делаю по другому. 1. сброс 2. инит. 3 очистка 4 печать
На моей схеме приведённой выше VDDI 1,8v Для STM не пишу. Если правильно понял первой командой идёт очистка. Я делаю по другому. 1. сброс 2. инит. 3 очистка 4 печать
vddi на работу не влияет, видел кучу схем где питание vddi и vcc объединены.
плюс ко всему при таком подключении все работало целый день, а к вечеру опять перестало! все больше склоняюсь к мысли к глюкам самого дисплея...
а по кодам можете дать инит дисплея как это реализовано у вас?
p.s. в 00:15 МСК проблему решил заменой дисплея.. пропало и мерцание, и пропадание изображения.. инититься стал с первого раза.... видно все таки глюк конкретного экземпляра, хотя тоже был новый (из коробки).. спасибо всем за помощь !
Не факт что предыдущий дисплей битый. Возможно у Вас скорость интерфейса была выше, чем поддерживает дисплей, либо задержки между операциями слишком малы.
Не факт что предыдущий дисплей битый. Возможно у Вас скорость интерфейса была выше, чем поддерживает дисплей, либо задержки между операциями слишком малы.
Скорость менял, задержки менял... когда сменил дисплей на новый то он запустился сразу.. в итоге повыкидывал почти все задержки и он все равно работает... перешел на 3х проводной SPI (резет на VCC, и сброс программный) - и он все равно работает...
Это подключения, здесь RST описан, но мы его использовать не будем
Код:
; Информация о подключении дисплея: ; Бит RST (RESET). Сброс дисплея ; Если не используется аппаратный сброс то можно завести на VCC (+3 v.) ; для включения аппаратного сброса смотрите ниже процедуру LCD_INIT LCD_RST_ODR EQU GPIOC_ODR ; порт для установки/сброса бита LCD_RST_BIT EQU 0 ; номер бита RST ; бит CS (CAS). Выбор дисплея для операции LCD_CS_ODR EQU GPIOC_ODR ; порт для установки/сброса бита LCD_CS_BIT EQU 1 ; номер бита CS ; бит SDA (DATA). Данные для дисплея LCD_SDA_ODR EQU GPIOC_ODR ; порт для установки/сброса бита LCD_SDA_BIT EQU 2 ; номер бита SDA ; бит SCLK (CLK). Тактирование данных LCD_SCLK_ODR EQU GPIOC_ODR ; порт для установки/сброса бита LCD_SCLK_BIT EQU 3 ; номер бита SCLK
Далее макросы, в принципе можно было писать код прямо в нужных местах, но мне понятнее в коде написать например SET_SDA для установки бита или RES_SDA для сброса чем описывать каждый раз манипуляции с битами
Код:
; Макросы для управления выводами подключения дисплея ; не менять! используется в программе управления дисплея ! ; -CS (выбор устройства) MACRO SET_CS SET_BIT PERIPH_BB_BASE, LCD_CS_ODR, LCD_CS_BIT MEND
Таким образом у нас макросы для каждого вывода SET_xxx - установить в "1" RES_xxx - сбросить в "0" выводов 4: RST - аппаратный сброс CS - выбор дисплея SDA - данные SCLK - строб данных
Дальше идут последовательности:
Код:
; Управляющая последовательность инициализации дисплея LCD_INIT_SEQ DCB 0xE2 ; софтварный сброс DCB 0xEB ; температурная компенсация включена DCB 0x2F ; режим питания ; DCB 0xA1 ; направление справа на лево (зеркало по горизонту) DCB 0xA4 ; очистить все пиксели жки DCB 0xA6 ; позитивное изображение ; DCB 0xA7 ; негативное изображение DCB 0xAF ; включить дисплей
Это как раз то что нужно отправить на дисплей по SPI команда 0xE2 как раз и делает сброс дисплея !
RES_SCLK ; уберем строб данных RES_SDA ; уберем данные RES_CS ; -CS (выберем устройство)
; фрагмент КОДа ДЛЯ АППАРАТНОГО СБРОСА дисплея ---------- ; без него сброс осуществляется только программно ; если дисплей плохо "заводиться" то можно попробовать сделать еще и аппаратный ; сброс - раскомментируйте весь блок ! ; иногда дополнительно нужно подобрать задержку для сброса (по умолчанию 100000) ; RES_RST ; -RST (сбросим дисплей) ; MOV32 R0 , #100000 ; задержка для сброса дисплея ;LCD_RESDELAY SUBS R0 , R0 , #1 ; BNE LCD_RESDELAY ; SET_RST ; дисплей "на старт" ; ; ----------
; выдача на дисплей последовательности инициализации MOV32 R5 , LCD_INIT_SEQ MOV R6 , #6 ; количество команд инициализации LCD_INIT_LOOP LDRB R2 , [R5], #1 ; загрузим команду BL LCD_SEND_COMAND ; отправим ее на дисплей SUBS R6 , R6 , #1 ; уменьшим счетчик BNE LCD_INIT_LOOP ; циклимся пока не передадим все команды
LCD_CLEAR_ACTION ; точка входа для очистки дисплея ; установка координат начала вывода данных MOV R2 , #0 ; Y MOV R3 , #0 ; X BL LCD_ATYX ; цикл очистки MOV R3 , #(96*9) MOV R2 , #0x00 ; значение очистки LCD_INIT_L1 BL LCD_SEND_DATA SUBS R3 , R3 , #1 BNE LCD_INIT_L1 ; циклимся пока не очистим
POP {LR} BX LR ; возврат из подпрограммы
Ну и остается только код LCD_SEND_COMAND - это как раз отправка команды на дисплей. сбрасываем SCLK в "0" сбрасываем CS в "0" (дисплей активен при лог "0") первый бит 0 (для команды) выставляем на SDA потом дергаем SCLK в "1", потом убираем SCLK в "0" и дальше передаем 8 бит данных, начиная со старшего к младшему, каждый раз дергая SCLK в конце выставляем CS в "1" - это как раз отключение от работы с дисплеем
Далее код инициализации на реализацию не глядите, важнее алгоритм
Ну и остается только код LCD_SEND_COMAND - это как раз отправка команды на дисплей. сбрасываем SCLK в "0" сбрасываем CS в "0" (дисплей активен при лог "0") первый бит 0 (для команды) выставляем на SDA потом дергаем SCLK в "1", потом убираем SCLK в "0" и дальше передаем 8 бит данных, начиная со старшего к младшему, каждый раз дергая SCLK в конце выставляем CS в "1" - это как раз отключение от работы с дисплеем
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения