81

Тест LCD 16bit , ОЗУ, SDCARD на PIC24

Серия PIC

Требовалось решить одну задачу по выводу на LCD NT35510 картинок BMP (24bit) с использованием SD-карты, которые предварительно обрабатывались бы в ОЗУ, в связи с чем, разработал схему c использованием  контроллера PIC24HJ256GP610 и ОЗУ IS61C1024AL (128Kх8).  По задумке было необходимо прочитать загруженные BMP загруженные через PC, а карта должна быть форматирована в FAT32, при этом разработанная схема выступала бы как картридер для ПК.

Кроме того, в нагрузку еще идет интерфейс связи с ПК  USB-UART и модуль WI-FI ESP-12.

Задачей предусматривалось, заполнять оперативную память и множественно выводить картинки на экран.

Стоит отметить тут важный момент, что 24-bit BMP имеет структуру чтения 3 байта на точку, это означает, что для того, чтобы загрузить всю картинку размером с размер LCD 800x400 потребуется 960 000 байт, а размер ОЗУ IS61C1024AL  всего 128 000. Это означает, что чтение SDCARD -> ОЗУ -> LCD для картинки 800х400 целиком невозможно, поэтому максимальный размер загружаемой картинки в ОЗУ равен не более 220х200 пикселей.

Большую ОЗУ в 16 bit испытаю в будущем проекте.


Однако, чтобы грузить на LCD картинки можно и без ОЗУ, напрямую читая с SDCARD, естественно  теряя время на оперативности вывода информации на экран, но этот метод также рабочий.

Процедуру инициализации экрана, я естественно сам не писал, такая процедура  есть в открытом доступе для ардуино, я ее адаптировал под язык C++ и MPLAB X для PIC24., остальной код для управления данными на экране и пр. - самописный.


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


Печатная плата, дорожки 0.3мм. Выполнено методом фоторезиста.

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


Насранные Припаянные резисторы навесу - следствие просчета при проектировании, так как LCD напрочь отказался работать от управляющих сигналов от ног контроллера (если конфигурировать порт как вывода, т.е. TRISB=0) и заработал только c подтяжкой к питанию (когда порт сконфигурирован как вход, т.е. TRISB=1). НО, на порту B, данного контроллера, отсутствовала возможность программно использовать подтяжку. (на других портах есть, но только не на нужном). Поэтому пришлось делать подтяжку так как есть.

Еще там насраны отпаяны некоторые элементы не обозначенные на принципиальной схеме.


<joke>

Зато никакого ардуино, никаких мам,пап или помощи старшего брата/свата. Только Stack Overflow и ролик-туториал от того иднуса.

Для тех, у  кого у напрочь отбито отсутствует чувство сарказма, то вот моя майка, в которой я провожу анти-ардуинские парады, со своим  воображаемыми друзьями:

</joke>


Продолжаем. До кучи я потренировался выводить погоду с прогнозом и картинками, текстовые файлы с карты и немного побаловаться с тачскрином.

Кода нет и не будет.

Ссылки на предыдущие части:

Bluetooth термометр  или вариации на тему

Радиоприемник на базе цифрового радиочипа и контроллера PIC

Многофункциональное устройство своими руками, часть 2

Многофункциональное устройство своими руками

Часы пикабушника

Рукодельники

62.8K постов60.9K подписчиков

Правила сообщества

В сообществе запрещена торговля, обсуждение цен, ссылки на страницы с продажами, контакты автора в комментариях. Обязательна информация о материалах и инструментах в текстовом виде.

0. Соблюдайте основные правила Пикабу.


1. Будьте вежливы, старайтесь писать грамотно.


2. В публикациях используйте четкие и красивые фотографии.


3. Автор поста с тегом [моё] может оставить ссылку на свой профиль, группу или канал на других источниках, при условии, что ссылки (активные и не активные) не ведут на прямые продажи. Допускается не больше четырёх ссылок и только в конце поста (п. 8.5 основных правил).


Запрещены:

-ссылки рекламного характера/спам;

-ссылки, ведущие на магазины с указанием стоимости товара/услуги;

-ссылки, ведущие на призывы, покупки, продажи, подписки, репосты, голосование и тому подобное.

(нарушение основных правил сайта, п.8.1 и п. 8.2).

При переходе по ссылке запрещено наличие активных (кликабельных) ссылок, ведущих на вышеперечисленное в п.3, содержание таких ключевых слов как «товар», «услуга», «купить», «продам», «в наличии», «под заказ» и т.п.


3.1 Размещение контактов автора (самим автором или другими пользователями) в комментариях запрещено и подлежит удалению (п. 9.1 и 9.3 основных правил).


4. Обязательным для авторов является наличие технических характеристик изделия в публикациях (материалы, техники, авторские приемы, размеры, времязатраты и прочее) в текстовом виде.

Также помечайте свою работу тегом «Рукоделие с процессом» или «Рукоделие без процесса».


5. Пост-видео, пост-фото без текстового описания переносится в общую ленту. Даже если в видео показан подробный процесс изготовления, делайте краткое описание для тех, у кого нет возможности/желания смотреть видео.

Администрация оставляет за собой право решать, насколько описание соответствует п. 5.


6. Посты с нарушениями без предупреждения переносятся в общую ленту.

