Как стать автором
Обновить

Макетная плата MAT90USB162 с аппаратным USB, ЦАП, внешним АЦП и 32Mb DataFlash

Время на прочтение 3 мин
Количество просмотров 22K
Привет, Хабр!

Хочу представить дипломный проект, который плавно перерос в мелкосерийное производство.

Другие наши проекты здесь

Собственно это Open Source платы для протипирования на базе AVR AT90USB162 с аппаратным USB.
Плата предназначена для начинающих и основной упор делается на изучение периферии UART, SPI, 1-wire.



Документация
Примеры
Примеры-zip

Основные характеристики:
1) AT90USB162 аппаратный USB, 8 MIPS
2) АЦП AD7811 10 бит, 4 канала, 350kSPS
3) Память DataFlash AT25DF321A 32Mb
4) ЦАП AD5300BRM 10 бит, время установления 4us
5) Наборное поле 3x3.5 см

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

Главная сложность программирование МК заключается в стереотипе, который отталкивает начинающих, типа «Ой, микроконтроллеры, это очень сложно, нужно изучить схемотехнику, электронику и еще много чего...». Это все не так! Для работы с AVR микроконтроллерами практические ничего и не нужно, даже программатора в некоторых случаях.

Все что требуется, чтобы начать создавать приложения на AVR, например, с помощь представленной ниже платы это:
1) USB mini кабель
2) Бесплатная программа FLIP3 для загрузки прошивки в МК
3) C/C++ gcc компилятор
4) Блокнот :)

И это все!

Здесь ниже я приведу несколько примеров, которые были использованы мной в «бою» и таким образом будут продемонстрированы возможности платы.



1) Работа с Bluetooth-модулем HC05

К плате просто подключать дополнительные модули, как, например, китайский Bluetooth-модуль HC05 (я свой брал на ebay уже готовым для использования). Сложностей в работе здесь никаких не возникает, в режиме slave модуль работает как удлинитель uart порта. Настройка по умолчанию используется у меня такая 9600, 8n1.


Подробно про модуль прочитать здесь:
Ссылка

Приведен кусочек кода, который здоровается и отправляет возрастающую последовательность цифр через bluetooth, с точки зрения кода это обычная отправка данных по uart.

#include <avr/io.h>
#include <avr/delay.h>
#include "uart.h"

#define FOSC 8000000 // Clock Speed
#define BAUD 9600
#define MYUBRR (FOSC/(16*BAUD))-1
int main(void)
{
unsigned char i;
DDRD=(0<<PD2)|(1<<PD3); // Rx,Tx UART'а
DDRB=0xFF;
USARTinit(MYUBRR); // настройка стандартная 8n1
// PD3 - Tx
// PD2 - Rx
sendString('Hello!\r\n');
while(1)
{ 
  for(i=0;i<255;i++)
   {
     sendChar(i);
    _delay_ms(100);
   }
}
return 0;
}


2) Работа с LCD-модулем uLCD-320-PMD2

Данную плату первоначально я проектировал для создания примитивного мобильного робота, который бы мог ориентироваться в пространстве (реакция на свет, звук и др.). Поэтому для этих целей приобрел цветной 320x240 TFT монитор с поддержкой SD-карт чтобы следить за состоянием робота. Реализована библиотека для работы с ним, в скором времени будет добавлена в руководство пользователя.


Datasheet

Работать с монитором было вполне удобно, так как он соединяется с платой через UART всего 5 проводами (питание, земля, Rx, Tx, RST).Поддерживает скорость обмена до 500К и имеет на борту контроллер, который рисует примитивы и их достаточно много, а также поддерживаются другие команды, например, отрисовка мыши и др.

3) Работа с датчиком температуры DS18b20

На основе платы можно делать автономные системы сбора информации, например, как показано здесь.
Датчик температуры выдает цифровой код по 1-wire интерфейсу, контроллер формирует пакет и передает по UART через Bluetooth на ПК в терминале мы видим температуру в градусах Цельсия. Но на самом деле это далеко не все, так как есть еще 4 канала АЦП с 350kSPS и небольшое наборное поле, где можно собрать маленькую схемку автономного измерительного или управляющего устройства. Думаю, как будут появляться новые примеры применений буду обязательно публиковать.


Дополнительно про 1-wire почитать здесь:
Ссылка 1
Ссылка 2
Ссылка 3

В демо-проектах есть примеры управления ЦАП с терминала ПК, сбор данных с АЦП.
Дальнейшие примеры использования и код будет выкладываться на этом сайте, также существует форум, где можно задавать вопросы.

Проект будет развиваться и в комментариях я бы хотел услышать мнения народа и конструктивную критику, которая поможет улучшить проект.
Теги:
Хабы:
+66
Комментарии 131
Комментарии Комментарии 131

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн