Интерфейс USB. Еще немного теории.



Появилось немного свободного времени, и я решил написать небольшую «внеплановую» статью.

Итак, из предыдущей статьи, мы знаем, что для обмена данными используются некие виртуальные каналы – «конечные точки». Давайте рассмотрим, как происходит обмен.



Читать дальше
  • +7
  • 04 ноября 2011, 17:30
  • e_mc2

Интерфейс USB. Введение.



В данном цикле статей будет рассмотрен под разными углами интерфейс USB (USB 2.0) Попробуем разобраться, как он работает и закрепить полученные знания практически. «Копать» мы будем достаточно глубоко, не коснемся только физического уровня передачи данных (вернее коснемся вскользь). Физический уровень возьмет на себя соответствующий периферийный модуль МК.



Читать дальше
  • +11
  • 03 ноября 2011, 17:00
  • e_mc2

Перепрошивка осциллографа Rigol DS1052E на DS1102E

… или как получить хороший прибор за 345 баксов!



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

STM32 и Дзен. Компиляция и запуск отдельных программ.

По просьбам трудящихся решил поделиться своими наработками.



Возможно, не все, описанное тут, будет правильным решением. Некоторые вещи я делал либо исходя из своих поверхностных представлений о том, как это должно работать, либо вообще по интуиции.
Если в комментариях кто-то отпишется, укажет на ошибки и посоветует более правильное решение — буду очень благодарен.
Может кого-то эта тема заинтересует, и совместными усилиями можно будет что-нибудь эдакое выдать, чтобы потом все желающие могли использовать.

Суть в следующем.
Имеется плата, на которой стоит микроконтроллер STM32 и, например, SD-карточка. Идеальный вариант, если есть SRAM, подключенный по FSMC, но не обязательно. Внутренней памяти, на первое время, хватит.

Что нужно: компилить в Keil (или, возможно, другой среде) программу, заливать ее на SD-карточку и запускать на контроллере.

Как будем запускать?
Сразу на ум приходят два очевидных варианта:
1) Если программа небольшая, в несколько килобайт — заливаем ее в RAM и оттуда запускаем.
2) Если программа побольше — предварительно ее переписываем во внутренний флеш и запускаем из него.

Ну а если программа занимает больше, чем свободно во внутреннем флеше, единственный выход — внешний RAM по FSMC.

В этой статье остановлюсь на первом варианте.

Этап первый. SD и FAT.


Подробно описывать не буду. На эту тему много всего написано как в инете, так и в этом сообществе.
SD-карточку можно подключить по SPI, можно по SDIO (если контроллер F103). И то и то есть в примерах стандартной периферийной библиотеки от ST.
Файловую систему легко поднять с помощью библиотеки FatFs. О ней, вроде, тоже были статьи.
И вообще, можно и без файловой системы обойтись, главное, чтобы можно было откуда-нибудь считать предварительно откомпиленную программу.

Этап второй. Подготовка проекта с программой.




Читать дальше
  • +8
  • 02 октября 2011, 18:42
  • Ezhik
  • 1

MMC(SD) и AVR. Часть 2. Работа с картой.

AVR
В прошлой статье мы с вами узнали основные определения и получили минимально необходимые знания для работы с картами памяти формата MMC, SDSC,SDHC. Теперь настало время познакомиться с ними поближе. Давайте посмотрим на основные операции, которые сы можем выполнять с этими картами, после того, как они инициализированы и находятся в режиме SPI:

— Чтение (нескольких байтов, одного блока и последовательности блоков)
— Запись (нескольких байтов, одного блока и последовательности блоков)
— Чтение регистров карты памяти



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

MMC(SD) и AVR. Часть 1. Инициализация и идентификация.

AVR
Пришло время поговорить о картах памяти формата MMC и SD(а также все их варианты типа mini, micro и т.д.). Использую их в своих проектах довольно таки давно, поэтому вроде как для меня в этом вопросе ничего сложного нет. Поэтому данная статья рассчитана на тех, кому этот вопрос кажется интересным(новым, незнакомым, сложным). Если такие комрады имеются, милости прошу под кат…

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

Паяльная маска, дубль 1

Спешу поделиться с сообществом результатами моих потуг нанести паяльную маску. Ну, хочется, чтобы плата была красивая и не окислялась. Долго искал, к Ворону приставал, чтобы завезли пленочную маску, но результатов — ноль. Но тут недавно попалась мне на глаза эта ссылка www.ebay.com/itm/1pc-PCB-UV-Curable-Solder-Mask-Repairing-Paint-Green-/200617690716?pt=LH_DefaultDomain_0&hash=item2eb5bf065c
Все вроде бы красиво, но цена негуманная. Порылся еще и нашел
www.ebay.co.uk/itm/ws/eBayISAPI.dll?ViewItem&item=200622510695
где и приобрел. У продавца еще есть зеленая и синяя, но мне захотелось а-ля ESI Juli@ — белую. Доставку продавец обещал в течении 20-30 дней, по факту — дошла за две недели. По сравнению с предыдущей посылкой из того же Гонконга за 45 дней — супер. 5 баксов за доставку потрачены не зря.



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

STM32, примеры кода

Осваиваю периферию STM32F103C8, пишу код с комментами, подумал что может кому-то пригодиться (или мне самому по-позже). По ходу обучения буду дополнять эту статью.

Считываю данные с температурного датчика внутри чипа и передаю по USART. Используется таймер и прерывания. Прерывания убраны, добавлен DMA.


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

Радио модуль RFM70

RFM70
Радиомодули RFM70 фирмы HopeRF представляют из себя маломощные приёмопередатчики нелицензируемого диапазона 2.4 ГГц с неплохими параметрами и очень привлекательной ценой. Конструктивно, модули представляют из себя печатную плату 13х17 мм с микросхемой-«каплей» и печатной антенной.

Модуль работает в диапазоне 2400-2483 МГц, который разбит на 83 канала, при максимальной выходной мощности около 3.2 милливатт (5 dBm). Максимальная скорость передачи данных составляет 2 Мбит/с., что очень даже не плохо — можно передавать несжатый звук в обе стороны, причем с запасом. Практическая дальность связи при прямой видимости составляет около 40-50 метров, в условиях многоквартирного жилого дома — около 15-20 метров — через 4 кирпичных стены.


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

Подключение микроконтроллера к локальной сети: HTTP и CGI (заключение)

В прошлой части мы научились отдавать по HTTP достаточно жирную статику. Но всё, о чём я хотел написать в прошлую часть не влезло, так что эта часть будет маленьким дополнением. Добавим какие-нибудь элементы управления (проще говоря, гуй) для получения и отправки данных с сервера и на сервер.

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

  • Идея
  • Сторона сервера
  • Сторона клиента
  • Заключение

Кроме того, в этой небольшой части мы коснёмся такой странной штуки, как javascript)


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