Тест LCD 16bit , ОЗУ, SDCARD на PIC24
Требовалось решить одну задачу по выводу на 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>
Продолжаем. До кучи я потренировался выводить погоду с прогнозом и картинками, текстовые файлы с карты и немного побаловаться с тачскрином.
Кода нет и не будет.












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