Главная » Измерения
Призовой фонд
на ноябрь 2017 г.
1. Термометр Relsib WT51
Рэлсиб
2. 1000 руб
PCBWay
3. Тестер компонентов LCR-T4
Паяльник
4. 200 руб.
От пользователей

Похожие статьи:


Двухканальный USB осциллограф на STM32 - Miniscope v2c

Ниже представлен проект недорого USB осциллографа с применением STM32 микроконтроллера. Особенности устройства:
- использование очень дешевых STM32F103 микроконтроллеров в LQFP48 корпусе.
- односторонняя печатная плата, удобная для изготовления в домашних условиях.  
- выборка 2x461kSps (2x300kSps в старых версиях), 8 бит, передача данных по USB в реальном времени.
- прошивка по UART.
- диапазон рабочих напряжений 0 - 6.6 Вольт.  Нестандартное входное сопротивление 20 кОм (к несчастью, большее значение вызывает помехи на АЦП. Возможно, это можно исправить использованием ОУ. Обратите внимание: сопротивление может быть увеличено при использовании новой прошивки, которая использует отдельный АЦП для каждого канала).

Сигнал 300 мВ снятый при помощи miniscope v4:

Осциллограммы в miniscope v4

Общая стоимость компонентов не превысила 10$.

Принципиальная схема USB-осциллографа:

Принципиальная схема USB-осциллографа

Печатная плата - односторонняя, размер 66мм x 36мм.

Печатная плата

Печатная плата

Среда разработки

Для разработки miniscope v2 необходимо было выбрать среду разработки для STM микроконтроллеров. В этом файле лежат примеры проекта для IAR, Keil, RIDE, HiTop и TrueSTUDIO. К сожалению, не один из них мне не подошел. RIDE и HiTop требуют покупки лицензии через 7 дней. Пробные версии IAR и Keil имеют ограничение на размер кода и забирают очень много дискового пространства. То же самое с TrueSTUDIO.

В результате я выбрал CooCox, дистрибутив которого весит 115 МБ и около ~ 800 МБ после установки и распространяется бесплатно.

Прошивка микроконтроллера

На плате нет JTAG/SWD разъема, так как прошивка должна быть загружена по UART. Чтобы войти в режим загрузки, нажмите и удерживайте кнопку BOOT при нажатии кнопки RESET. Программа STM "Flash Loader Demo" без проблем работает с USB-UART переходником. Нормальное напряжение на выводах микроконтроллера 5В, поэтому можно использовать 5 или 3.3В RS232-UART/USB-UART переходник.

Кнопка RESET может быть удалена - микроконтроллер переходит в режим загрузки при нажатой кнопке BOOT если USB подключен.

Так как USB подключено без 1.5 кОм подтягивающих резисторов, его необходимо заново подключить после прошивки.  

Проект для тестирования микроконтроллера и зуммер: stm32scopeTest.7z

Советы по передаче данных по USB

Используйте CDC в качестве шаблона. Есть две конечных точки BULK. Для повышения скорости CDC потребуются небольшие изменения.
1. Уменьшите значение VCOMPORT_IN_FRAME_INTERVAL. Я не уверен, что значение = 1 подходит при двунаправленной передаче, поэтому я поставил значение = 2.
2. Увеличение значения USART_RX_DATA_SIZE. Я использовал 8192 байт (2 х 4 Кб), но я думаю, что существенной разницы при использовании  4096 байт.
3. Изменение Handle_USBAsynchXfer, т.к. он не будет передавать данные, если USART_Rx_Buffer будет полный. Таким образом, после каждого номера SOF будет отправлен максимальный по номеру байт.

Убедитесь, что на ПК приложение постоянно готово к приему данных. Убедитесь, что приоритет чтения для него выше,  чем у других приложений. Я использовал libusb, поэтому я использовал сочетания usb_submit_async / usb_reap_async для задания очереди запросов чтения.

