Category: ARM7

Мар 24 2012

Подключение цветного LCD с сенсорным экраном к микроконтроллеру

Перепост с Хабрахабра:

Добрый день, хабр. Сегодня я хотел бы поделиться некоторым опытом, касающимся подключения цветных LCD-индикаторов к микроконтроллеру. Эта тема уже поднималась на хабре (http://habrahabr.ru/post/139384/), поэтому данный пост может рассматриваться как дополнение к уже написанному моими уважаемыми коллегами.

Читать далее:   http://habrahabr.ru/post/140415/

Дек 05 2010

Старый прибор

Фотография старого прибора, для которого я разрабатывал прошивку.

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

Прибор содержит микроконтроллер с ядром ARM7 (фирмы Atmel), и имеет 8 каналов АЦП (16 бит), 8 каналов ЦАП (12 бит), 16 дискретных входов, 16 дискретных выходов, 2 силовых выхода управления ТЭНами, интерфейсы RS-232 и RS-485 (протокол Modbus). Все входы и выходы прибора имеют гальваническую изоляцию друг от друга.

Июл 15 2010

Конфигурация памяти в IAR

Проект, написанный на С++ в IAR под микроконтролер LPC2368 (ядро ARM7TDMI), не заработал после перекомпиляции под LPC1768 (ядро Cortex M3). Предпринятые исследования показали, что программа падает на совершенно невинной строке:

AddControl(new usBmpButton(110, 9, 17, 18, 10, BTN_FORWARD, MSG_BTN_FORWARD));

то есть, как нетрудно догадаться, именно на операции выделения памяти new.

Дальнейшее изучение проблемы привело к файлам конфигурации, хранящимся в папке config проекта. В файле LPC1768_Flash.icf есть строка:

define symbol __ICFEDIT_size_heap__     = 0x400;

то есть на «кучу» (динамически распределяемую память) отводится всего лишь 1 кбайт памяти! В старом проекте в аналогичном файле было указано значение 0x6000, т.е. 24 кбайта! После изменения значения программа заработала.

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

Май 11 2010

Web-сервер

На самом деле это плата Ethernet-контроллера Wiznet W5100 (вверху), соединённая с отладочной платой c микроконтроллером ARM (LPC). Плата между ними служит для соединения. Также на верхней плате есть флеш-память в виде SD-карты.

Под катом ещё фото.

Read more »

Дек 03 2009

Модуль аналогового ввода

На фото — плата контроллера модуля аналогового ввода. Устройство представляет собой модуль ввода 8 аналоговых сигналов с поной гальванической развязкой (т.е. все 8 входов полностью изолированы друг от друга) и предназначено для работы с ПЛК (поддерживаются протоколы Modbus и DCON). АЦП устройства могут иметь разрядность 16 или 24 бита в зависимости от исполнения. Устройство питается от источника 24В. Плата, приведенная на фотографии, содержит микроконтроллер LPC2103, память FRAM для хранения настроек, порты RS-485 и RS-232, гальванически изолированные друг от друга и от микроконтроллера. Сам микроконтроллер также гальванически изолирован от источника питания. К разъемам на плате подключаются еще две платы с АЦП (выложу позже).

Окт 21 2009

Плата

Девайс, над которым сейчас тружусь:
Плата контроллера, содержит:
микроконтроллер NXP LPC2368
4 канала 24-бит АЦП
4 канала 14-бит ЦАП (выходы 4-20 мА)
10 дискретных выходов (реле)
Ethernet
USB
RS-232
RS-485 (2 шт)
JTAG
термодатчик
энергонезависимую память (FRAM)
интерфейс для подключения клавиатуры и индикатора
интерфейс для подключения дополнительной платы (2 логических входа и 2 сигнала ШИМ)
Все аналоговые входы и выходы гальванически изолированы как от микроконтроллера, так и друг от друга. Интерфейсы RS-485 также имеют гальваническую изоляцию от микроконтроллера и друг от друга.

Питание платы осуществляется от источника постоянного тока напряжением 24 В.
Плата предназначена для одного прибора.