четверг, 17 декабря 2009 г.

Книга "Программируем для удовольствия"



















Книга "Программируем для удовольствия" Дэн Фернандес и Брайан Пик. 10 интересных проектов на C# - простейшая компьютерная игра, управление игрушечной машинкой с помощью компьютера, клиент-серверная технология трансляции видео через Интернет и т. п.
Читать дальше......

Форматы чисел в стандарте IEEE754

http://www.softelectro.ru/ieee754.html - описание стандарта представления чисел IEEE754 (числа с плавающей точкой). Читать дальше......

среда, 16 декабря 2009 г.

math.h

Для того, чтобы <math.h> нормально работал в IAR, нужно включать полную поддержку библиотеки (General Options/Library Configuration/Library: Full). Ниже приведены скорости исполнения некоторых функций <math.h>.
Читать дальше......

понедельник, 14 декабря 2009 г.

Роскошное зрелище

Увидел на e-bay роскошное зрелище: плату CPU от суперкомпьютера Cray. Всего $7500 - какая ерунда. Ставок пока нет. Фото под катом.
Читать дальше......

понедельник, 7 декабря 2009 г.

Система сбора данных

Модуль аналогового ввода позволяет подключать до 24 аналоговых сигналов. Плата АЦП построена на основе четырех АЦП AD73360, каждая из которых имеет 6 независимых 16-и битных АЦП (речь идет не о мультиплексировании, а именно об отдельных АЦП). Частота опросов задается программно, максимальная скорость составляет 64ksps.


Всего в устройстве могут быть две такие платы, образующие 48-канальную систему сбора данных. Плата подключается к компьютеру по USB, который работает в режиме Hi-speed (одна плата АЦП при работе генерирует поток данных 24*16*64000 = 24Мбит/c, что выходит за рамки обычного Full-speed). Интерфейс USB и процессор находятся на нижней плате (фото под катом).
Читать дальше......

Старая плата

Старая отладочная плата с микроконтроллером Fujitsu. С ее помощью было проделано множество интереснейших экспериментов.

Читать дальше......

воскресенье, 6 декабря 2009 г.

Письмо

Вот такое письмо пришло однажды в нашу фирму (под катом).

Читать дальше......

пятница, 4 декабря 2009 г.

Джек Гансл и программирование

Джек Гансл собрал коллекцию высказываний о программировании. Рекомендую. Ссылка: http://www.embedded.com/columns/technicalinsights/221901489?pgno=1 .
Пример:
Programming can be fun, so can cryptography; however, they should not be combined.
--Charles Kreitzberg and Ben Shneiderman

Кто такой Гансл?  Читайте под катом.
Читать дальше......

четверг, 3 декабря 2009 г.

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


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

вторник, 1 декабря 2009 г.

Еще ссылки

Здесь есть что посмотреть по электронике и микроконтроллерам: http://www.dapj.com/ (English, of course...)
Сообщество в ЖЖ: http://community.livejournal.com/ru_embedded/ - унылое чуть менее, чем полностью, но на всякий случай просмотреть можно. Не очень понятно, почему оно вообще называется embedded, большая часть постов к встраиваемым системам отношения не имеют.
Больше ничего интересного в ЖЖ по теме микроконтроллеров и встраиваемых систем нет. Оно и понятно...
Читать дальше......

пятница, 27 ноября 2009 г.

Учебник по С

http://faqs.org.ru/progr/c_cpp/cfaqrus.htm - отличный учебник по языку. Позволяет проверить, так ли хорошо вы знаете язык?

Читать дальше......

Ссылки

http://insiderobot.blogspot.com/ - Блог «Роботы и робототехника». Интересно почитать.

http://habrahabr.ru/blogs/controllers/ - Статьи по программированию микроконтроллеров.

http://www.best-microcontroller-projects.com/microcontroller-blog.html Статьи по микроконтроллерам. English. Читать дальше......

четверг, 26 ноября 2009 г.

Еще ссылка


http://hackedgadgets.com/ Сайт для настоящих техноманьяков (in English). Всякие интересные штуки вроде роботов.

Читать дальше......

Еще ссылка

http://www.electronics-lab.com/index.html - много интересного. Читать дальше......

Плата дискретного ввода

Эта плата является очень старой моей разработкой на микроконтроллере Fujitsu (16-битная архитектура). Плата имеет 8 гальванически изолированных дискретных входов и порт RS-485 для связи с ПЛК по интерфейсу Modbus. На фотографии приведен макет, на котором вместо RS-485 распаян RS-232.
Читать дальше......

Наблюдение

