Все выпуски  

Анонсы журнала "Лаборатория электроники и программирования" Новые статьи 25 номера


9. Программирование на языке С++ на примере микроконтроллера ATmega328.  Работа с сетью Ethernet.

Наиболее недорогим способом подключения устройства к проводной локальной сети «Ethernet» является использование контроллера ENC28J60 [5].  На базе этой микросхемы выпускается много модулей, включающих в себя собственно микросхему с обвязкой, сетевой разъем и разъем для подключения к другим платам. Рассмотрим пример управления светодиодом и серво. Фото макета представлено на рисунке:

 Подключение элементов макета:

Цепь

Вывод

Обозначение порта микроконтроллера

плата с ENC28J60

 

 

VCC      

3.3V

 

GND     

GND

 

SCK       

Pin 13

PB5

SO         

Pin 12

PB4

SI           

Pin 11

PB3

CS          

Pin 8

PB0

~Reset

Pin 7

PD7

Светодиод

 

 

LED_R

Pin 2

PD2

Серво

 

 

VCC      

5V

 

GND     

GND

 

Pulse

Pin 9

PB1

Часто вывод сброса «~Reset» не подключают, но для надежности работы устройства это необходимо сделать.

В общем задача состоит в том, чтобы послать из программы на компьютере запрос на сервер, который реализован на плате с модулем на ENC28J60.

Если в строке браузера набрать например «http://192.168.0.10/?led_off»:

, то посылаемый запрос будет выглядеть следующим образом:

«

GET /?led_off HTTP/1.1

Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*

Accept-Language: ru-RU

Accept-Encoding: gzip, deflate

User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0;

»

Т.е. введенный нами запрос дополняется специальной информацией.

Ответ, которым будет сформирован сервером, записан далее в программе микроконтроллера.

Для работы с микросхемой ENC28J60 будем использовать библиотеку «ethercard». Пример программы (скетча) приведен для «Arduino IDE» [2]:

Управляющая программа написана на языке С# [6]:

Вид окна программы при разных ответах сервера:

...

 

 10. Программирование на языке С на примере микроконтроллера STM32F407VGT6. Схема захвата. Измерение параметров ШИМ сигнала.

Задача измерения параметров ШИМ сигнала может возникнуть в следующих случаях:

- получения информации с датчиков (температуры, холла, энкодеров и др.) с ШИМ выходом

- создания диагностических автомобильных устройств (SAE J1850)

- самодиагностика устройств с выходным ШИМ сигналом

В микроконтроллере существует специальный режим захвата, позволяющий одновременно измерять период и длительность импульсов ШИМ, который называется «PWM input mode» [2]. В этом режиме используются одновременно две схемы захвата, одна измеряет период, вторая длительность, также производится автоматический сброс счетчика таймера при начале периода ШИМ сигнала. ШИМ сигнал подается на один вывод микроконтроллера, а внутри производится его коммутация на разные схемы захвата.

...

Будем использовать плату «STM32F4DISCOVERY» [5]. Пример программы сделан для компилятора «CooCox®» [4]. На таймере TIM4 сделан ШИМ генератор, а на таймере TIM2 схема измерения параметров ШИМ сигнала. Соответственно на плате необходимо соединить ножки PD12 (выход генератора) и PA0 (вход измерителя).

Результат работы программы:

Захват. Измерение параметров ШИМ сигнала:

Период = 100 мкс, Длительность = 24 мкс

Период = 100 мкс, Длительность = 24 мкс

Период = 100 мкс, Длительность = 24 мкс

 


В избранное