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

Карманный осциллограф на микроконтроллере STC 8051

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров13K
Всего голосов 43: ↑43 и ↓0+65
Комментарии30

Комментарии 30

Как индикатор - замечательно! Прикрутить батарейку для карманности.

Хотелось бы прежде всего видеть характеристики прибора: частота дискретизации, полоса пропускания, разрядность АЦП, глубина памяти, входное сопротивление и ёмкость, разрешение дисплея, имеется ли связь с компьютером...

Мануала к контроллеру и исходного кода более чем достаточно, чтобы все эти параметры оценить. И для этого требуется усилие воли. Если рука к мануалу не потянулась, значит оно вам не надо. Отсекатель бесполезного времяпровождения.

Каким образом подобные статьи попадают в "лучшее" ?

1.Это корпоративный блог

2.А других особо и нету...

Факт)

пусть лучше такие

НЛО прилетело и опубликовало эту надпись здесь

Мдя... А чего так мало принципиальную схему устройства в тексте разместили? Я думаю, раз десять её воткнуть надо было или после каждого абзаца, например...

чтобы за потоком лапши никто не увидел плагиат..)))

Сам карманными китайскими осциллами пользуюсь на выездах, или когда нужна развязка от земли. Но не этим ...

Хуже кода для мк я ещё не видел. Частоту выборки АЦП настраивают с помощью программных задержек и NOPов. А за энкодером следят через прерывание со входного порта GPIO. Рука-лиццо. Не стоит повторять это дома.

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

а у этого осциллографа лучше характеристики/возможности, чем у сделанных на основе "синей таблетки" STM32F103C8T6 и экрана ILI9341?

  • Максимальная частота оцифровки 4.27 мГц (Интерлив, ДМА, 120 мГц тактовая частота)

  • Синхронизация: фронт, спад, max, min

  • Входное напряжение 0 ~ 3В

  • Дисплей SPI TFT 2.2" (2.4")) 320x240

  • Цифровой люминофор (0.1сек/дел ~ 10сек/дел)

  • FFT спектр сигнала

  • Заморозка экрана (Freezing)

  • Генератор прямоугольных импульсов 0.1Гц ~ 20мГц

  • Пять кнопок управления

http://ansvet.ru/stm/f1_osc_320x240/

Кроме того делали и другие версии осцилографов на основе такой платки, например: https://habr.com/ru/articles/384723/

а у этого осциллографа лучше характеристики/возможности, чем у сделанных на основе "синей таблетки" STM32F103C8T6

32 разрядный проц математику считать должен быстрее 8 разрядного. И у одного кварц и 72 МГц, у другого, похоже, встроенный RC генератор.. На схеме кварца не показали..

Нашёл на гитхабе характеристики:

Specification

  • MCU: STC8A8K64S4A12 @27MHz

  • Display: 0.96" OLED with 128x64 resolution

  • Controller: One EC11 Encoder

  • Input: Single Channel

  • Sec/div: 500ms, 200ms, 100ms, 50ms, 20ms, 10ms, 5ms, 2ms, 1ms, 500us, 200us, 100us

  • 100us only available in Auto Trigger Mode

  • Voltage Range: 0-30V

  • Sampling Rating: 250kHz @100us/div

Как я понимаю этот осциллограф выигрывает только по входному напряжению.

по входному напряжению

Ну да, делитель 10 + 2 кОм поставили. Выиграли /s

Ничего, что частота выборки, более чем в 10 раз отличается? Хотя у STC8A8K64S4A12 АЦП тоже до 800 kSPS работает, но он один, и нет DMA. А товарищ Ляо даже с прерываниями не стал заморачиваться.

Очень и очень неплохо, возможно это первый подобный прибор на этом семействе мк.
Они довольно дешевые, и скорее всего не имеют столько подделок как стм.
По параметрам конечно до 103 не дотянет, но с атмегой328 потягается

В статье это указано.

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

Что далеко ходить, я и сам первые минут 10 радовался за вас и думал, мол хоть кто-то ещё в этот проц влез, пока не начал вникать в суть..

На первой-же картинке на плате чёрным по белому китайским по синему написано

это еще одно доказательство того. что большинство не вникает) я не смотрел даже)

не большинство. но вникаем. есс-то лучше было бы видеть свою от автора разработку

На КПДВ пластмассовая птичка - значит статья про очередной китайский радиоконструктор. Можно переходить к комментариям ;)

Delay19971us();
Delay7971us();
Delay3971us(); 

Это как понимать? Он для каждой задержки свою функцию писал? Или это я чего-то не понимаю? Или там какой-то хитрый макрос, который парсит число после "Delay"? Либо у автора сверхразум, который мы, смертные, постичь вряд ли сможем.

У автора разработки свой специфический взгляд на программирование микроконтроллеров и осциллографы. Тем интереснее изучать его творение. Тем более, что оно доступно для понимания новичкам.

эта разработка сделана только в целях рекламы мк STC.
иными словами показать, что и на них такое можно. о кпд речь не идёт вообще.
уже длительное время изучаю этот мк, и примеров адекватного кода для них мало. спасает только то что проц 1Т, и прощает много косяков без большого падения производительности.

Я о том же. Лютый код. Такое нельзя показывать без пометки "21+"

Конкретно исходник с задержками, похоже, сгенерён автоматически. "Generated by STC-ISP Software" написано. Но от этого он не стал лучше.

С ихними интересными способами тактирования только так и можно ;)

нет. можно и нормальные задержки делать, но это надо думать.
пример кода одной из моих задержек. может быть и петлей задержки и таймером без блокировки кода

void delay(WORD time)
{
	time *=2;
	time = 0xffff - time;
	TL0 = (BYTE)(time & 0x00ff);//Initial timer value
	TH0 = (BYTE)((time >> 8) & 0x00ff);//Initial timer value
	TF0 = 0;				//Clear TF0 flag
	TR0 = 1;				//Timer0 run
}

void dly_us(WORD us)
{
	delay(us);
	while(!TF0);
}

а те спорные куски кода софтина stc-isp генерирует

Зарегистрируйтесь на Хабре, чтобы оставить комментарий