За неоднократные нарушения автор получает бан.

Автор может размещать новую публикацию в сообществе, не допуская полученных ранее замечаний.

5
Автор поста оценил этот комментарий
Вот я в край не понимаю людей, использовать мощный esp в качестве Bluetooth/wifi передатчика.
И основную часть делать на Ардуино,пик и прочих.
раскрыть ветку (1)
2
DELETED
Автор поста оценил этот комментарий

если рассмотреть применение esp  в моей схеме, то построить на esp-12 управление 16 битным экраном с параллельным портом ввода вывода на 34 пина, само собой невозможно. при других обстоятельствах, частично согласен с приводимым тезисом

0
Сводный брат админши
Автор поста оценил этот комментарий
В чем состояла изначальная задача? Это куда более интересно, чем сбор некро гаджета для картинок)
раскрыть ветку (1)
2
DELETED
Автор поста оценил этот комментарий

получить опыт геморроя

7
Автор поста оценил этот комментарий

Ускользает от меня смысл подобных постов без кода.

раскрыть ветку (1)
1
DELETED
Автор поста оценил этот комментарий

Это мой личный "фотоальбом" поделок

0
Автор поста оценил этот комментарий

ну флешка точно с произвольным доступом, читать  откуда  и как угодно через небольшой буффер не проблема....

раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий

Так я это знаю, вопрос то в чем был - зачем я ОЗУ использую?


Помимо описанных манипуляций с картинками, туда грузится ещё погода(включая прогноз), потом я использую при обновлениях экрана и переключении. По тексту поста я об этом мало писал, но там где скрины с погодой - эти данные строятся по информации предварительно временно загруженной в ОЗУ. Не значения погоды, а xml., который я потом обрабатываю.


Совокупно, мне для целей этой задачи, нужна была ОЗУ., а способов её не использовать - много

показать ответы
0
Автор поста оценил этот комментарий

почему сразу на экран нельзя,  без озу?

раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий

Можно сразу на экран. Но есть пару моментов.


Первый:

Структура файла bmp "содержит картинку" в зеркальном виде, если его читать начиная от заголовка (сверху вниз), то на экран выведется зеркально и будет отражён "снизу вверх". Можно конечно просто повернуть экран, но, тогда шрифт будет вверх ногами, нужно будет что-то придумывать.

Поэтому, чтобы " Развернуть " картинку, есть несколько способов - читать его от конца к началу, что сделать без ОЗУ проблемно, так как процедура чтения файла читает его именно от начала к концу.

Поэтому я сначала читаю весь файл в ОЗУ, и уже могу использовать любой метод при выводе на экран/например масштабирование.


Второй:

Скорость чтения всего файла bmp с sdcard занимает "много времени", и не позволяет быстро сменить картинку., если например, нужна быстрая смена кадров. Около 5-10 секунд загрузка одной картинки.


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

показать ответы
0
Автор поста оценил этот комментарий

А как объем памяти влияет на скорость чтения что то не  понимаю, наверняка же sd карта тормознее чем дисплей?

раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий

Не до конца понимаю вопрос, я не писал о том, что объем памяти влияет на скорость чтения. У меня в этом проекте объем памяти недостаточен для загрузки картинки 800х400. Поэтому если грузить с флешки (без ОЗУ), то медленно. А если грузить картинку размером равный объёму ОЗУ - то быстро

показать ответы
0
Автор поста оценил этот комментарий

Хорошо, а есть скетч, чтобы показывал картинки записанные каком то формате, переодически подсовываемые, или по внешней команде ?. или пушить картинку как нибудь удалеено средсввами того же nodered

раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий

такое возможно, у меня же организованно соединение с ПК через USB-UART, можно читать "напрямую" , можно прикрутить озвученное к wifi /bluetooth и получать из вне  и мг.др, масса вариантов

0
Автор поста оценил этот комментарий

да пофигу. а как rtsp поток можно туда организовать ?

раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий

по большому счету,  я этим никогда не занимался, но полагаю, что при нулевом приближении, смысл будет укладываться в то, что изначально потребуется организовать "некое устройство", которое "читает" rtsp поток и сохраняет его в в виде значений RGB для каждого кадра. например, на ту же SD,которую я буду вычитывать и выводить на экран. Всё это будет работать невероятно медленно и никакого практического применения не найдет.

Отвечая на изначальный комментарий о возможности вывода видео на моем устройстве, мне стоило пояснить, что я имел ввиду например, gif или простые avi файлы, который будут записаны предварительно на SD и их можно прочитать существующим функционалом, только написав нужную программу. Тогда читая последовательность кадров этих файлов, будем выводить их на LCD и получим псевдо-видео.

Все другие варианты, с текущей схемой - нереализуемы без создания доп.модулей. У меня таких задач схемой не предусматривалось.

показать ответы
0
Автор поста оценил этот комментарий

А видеопоток реально вывести, через 32 на такой экран?

раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий

Реально, только при текущий конструкции, скорость вывода картинок достаточно низка и видео получится похожим на последовательность слайдов вместо видеопотока

показать ответы
0
Автор поста оценил этот комментарий

ESP32? Nextion?

раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий

Не

показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества