USB Осциллограф на MCU C8051F321

03/10/2017 - 10:00

USB осциллограф разработан на основе микроконтроллера C8051F321.

Микроконтроллер содержит богатый набор периферии:

• 10 разрядный АЦП с коммутатором на 12 каналов;
• источник опорного напряжения;
• регулятор напряжения (VBUS -> Vdd);
• 21 порт В/В;
• внутренний тактовый генератор до 48 МГц;
• USB, UART, SPI, I2C интерфейсы.


Схема USB осциллографа.

Ядро микроконтроллера совместимо с Intel 8051, за исключением того, что большая часть команд выполняется за один такт, обеспечивая максимальную производительность до 25 MIPS. Благодаря поддержки микроконтроллеров полно скоростного USB интерфейса (Full Speed 12 MБит/сек) появляется возможность быстрой передачи временных диаграмм из устройства в компьютер, что сокращает десятки раз время ожидания данных в по сравнению с устройствами подключаемыми посредством RS-232 интерфейса.

Принципиальная схема входного аналогового канала
Принципиальная схема входного аналогового канала.

Аналоговая часть USB осциллографа (входные цепи одного канала) показана на рисунке. В качестве опорного напряжения АЦП используется внутренний высокостабильный источник опорного напряжения на Vref =2.44 В. Из чего следует, что для анализа входных сигналов в диапазоне ±20В, их необходимо уменьшить в 20 раз и сместить на половину опорного напряжения. Если использовать для двух каналов осциллографа 4 канала АЦП то можно аппаратно разбить входной диапазон напряжения на два поддиапазона 0…2 и 2…20 В, причем на нижнем диапазоне делитель должен быть 1/2. Выбор одного из двух поддиапазонов осуществляется выбором размаха шкалы напряжения для соответствующего канала. Делитель и смещение для поддиапазона 2…20 В реализованы на операционном усилители OP1, а для поддиапазона 0…2 В на OP2. Напряжение смещения формируется с помощью двух делителей из не стабильного напряжения питания Vdd. Напряжение на выходе делителей равно Uд1 = 1,165 В и Uд2 = 0,807, если учесть что типичное значение Vdd = 3,3 В. Напряжение смещения на выходе каждого из ОУ определяется исходя из выражения:

Uсм = Uд + Uд * K,

где K - коэффициент передачи усилителя (K=1/20 для OP1 и K=1/2 для OP2).

Из чего следует, что напряжение смещения на выходе OP1 будет

Uсм1 = 1,165 * 1,05 = 1.22 В,

а на выходе OP2 будет
Uсм1 = 0,807 * 1,5 = 1.21 В,

т.е. близкое к половине опорного напряжения. Если же учесть, что Vdd может изменяться в зависимости микроконтроллера (но не "плывет" со временем) в пределах от 3 до 3.6 В, то получается, что напряжение смещения будет изменятся

для OP1 Uсм1 = 1.11…1.33 В, а для OP2 Uсм2 = 1.1…1.32 В.

Зная что максимальное входное напряжение (±20В или ±2В) преобразуется в ±1В, то с учетом смещения получается, что напряжение на выходе ОУ будет

для OP1 Uвых1 = 0.11…2.33 В, а для OP2 Uвых2 = 0.1…2.32 В,

т.е. находится в передела 0…Vref. Из чего следует, что при любом значении не стабильного Vdd на выходе АЦП никогда не будет переполнения. Не стабильность Vdd элементарно компенсируется калибровкой каждого поддипазона обоих каналов, что обеспечивает точность измерения напряжения не хуже 1-2%. Калибровочные коэффициенты рассчитываются для каждого устройства и хранятся в энергонезависимой памяти микроконтроллера.

Цифровая часть USB осциллографа состоит из токоограничивающих резисторов R1…R8 = 330 Ом, которые используются только для ограничения выходящего/входящего тока при работе шины B в режиме логического генератора до 10 мА. Для защиты портов в/в от возможных перенапряжений используются стабилитроны BZV55C5V1, ограничивающие максимальное напряжение на входе до 5,1 В (максимальное выдерживаемое портом В/В напряжение составляет 5,8 В). Используемые стабилитроны позволяют защитить входы только от не больших перенапряжений (до 20 В) так как они рассчитаны на максимальную мощность 0,5 Вт, но этой защиты в полнее хватает при анализе низковольтных устройств. Конечно, можно было бы использовать сапресоры (Supressor) вместо стабилитронов и включить в каждую цепь по самовосстанавливающемуся предохранителю (Polyswitch) для размыкания цепи при большем токе. Но такая защита приведет к неоправданному росту стоимости изделия, как минимум еще на $12-15, так как вряд ли многим требуется защита от перенапряжения в сотни вольт и с токами в несколько ампер.

P.S. Автор выражает благодарность Леонтьеву Александру Петровичу за помощь в разработке схемы.

дистрибутив (ПО, драйвер, прошивка, руководство) - USB_Oscillograph.exe

просто оболочка - usb_osc_v1.0.1.zip

драйвера - Driver.zip

прошивка - OSC_USB_v1.0.BIN

Автор: Павленко Сергей
Источник: http://usb-osc.narod.ru

USB Осциллограф на MCU C8051F321
04/18/2017 - 15:08
Аватар пользователя mischaka

Какова частота измерений у этого осцилографа?

03/13/2018 - 07:41

Подскажите какой программатор использовать для прошивки С8051F321-GM?
Какую панельку можно использовать для С8051F321-GM?

Простой usb-осциллограф.

11/12/2021 - 11:23

Подскажите, как запрограммировать С8051F321, прошивки OSC_USB_v1.0.BIN

Мебельная поисковая система - купить комод. Покупка/продажа всего на свете.

не достаточно, комп не видит устройство.