Подключение микроконтроллера к локальной сети: Широковещательные сообщения и DHCP

В этой части мы поговрим про широковещательные сообщения и, наконец-то, закончим с UDP.

Краткое содержание:

  • Широковещательные сообщения
  • Отправка и приём
  • DHCP
  • Заключение


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

Подключение микроконтроллера к локальной сети: UDP-клиент

В этой части мы продолжим писать наш стек протоколов. Добавим возможность отправлять UDP-пакеты на любой IP-адрес и научимся получать данные с удалённого сервера.

Краткое содержание:

  • Введение в роутинг
  • ARP-ресолвер
  • Отправка пакетов
  • Пример работы со стеком
  • Заключение


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

USB программатор для ПЛИС Xilinx

Поискав информацию о «готовых» программаторах с интерфейсом USB для ПЛИС компании Xilinx, сделал вывод что для домашнего пользователя дорого (цены от 4 тысяч и выше), но есть и клоны, хотя правильнее будет сказать самостоятельная реализация, так как схемы выложены в свободном доступе самим производителем, а заложенные мозги прошиваются «автоматом».



Читать дальше
  • +7
  • 01 апреля 2011, 19:43
  • ZiB

Минималистичная очередь задач на C.

Недавно тут появилась замечательная статья про реализацию кольцевого буфера на C++ [1]. Статья весьма ценная и полезная, но, как вполне справедливо заметили в комментариях, что бы писать на крестах под контроллеры надо весьма хорошо знать этот язык, иначе красивый и, вроде бы, элегантный плюсовый код собирается в ресурсоёмкое тормозилово. Я и сам хоть и пишу десктопные проги на плюсах, под контроллеры пока предпочитаю использовать чистый С. Так вот, по этому поводу вспомнилось мне, что я как раз недавно занимался шлифовкой очереди задач на основе кольцевого буфера на сях, и я решил поделиться своими наработками — вдруг кому пригодится. Код, разумеется, платформонезависимый (ну кроме конструкции ATOMIC_BLOCK), а вот оптимизация делалась под avr-gcc и на других платформах/компиляторах может быть излишней.


Читать дальше
  • +3
  • 01 апреля 2011, 09:48
  • Alatar

STM32VLDISCOVERY+mbed NXP LPC1768+RTOS+KEIL



Начало.

Среда разработки: MDK ARM 4.14 + RL-ARM 4.12

Голый проект:

STM32
#include "stm32f10x.h"

int main (void)
{
   return 0;
}


В папку с проектом кладем:
C:\\Keil\\ARM\\INC\\ST\\STM32F10x\\stm32f10x.h (в файле разкоменчиваем одну из строк с 50 по 57)
C:\\Keil\\ARM\\Startup\\ST\\STM32F10x.s

Это пустышка достаточная для начала создания ЛЮБОЙ программы, все что нужно еще, это reference manual.

LPC1768
#include "LPC17xx.h"

int main (void)
{
   return 0;
}


В папку с проектом кладем:
C:\\Keil\\ARM\\Startup\\NXP\\LPC17xx\\startup_LPC17xx.s
C:\\Keil\\ARM\INC\NXP\\LPC17xx\\LPC17xx.h

Опять же пустышка для любой фантазии.



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

Подключение микроконтроллера к локальной сети: UDP-сервер

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

Краткое содержание:

  • Полезные штуки
  • Стек протоколов
  • Протокол Ethernet
  • ARP
  • IP
  • ICMP
  • UDP
  • Пишем приложение
  • Заключение


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

Немного о тестировании программ для МК

Тестирование программного обеспечения область очень сложная и обширная. По этой теме написано много работ применительно к различным методам разработки ПО и стекам технологий. Однако, большинство из них посвящено тестированию серверного ПО и прикладного ПО для ПК. Тема тестирования микроконтроллерных систем освещена крайне мало. Попробую немного восполнить этот пробел. В этой статье рассмотрены примеры модульного и интеграционного тестирования на примере МК семейства AVR.


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

Подключение микроконтроллера к локальной сети: работаем с ENC28J60

Эта часть полностью посвящена работе с ENC28J60.

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

Но даташит всё равно может пригодится. А так же еррата.

Краткое содержание:

  • Включение ENC28J60
  • Архитектура ENC28J60
  • Обмен данными по SPI
  • Инициализация
  • Отправка пакетов
  • Приём пакетов
  • Заключение

Примеры кода написаны под AVR. Впрочем из платформенно-зависимых вещей тут только работа со SPI.



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

Бутлоадер для PinBoard

Надоело мне ждать по 4 секунды, пока родной бутлоадер пинборда ждет приглашения от программатора, да и успевать запустить AVRProg за это время — тоже (тем более, после включения питания FT-шка это время тратит на инициализацию — зашить можно только ресетнув МК). Перенастроил его на ловлю кнопки — А на пинборде (ее подключать удобно джампером). Правда, есть одна проблема — этот же вывод занят JTAG'ом и не дает использовать его как GPIO. Поэтому нужно поправить фузы, отключив JTAG. Зато удобнее входить в бут — зажать А при включении питания или ↓RESET — ↓A — ↑RESET — ↑A. После чего можно спокойно, не торопясь, запускать программатор.
Батник для прошивки через модифицированный под пинборд AVRdude прилагается (дудку ищет рядом с собой, в C:\Program Files\AVRdude или в PATH).
  • +2
  • 29 марта 2011, 06:23
  • Vga
  • 1