Из первых 10 ссылок, выдаваемых гуглом по слову "микроконтроллер", 5 относятся к микроконтроллерам AVR, к PIC - ни одной. Яндекс в первых 10 ссылках выдает 3 по AVR и 2 по PIC.  По запросу "microcontroller" в Яндексе - 1 AVR, 1 PIC, 1 ARM, Google же не делает явных предпочтений какой-либо архитектуры по данному запросу. Значит ли это, что AVR однозначно победил PIC на постсоветском пространстве? Читать дальше......

вторник, 24 ноября 2009 г.

Еще ссылка

http://www.elart.narod.ru/ - сборник отличнейших статей по электронике. Полезно всем, кто занимается разработкой устройств. Например, статья "Работа ОУ на емкостную нагрузку" обязательна к прочтению, если в вашем устройстве есть аналоговые выходы. Читать дальше......

понедельник, 23 ноября 2009 г.

Еще один ресурс

Замечательный ресурс на русском языке http://artspb.com/. Роботы, программирование, математика (особенно много математики). Есть эмулятор микроконтроллера ATmega8. Выложена книга "Дискретная АЧХ" - также весьма интересна. Читать дальше......

воскресенье, 22 ноября 2009 г.

Еще хорошая ссылка


Вот еще один небольшой ресурс: http://www.fischl.de/. На немецком, но есть пара статей на человеческом языке. Есть описание usb-программатора микроконтроллера avr. Читать дальше......

суббота, 21 ноября 2009 г.

Интересный сайт


Хороший сайт на русском языке. Микроконтроллеры и роботы, масса отличных статей. myrobot.ru Читать дальше......

понедельник, 16 ноября 2009 г.

Интересные ссылки: Hack a Day


http://www.hackaday.com/ - безумнейшие самодельные устройства. Читать дальше......

пятница, 13 ноября 2009 г.

Все та же плата

А вот еще одно фото платы


Это сборка из двух плат: снизу та, что на фото в предыдущем посте, сверху макетка с индикатором и клавиатурой (монтаж проводом МГТФ). Ручечки под дисплеем - энкодеры. Была идея использовать их для управления прибором, но пока окончательно не решил.
Индикатор графический, монохромный, 128х64. Клавиатура в конечном варианте будет пленочная, конечно, эта только для макета. Черная коробка сверху - JTAG-отладчик. Исключительно удобная вещь. Под катом еще фотки










Читать дальше......

среда, 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 В.
Плата предназначена для одного прибора. Читать дальше......

вторник, 13 октября 2009 г.

Рабочее место эмбеддера

Фото под катом

Нажмите на фотку, чтобы посмотреть в полный размер


Читать дальше......

воскресенье, 11 октября 2009 г.

Книга "Аналого-цифровое преобразование"

Читаю книгу "Аналого-цифровое преобразование".




Впечатления: книга представляет собой сборник статей фирмы Analog Devices. В принципе, весь этот материал доступен на сайте www.analog.com в виде application notes. Но в этой книге все эти статьи собраны воедино и переведены на русский язык. Книга содержит 1016 стр. О переводе - он ужасен. Переводили полные надмозги. (Надмозг - это человек, который не знает сразу два языка.) Current output - это токовый выход, а не выходной ток, уроды. Это не единственный пример, таких перлов на каждой странице по пять штук. Часто заметно, что переводчик вообще не понимает, о чем идет речь. В целом книга очень полезна тем, кто хочет систематизировать и упорядочить свои знания в области АЦП, и при этом разбирается в теме достаточно хорошо, чтобы исправлять ошибки переводчика. Для начинающих я бы порекомендовал что-нибудь попроще.


Читать дальше......

суббота, 26 сентября 2009 г.

Центральная проблема информатики



Как известео, центральной проблемой современной информатики является вычисление значения i (линк):

int i = 5;
i = ++i + ++i;

Читать дальше......

суббота, 12 сентября 2009 г.

С днем программиста!

С днем программиста! Читать дальше......

понедельник, 7 сентября 2009 г.

C programming for microcontrollers

Глава 3 - Краткое введение в C
Глава 4 - Типы, операторы, выражения.



