Category: микроконтроллеры

Июн 12 2012

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

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

Рис. 1. Модуль аналогового ввода с поканальной развязкой.

Read more »

Май 10 2012

Сертификат соответствия

Получен сертификат соответствия на прибор, фото которого можно видеть здесь: http://32bit.me/?p=1327 и здесь: http://32bit.me/?p=1322.

Апр 05 2012

Свидетельство о государственной регистрации программы

Свидетельство о государственной регистрации программы, описанной в предыдущем посте:

 

Апр 04 2012

Старый проект

Когда-то давно была идея разработать собственный программируемый логический контроллер (ПЛК). Тогда эта идея казалась вполне здравой, и ряд подобных отечественных разработок существовал.
Понятно, что аппаратная составляющая ПЛК довольно проста, и затруднений с ее реализацией не возникло. Самое сложное — программная часть.

Известные мне ПЛК работают либо в стандарте IEC-61131-3 (самый распространенный вариант), либо программируются иными способами: в среде Matlab (некоторые контроллеры ICP DAS), в собственной среде разработки (Siemens Logo), на языке С (фактически, контроллеры под IEC61131-3 очень часто поддерживают написание собственных функций на С).

В общем, было решено, что наиболее удобным для пользователей, не имеющих подготовки в области программирования, является графическая среда разработки, похожая на язык FBD стандарта IEC 61131-3 (FBD — Functional Block Diagram), или на среду разработки Siemens Logo.

Такая среда была мной разработана, носила название MicroSwitch и включала в себя графические редакторы диаграмм двух видов: FBD и конечных автоматов. Скриншоты приведены ниже.


Рис. 1. Редактор диаграмм функциональных блоков. (нажмите на картинку для увеличения)

Read more »

Мар 24 2012

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

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

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

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

Фев 21 2012

Адаптер Ethernet

Плата расширения для прибора, включает в себя адаптер Ethernet, слот для SD-карты и некоторую дополнительную логику на CPLD Altera.

Read more »

Окт 13 2011

Скриншоты с экрана устройства

Для получения скриншотов с экранов устройств была разработана маленькая утилитка, получающая текущее изображение по Rs-232.

Сама утилитка написана на C#, в программу устройства был добавлен небольшой фрагмент, отправляющий в UART изображение из буфера:

switch(buf[1])
{
case 0x03: //read multiple holding registers (0x04)
  ...
  break;
//Другие команды Modbus
...

case 0xFF: //  Команда получения скриншота

...
  return PrintScreen(uartNum);
};

Таким образом, стандартные команды Modbus «расширяются» специальной командой с кодом 0xFF, при получении которой устройство посылает в порт копию экрана (для монохромного экрана 128*64 это составляет ровно 1 кбайт данных).

Утилитка очень простая, небольшое (но, как оказалось, легко решаемое) затруднение вызвал тот факт, что С# работает с COM-портом не так, как другие системы (например, Delphi).

C# создает отдельный поток исполнения для обработчика события приема сообщения COM-порта. А раз это отдельный поток, в нем нельзя отрисовывать изображение (операции с графикой не являются в .Net потокобезопасными).

Проблему можно решить двумя путями: верным и неверным.

Read more »

Окт 10 2011

Стек и куча

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

Настройки размера кучи и стека в IAR делаются здесь:

Под кучей (heap) понимается динамически распределяемая память (цитата из Википедии: «Ку́ча (англ. heap) в информатике и программировании — название структуры данных, с помощью которой реализована динамически распределяемая память приложения«), хотя настоящие снобы должны знать, что куча — это совсем другое (цитата из англоязычной Википедии: «In computer science, a heap is a specialized tree-based data structure that satisfies the heap property: if B is a child node of A, then key(A) ≥ key(B).«)

Сен 30 2011

Прибор внутри и снаружи (двухканальный вариант)

Сен 30 2011

Прибор внутри и снаружи (четырехканальный вариант)