Я не интересовался высокой скорость передачи данных с ПК, поэтому у меня нет советов по этому поводу. Miniscope v2c оправляет данные на ПК с максимально возможной скоростью. Данные отправляемые с ПК незначительны (ID запроса, изменение аналогового усиления).

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
МикроконтроллерSTM32F10XCXT61 STM32F103?Поиск в LCSCВ блокнот
IC1 Линейный регуляторLF331 Поиск в LCSCВ блокнот
D1-D4 Диод Шоттки
BAT42
4 Поиск в LCSCВ блокнот
C1 Электролитический конденсатор10 мкФ1 Поиск в LCSCВ блокнот
C2 Электролитический конденсатор100 мкФ1 Поиск в LCSCВ блокнот
C3, C4, C6-C9, C13 Конденсатор100 нФ7 Поиск в LCSCВ блокнот
C5 Электролитический конденсатор22 мкФ1 Поиск в LCSCВ блокнот
C10, C12 Конденсатор2 Поиск в LCSCВ блокнот
C11, C14 Конденсатор47 пФ2 Поиск в LCSCВ блокнот
C15, C16 Конденсатор22 пФ2 Поиск в LCSCВ блокнот
R1-R3, R7, R10 Резистор
10 кОм
5 Поиск в LCSCВ блокнот
R4, R8 Резистор
27 Ом
2 Поиск в LCSCВ блокнот
R5, R6 Резистор
100 Ом
2 Поиск в LCSCВ блокнот
R9 Резистор
1.5 кОм
1 Поиск в LCSCВ блокнот
Q1 Кварц8 МГц1 Поиск в LCSCВ блокнот
L1 ДроссельBL01RN1A1 Поиск в LCSCВ блокнот
SG1 ПьезоизлучательF/TMB1 Поиск в LCSCВ блокнот
S1, S2 КнопкаЗамыкающая2 Поиск в LCSCВ блокнот
X1 РазъёмUSB1 Поиск в LCSCВ блокнот
JP2 РазъёмPLS-41 ВходыПоиск в LCSCВ блокнот
JP3 РазъёмPLS-31 UARTПоиск в LCSCВ блокнот
Добавить все

Скачать список элементов (PDF)

Оригинал статьи

Прикрепленные файлы:

Теги:

none Опубликована: 2012 г. 0 1
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (10) | Я собрал (0) | Подписаться

0
Сергей #
Сторона МК достаточно проста и понятна, но вот то, что сделано автором на РС - черт ногу сломит. Притом все сделано на очень специфических свободно распространяемых компиляторах и библиотеках. Очень тяжелый проект.
Ответить
0
Alloy #
А каким программатором можно прошить микроконтроллер STM32?
Ответить
0
OT #
STLink v2, но эта плата использованы UART boot.
Ответить
0
Eugene #
Почему у меня не хочет контроллер переходить в БУТ режим? Все выставляю как положено, а программа не определяет контроллер вообще. Уже голову сломал и понять не могу. Использую преобразователь не CP201.
Ответить
0
владимир #
Можно схему этого девайса выложить?
Ответить
0
Александр #
Подскажите пожалуйста нубаторe-ардуинщику, как залить эту прошивку в мк. Какой программой какой файл указывать на каких стадиях.
Ответить
+1
Михаил #
1) Вам нужен UART преобразователь. Это такая штука, которая втыкается в USB и делает вам интерфейс RS232. Гуглите "ftdi" я использую такую: ссылка на али
На ней один джампер устанавливает питание. Убедитесь, что выставлено 3.3 вольта. Потом соединяете три провода: RX,TX и GND. Можно перепутать нечаянно RX и ТX. Логика включения такая: что на одном девайсе RX, то на другом TX.
2) Далее (если у вас Win) качаете Flash Loader Demo. Там будет пошаговая инструкция. Нужно будет только выбрать ваш юарт преобразователь, он будет показан как СОМ с каким-то номером и выбрать прошивку. На все вопросы отвечайте, что вы не против затереть все что на чипе.
3) Чтобы ввести устройство в бутрежим, нужно включить его с зажатой кнопкой бут.
Ответить
0
Lex178 #
1 пункт полностью понятен
2 а какой файл из архива указывать в flash loader demo как прошивку?
3 а зачем в бут режим грузиться?
Ответить
0
NikLL #
Подскажите пожалуйста, в какой среде запускать miniscope_v2, уже несколько RAD Studio перепробовал, не хотят открывать....
Ответить
0
Петя #
Собрал на готовой плате STM32F103C8T6.Все работает.
Прошивается с помощью копеечного USB-UART на CP2102 (на нем есть выход 3.3v), распиновка GND-GND, 3.3v-3.3v, tx-A10, rx-A9. Можно использовать USB-UART на ftdi. При прошивке не забыть переткнуть перемычку, затем вернуть обратно.
Утилита для прошивки stm flash loader demonstrator.
Сама прошивка (HEX файл) есть в файлах проекта stm32scope_20121006\Debug\bin.
После прошивки можно подключать плату по USB к компьютеру. Для этого нужны драйвера (их можно взять например из файла проекта miniscope_v2c_dll_20170121\miniscope_v2c\win-driver).
Данные смотрим на Miniscope v4 (miniscope_v4_01_00\bin), для этого нужна dll, которую берем например здесь miniscope_v2c_dll_20170121\miniscope_v2c\Release_Build и кладем в miniscope_v4_01_00\bin\device и в самом miniscope_v4 выбрать эту dll.

Все файлы есть по ссылке на оригинал статьи.
Сигнальные входы A0, A1 (ограничение 3.3v).
На Win10 не работает.
Все исходники прошивки для CooCox.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется напряжение?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Осциллограф DSO138
Осциллограф DSO138
Конструктор - темброблок на LM1036 Конструктор УНЧ 60 Вт на LM3886
вверх