Ну что я могу сказать... Весьма ниже среднего. Введение в язык настолько сумбурное, что я бы на месте новичка ничего не понял. Пока на 70 страниц две умные мысли: первая - не заморачивайтесь с ассемблером, учите сразу С, вторая - "не пиши умно, пиши просто".
С первым утверждением я согласен с двумя оговорками. Во-первых, в процессе обучения программированию изучение асма нужно хотя бы для того, чтобы понять, что это такое. Во-вторых, младшие модели восьмибитников имеют столь ничтожные ресурсы, что без ассемблера никак.
Со второй мыслью я согласен полностью. Автор советует вообще не запоминать приоритетов операций в С, чтобы не возникло соблазна экономить на скобках в выражениях. Экстремальный подход, но что-то в этом есть.
В остальном,  в плане изучения языка лучше Кернигана и Ричи ничего пока не придумано. То, что предлагает автор, является бессвязной смесью из школьной информатики, нескольких страниц из учебника С, нескольких страниц с описанием архитектурры AVR и примера с настолько кривым быдлокодом, что даже разбираться в нем неохота.
Читать дальше......

C programming for microcontrollers

Начал читать "C programming for microcontrollers", автор Joe Pardue.
Книга состоит из 11 глав, 7 приложений и предметного указателя.







В книге рассматривается программирование на языке C для платформы Atmel AVR. Уровень - с нуля.
Прочел первые две главы.
Глава 1 - Введение.
Глава 2 - Краткий обзор программного обеспечения, первая программа.

Впечатления пока не составил. Однако на странице 30 можно наблюдать пример отъявленного быдлокодерства:

// Blinky.c
#include <avr io.h>
#include <avr delay.h>

int main(void)
{
  //set PORTD for output
  DDRD = 0xFF;
  while(1) {
    for(int i = 1; i <= 128; i = i*2)
    {
      PORTD = i;
      _delay_loop2(30000);
    }
    for(int i = 128;  i > 1; i -= i/2)

    {
      PORTD = i;
      _delay_loop2(30000);
    }
  }
  return 1;
}

В чем же быдлокодерство? С виду этот код представляет собой обычный код, демонстрирующий мигание светодиодов, своеобразный "hello, world" микроконтроллерного мира. Однако как забавно реализованы циклы! Посмотрите на это чудо:

    for(int i = 1; i <= 128; i = i*2)

Ну, я бы еще понял так:

    for(int i = 1; i <= 128; i *= 2)

или так:

    for(int i = 1; i <= 128; i <<= 1)

Вообще, я бы написал так:

    for(int i = 0; i <= 7; i++)
    {
      PORTD = (1 << i);
      ...
    }

Конечно, во многом это дело вкуса, однако мой вариант кажется мне более понятным.
Далее мы видим вообще нечто странное:

    for(int i = 128;  i > 1; i -= i/2)

Мой внутренний парсер сказал "э...". Берем бумагу и пишем следующее:

Итерация | Значение i (до)| Значение i/2 | Значение i (после) |
---------+----------------+--------------+--------------------+
    1    |     128        |      64      |        64          |
---------+----------------+----------- --+--------------------+
    2    |      64        |      32      |        32          |
...
---------+----------------+------------ -+--------------------+
    8    |      2         |       1      |        1           |

---------+----------------+--------------+--------------------+
На этом цикл завершается.
Т.е. мы видим, что:
1. i -= i/2 в данном случае эквивалентно i /= 2
2. можно и так i >>= 1;
3. и, не самый лаконичный, но самый понятный, на мой вкус, вариант:

    for(int i = 0; i <= 7; i++)
    {
      PORTD = (128 >> i);
      ...
    }


Читать дальше......

четверг, 3 сентября 2009 г.

О себе

Я начинаю свои записки сегодня, 3 сентября 2009 года, с тем, чтобы публиковать здесь различные статьи, заметки, записки, а также все, что придет мне в голову. Записки эти в основном будут касаться микроконтроллеров, ПЛК, встраиваемых систем, схемотехники, программирования, switch-технологии, но не будут ограничиваться столь специфичным кругом тем. И если одинокий путник сочтет мои размышления интересными, или хотя бы любопытными, я буду рад прочесть оставленные им комментарии, однако, разумеется, только в том случае, если комментарии сии находятся в рамках приличия и не содержат бранных слов, более приличествующих завсегдатаям кабаков, нежели образованным и культурным людям, к кругу которых, как я надеюсь, принадлежите и вы, мой дорогой читатель.
Однако, позвольте представиться.

Зовут меня Владимир, я проживаю в славном городе Екатеринбурге и работаю инженером-программистом в одной небольшой фирме. Закончил я славный Радиотехнический факультет Уральского Государственного Технического Университета по специальности "Управление и информатика в технических системах", и могу добавить к сказанному лишь то, что годы, проведенные в стенах этого заведения, были лучшим временем моей жизни.
На этом пока откланяюсь.

С уважением,
Владимир.
Читать дальше......