Skip to content
 

Вольтметр – амперметр с аналоговой шкалой на STM8S

Собираю себе домой мини-лабораторный блок питания для питания всяческих поделок. Надобность в устройстве назрела давно. Хоть и собирается и отлаживается в железе все на работе (а там есть где разгуляться), все же иногда нужно пару разных напряжений и дома. Останавливаться подробно на самом БП не вижу особого смысла, это компиляция импульсных стабилизаторов собранных по даташитам (регулируемый 0…25в на TL494, импульсные “качественные” 5в на ноутбучном MAX798 и отрицательные слаботочные -5в на MC34063). А вот вольтметр-амперметр, как устройство довольно востребованное в радиолюбительском “блокопитаниестроении”, пожалуй заслуживает отдельной статьи.

Повторять свое же собственное устройство во-первых скучно, во-вторых места было мало. Габаритно мне очень подходил двухстрочный дисплей 2×8 символов на базе HD44780, как легко доставаемый, относительно недорогой и довольно удобный в эксплуатации. Сначала хотел переделать свой же проект на другой индикатор, но немного подумав решил пойти другим путем… Как известно среди русскоговорящего (и не только) радиолюбительского населения бывшего СССР самыми популярными являются микроконтроллеры производства Microchip (семейство PIC) и Atmel (ATtiny, ATmega). И хотя в мире существует еще масса производителей МК (TI, Maxim, ST и т.д.), тем не менее именно Microchip и Atmel составляют 99% радиолюбительских (некоммерческих) проектов. Всегда считал это не совсем справедливым. Есть масса новых МК (и не только) о которых мы может быть и слышали, и даже в некоторых случаях интересовались и более того любим пообсуждать на любимых форумах. Но до конкретной реализации, готовых конструкций дело практически никогда не доходит. Вот и решено было собирать на чем-то отличном от вышеприведенных грандов.

К семейству STM8 от ST Microelectronics приглядываюсь уже давненько, как и многие раздобыл комплект STM8-discovery для “моргания светодиодом”, почитал много чего интересного по форумам. Так как имею специальность (согласно диплома) кроме физики и информатики еще и педагогическую, то соответственно замечательно понимаю некоторые аспекты обучения которые могли бы способствовать лучшему усвоению нового материала. Потому и решил не допускать распространенных ошибок – взял контроллер попроще и в качестве задачи поставил – изготовление законченного устройства. Как показала практика так научиться чему-либо проще. Сесть и бесцельно изучать работу, к примеру, АЦП тот еще подвиг… Ну и конечно же значительно упрощало дело наличие некоторых познаний в AVR – все ж таки не с нуля изучать.

Итак, что же понравилось, а что нет в новых МК. Не расценивайте это как обзор архитектуры STM8, а просто как вступление-размышление-сравнение программиста с подобными МК AVR. Применительно к ASM, естественно.

ЗА

ПРОТИВ

РАВЕНСТВО

Удобный по подключению и использованию программатор / отладчик. При покупке в составе плат Discovery весьма умерен в стоимости.

Хоть и протокол SWIM является открытым, STLink придется только покупать. Собрать самостоятельно не получится. В этом плане Atmel c великим множеством самодельных программаторов выглядит привлекательнее. А еще показательнее в этом плане Microchip с полностью открытым Pickit2.

Среда разработки ST Visual Develop примерно равна по «удобству», дизайну и структуре AVR Studio 4.1x.

Соотношение цена / навороты (периферия, килобайты и т. д.) явно не в пользу Atmel. Да и в целом ценоформирование гуманнее. Один только STM8S003 за 0.5$ чего стоит. Примерный аналог популярной mega8, а при этом в полтора раза дешевле.

Практически отсутствует выбор корпусов DIP и с малым количеством выводов (tiny13, tiny24). Половина контроллеров с мелким шагом в 0.5мм, что очень неудобно для начинающих.

Многие ругают ST Assembler за кривой синтаксис и т. д. И т. п. Я был бы более честен — он просто другой, не такой, как тот, к которому вы привыкли в AVR (или PIC).

Пожалуй одно из основных достоинств: одно семейство — один мануал. т. е. Регистр отвечающий за настройки, к примеру, АЦП во всем семействе STM8S имеет одно и то же название и биты расположены в нем одинаково. Atmel тут просто без комментариев…

Порты бывают разных типов: High Sink (до 20ма), обычные (низкоточные), и с открытым коллектором. И все бы ничего, если бы не такой нюанс. Например на 48-ногом STM8S105 я не обнаружил ни одного ПОЛНОГО порта с HS выводами. Т.е. Затея с подключением семисегментного индикатора связана с довольно неприятным нагромождением в программе. Вывести значение в один порт было бы гораздо проще… К слову в STM8S003K3 которому, я практически уверен, суждено стать бестселлером и прямым конкурентом mega8 такой полный порт есть.

В целом можно было бы сказать что грандиозного преимущества по производительности STM8 по отношению к AVR не предлагает. Потому они находятся в одной нише как по применению, так и по многим параметрам.

Обращение к памяти, eeprom, регистрам происходит одними и теми же командами, т. е. они все лежат в едином адресном пространстве. В случае AVR я делал так:

inc r16. В случае с STM8, я просто могу «обозвать» ячейку памяти r16 и проводить с ней те же фокусы. Весьма и весьма впечатляет. Немножко дико после AVR – ячейка из eeprom читается или пишется одной строчкой на ASM.

На простых версиях STM8S семейства образцовое напряжение наглухо соединено с напряжением питания, что налагает определенные требования на источник питания и, возможно поставит острее вопрос об использовании ОУ c rail-to-rail выходом. У AVR тут все несколько гибче и богатство выбора больше.

Не решился писать этот пункт в «+»… Славноизвестные фуз-биты в AVR есть конечно и у STM8, но практически все изменения доступны программисту изнутри программы, а потому повторяющему проект, об этих AVR-ужасах в 99% случаев можно забыть.

Очень большая часть комманд является 16-бит ориентированными. т. е. МK то конечно восьмибитный, но, например сложение, двух 16-битных слов производится одной строчкой.

 

Количество команд и примерный синтаксис во многом сходен с AVR, потому привыкание дается легко.

Аппаратное деление. Ну я «оттянулся» от души, скажу вам. Не то, чтобы нельзя было в AVR в столбик поделить. Но тут уж больно все шикарно происходит.

 

 

Настраивается все, что только можно. Такого обилия настроек я себе даже представить не мог. Например предделитель для таймера может быть любым числом от 1 до 32768. Слабо?! А сканирование и буферизация в АЦП чего стоит?!!

 

 

Продуманные инструкции. Есть много такого, чего в AVR откровенно хотелось бы. Например: BCPL перевернет битик в указанном месте на противоположный. Так просто светодиодом еще нигде не мигалось. Или BTJT (Bit Test Jump True) проверит бит в указанном месте и пошлет программу по указанному адресу если он true. У Atmel конечно это все реализуемо skip’ами… Но осадок все равно, как говорится, остался.

 

 

Есть еще множество моментов которые и хотелось бы осветить, но для вступления, я думаю, более чем достаточно.

Итак собственно о проекте. Амперметр-вольтметр на базе STM8S103F (STM8S103F3P6 в моем конкретном случае) и индикаторе WH0802A. Измеряемое напряжение 0…100в, разбито на два диапазона 0…10в и 10…100в. Измеряемый ток – 0…9.99A. Отличительной особенностью данного устройства является возможность отображения измеряемого тока не только в цифровом виде, но и в виде аналоговой шкалы с максимальным значением 1, 2, 5 и 10А. Опытные радиолюбители не дадут мне соврать и подтвердят, что в некоторых случаях стрелочный прибор значительно информативнее и полезнее, чем цифровой. И если значение напряжения в блоке питания – величина абсолютная, точнее постоянная то потребляемый ток иногда полезно наблюдать “в динамике”. Чтобы было понятнее вот фото в интерьере:

Шкала имеет 35 делений, цена деления для каждого диапазона соответственно разная. Формат отображения “цифровой”, “шкала 1A”, “шкала 2A”, “шкала 5A”, “шкала 10A” переключаются циклически единственной кнопкой. Включение устройства с зажатой кнопкой – запустит процесс калибровки. Текущее отображение сохраняется в eeprom, нажатия озвучиваются динамиком. Вот в общем-то и все.  Конструктивно все собрано на плате размером в сам индикатор. В моем случае входной усилитель был расположен на основной плате блока питания, но возможный “полный” вариант платы также присутствует внизу в файлах. Для программирования МК используются четыре провода интерфейса SWIM. И если землю и питание можно припаять в произвольных местах, то для SWIM и RST предусмотрены “пятачки”. Хотел бы заметить что подключение VCC из разъема SWIM является обязательным и не является при этом источником питания для целевого устройства. Это скорее вход. Также отдельно бы хотелось отметить о подключении устройства к целевому блоку питания. Участки цепей которые выделены на схеме жирным – должны быть выполнены максимально толстыми и короткими проводами. Динамик ставить вовсе не обязательно, на нормальную работу устройства он никак не влияет. ОУ AD8542 можно заменить на любой (в том числе одиночный) с входами и выходами (!!!) Rail-to-rail. Как вариант подошел бы MCP6022.

Налаживание устройства сводится к запуску калибровки для отсечения постоянной составляющей смещения ОУ (установка нуля) и подборе резисторов R10 для амперметра, R4 для нижнего диапазона и R6 для верхнего диапазона вольтметра. Хотелось бы обратить внимание на возможные “грабли” с фактическим номиналом стабилитронов VD1, VD2. Поставив по привычке на 5,1в – я получил фактическое ограничение в районе 4,9…4,95в, т.е. меньше чем напряжение питание, а значит и меньше чем образцовое напряжение АЦП, что конечно же исказило измерения. Потому стабилитроны указаны как 6.2в. Можно поставить и 5,6 но нужно обязательно проверить какой это окажется экземпляр.

Ну и как всегда на закуску фузов не будет… Все уже учел программист в прошивке. А будет возможный рисунок печатной платы (отличается от моего “железного” экземпляра):

Файлы:
Схема в SPlan 7
Печатная плата в Spint Layout 5
Прошивка

157 Comments

  1. Андрей сказав:

    Ув. Автор!
    Возможно ли использовать STM8S103K3T6C вместо примененного Вами?
    Спасибо за отличный сайт!

    • electra сказав:

      Спасибо.
      Боюсь так просто не получится. У STM8S103K3 нет AIN3, AIN4, AIN5. Придется подправлять программу вместо PD2, PD3, PD5 на PB0, PB1, PB2 соответственно. Все остальное вроде совпадает. Ну и что самое приятное – регистры одни и те же, а не как у ATMEL. Хотите – собирайте с вышеуказанными изменениями – программу я подправлю.

  2. Дмитрий сказав:

    Доброго времени суток,как я понял то для прошивки контроллера нужен специальный программатор?
    И возможно ли у вас купить уже зашитый контроллер?
    Если да то какова цена?

    • electra сказав:

      Программатором для данной конструкции может выступать любая плата STM8x-xx-discovery. Стоимость ее минимальная – около 10…15$. Конечно великого множества самодельных программаторов как для AVR и PIC нет, но цена и так вполне гуманная. Запрограммировать контроллер в корпусе TSSOP20 не впаяв в плату довольно проблематично (см. фото), хоть и нужно всего два провода, не считая земли. Очень велик риск отломать ноги. Если живете в Бердянске – без проблем приходите – зашью, если нет – увы без “знакомого” программатора не обойтись.

  3. Дмитрий сказав:

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

  4. Андрей сказав:

    Да, хорошо бы конечно на АВР-ке такой девайс…

  5. Андрей сказав:

    Очень не плохие контроллеры, слышал только положительные отзывы. Так что считаю купить единожды программатор есть смысл. Я около полугода назад купил, ждет своего времени.

  6. Игорь сказав:

    Добрый день, вечер, ночь, утро.

    А можно ли перекомпилить данный проект под STM8S003 ?. Ну и… пожалуйста не сочтите за наглость, можно ли попросить исходники?

    С наилучшими пожеланиями, Игорь

    • electra сказав:

      Под STM8S003F3 (TSSOP20) вроде бы как ничего менять и не надо, порты совпадают, ядро то же. А вот с STM8S003K3 (TQFP32) – дело хуже у нее нет тех входов АЦП, что нужны. Придется кой-чего переписывать. Хотите – поразбирайтесь – исходники отправлю, если не в коммерческих целях – пользуйтесь на здоровье.

      • Pavel сказав:

        Здравствуйте Андрей,
        Только начинаю разбираться с STM8. Хочу сделать КСВ метр на STM8. Не поделитесь исходниками? Там все очень похоже, АЦП и ЖКИ. С наступившим 2016. Удачи.

  7. Николай П. сказав:

    Уважаемый Автор! Здравствуйте!
    Спасибо за отличный проект!
    Давно искал такое устройство и наконец-то…
    Тем более, что STM8x-xx-discovery уже около двух лет лежит на полке.
    Но как всегда,всем не угодишь.
    Вот и у меня вопросы – просьбы:
    1. Возможно ли использовать STM8S105 вместо примененного Вами?
    2. Возможно ли изготовить двухканальный прибор применив индикатор типа 16х2, или 20х2.
    В блоке питания общий минус.
    Большое спасибо.
    С наилучшими пожеланиями, Николай.

    • electra сказав:

      Без правок S105 поставить не получится. Хотя конечно по сравнению с атмелом все будет гораздо проще – наименования регистров одинаковы для всей номенклатуры контроллеров. Двухканальный тоже не проблема – понадобятся +3 порта АЦП. Если программируете на ассемблере – могу отправить исходники – “допиливайте”. Если на СИ – тогда увы, не судьба.

  8. Николай П. сказав:

    Здравствуйте!
    Спасибо за ответ.
    В программировании я не силен, делаю только первые шаги.
    Если вышлете исходники, попытаюсь, надеюсь имея STM8x-105-discovery
    что нибудь получится.
    Спасибо!
    Да, а сколько будет стоить, если Вы сделаете.
    С уважением Николай.

  9. Николай П.: сказав:

    Здравствуйте!
    Уважаемый “electra”!
    Я понимаю что Вы занятый человек и нет времени на пустяки.
    Но я всё-же прошу найти несколько минут и отправить мне исходник
    “Вольтметр – амперметр с аналоговой шкалой на STM8S”
    для STM8S103F. Используя эти данные я попытаюсь переделать на 105.
    Данные этого проекта никак не будут использованы в коммерческих целях,
    а только для освоения микроконтроллеров STM8S.
    Спасибо!

  10. Николай П.: сказав:

    Спасибо!!!!!

  11. RuGOST сказав:

    Можно ли заменить транзистор на BC817-40?

  12. Николай П. сказав:

    Здравствуйте!
    Уважаемый «electra»!
    Возможно ли переделать схему для измерения тока,
    когда датчик тока находится в положительном проводе целевого блока питания?
    Спасибо!
    С уважением Николай.

    • electra сказав:

      Конечно можно. Переделывайте. Контроллеру абсолютно все равно откуда Вы будете снимать информацию, главное учитывайте что измерение 0…10 А = 0…5 В на входе PD5. По поводу измерения тока в верхнем плече можете почитать у максимов тут, они много чего такого выпускают:
      http://www.maximintegrated.com/products/amp_comp/current_sense/

  13. serg сказав:

    Добрый день, Андрей.
    Интересно все описываете. И устройство нужное (как часть более сложного прибора или источника питания). Но на сайт зашел несколько по другой причине.
    Пытаюсь освоить STM8L051 на ассемблере, специфика работы такая, что Си слишком шикарно по ресурсам.
    Работать с периферией и sleep(halt) слегка научился, хотел сразу реальный проект начать, да вот незадача:
    почему-то работать с байтом флагов выполненной команды (биты Z,N,V) подобно тому, как у микрочипа не получается, компилятор не признает такого байта почему-то, хотя в даташитах все расписано.

    Если не сложно, любой реальный проект или хотя бы часть кода можете прислать? Интересуют условные переходы и объявления переменных. В официальной документации что-то совсем “плыву”. Или в общий доступ выложите, что не жалко. Примеров на Си в сети много, а вот на асме нашел только этот сайт и все.

    С благодарностью, Сергей.

    • electra сказав:

      В открытом доступе пожалуй не положу, уж больно много дельцов развелось нынче, которые творчество превращают в бизнес, а на почту проект с исходниками конечно же отправлю. Разбирайтесь, надеюсь поможет.

  14. Romeo сказав:

    Уважаемый автор статьи не могли ли бы вы выслать на мое мыло исходники.Заранее спасибо

  15. Павел Н сказав:

    Здравствуйте,

    Сам я только что начал программировать stm8s-discovery по IAR и возникают вопросы, ответ на который не всегда легко найти в документации. Очень бы хотелось глянуть на исходники вашего проекта, чтобы понять, где я ошибаюсь сам. Если вам не сложно, вышлите мне, пожалуйста, исходники вашего амперметра на stm8s.

    Заранее благодарю,
    Павел Н.

    • electra сказав:

      Здравствуйте, Павел. Очень сомневаюсь, что Вам помогут мои исходники. У Вас IAR и Си, у меня родная STVD и страшный-страшный и суровый ассемблер :-))

  16. Alex сказав:

    по ходу тоже блок питания. http://birukov555.narod.ru/blok_pitaniya/ программа на ассемблере под STM8.

  17. Евгений сказав:

    Тоже решил пересесть на STM8 с 51х и AVR. Прошу выслать на почту исходник с двумя целями. 1 – как своеобразный костыль для обучения. 2 хочу практически повторить вашу конструкцию но под индикатор с другим интерфейсом. Что исходник на ассемблере я в курсе.
    С уважением.

  18. Александр сказав:

    Уважаемый автор, если можно, отправьте пожалуйсто исходник и мне. Решил освоить STM. STM8S Discovery купил, STVD установил. Ассемблер не пугает – ещё с КР580 начинал. 🙂

  19. Александр сказав:

    Спасибо. 🙂

  20. Константин сказав:

    Приветствую!
    Если Вас не затруднит, перешлите исходник, пожалуйста.
    Заранее спасибо:)

    • electra сказав:

      Пожалуй на этом раздача исходников прекращается. А то как-то глупо получается: 10 попросивших исходники и ни одного собравшего.

      • Константин сказав:

        Извините, если нечаянно ввёл Вас в заблуждение – если бы я хотел повторить Вашу схему, мне бы хватило прошивки.
        Микроконтроллеры это для меня хобби, сейчас осваиваю STM8 и STM32, мне просто проще заниматься эти по готовым программам. С ассемблером проблем нет никаких.

  21. Александр сказав:

    Повторять один в один не интересно. Переделываю под семисегментник. Как разведу печатку и перепишу программу, могу выложить здесь.

  22. Александр сказав:

    З.Ы. Учить ассемблер, имея перед глазами исходник с коментариями, куда как легче, чем без. 🙂

  23. IOPA4 сказав:

    Здравствуйте.
    Возможно ли использовать дисплей 2х16? А лучше бы исходники и на дисплей 2х16 вывести дополнительную инфу.
    Коммерцией не занимаюсь, давно на пенсии, все для души.
    Юрий.

  24. BAJWA сказав:

    I am a PCB designer, If you need my help in producing PCB in Altium, I offer myself.

    Is it possible:-

    1:- STM8S003F3P6 can be use
    2:- It be nice for all hobbyist, if 16X2 LCD is replaced by 7 segment LED Common anode display.
    I haves started work on it. (PCB)

    iftikharbajwa56@hotmail.com

    • electra сказав:

      Hello! Thanks a lot for your proposition, but usually I am produce PCBs myself even before programming. It’s an integral part of all process. As for STM8S003F3P6 and 7 segments LED – it takes 16 pins (2×4 7seg LED) of 20 from MCU. Without external registers (like HC164, HC595) I don’t think its possible to use STM8S003F3P6. Better STM8S003K3 in TQFP32. And one more sad thing: it’s only hobby, unfortunately I don’t have enough time for all 🙁 If you want – I can give you project for STVD with sources and you can rewrite section “display” for 7 segment LED. It’s in assembler.

  25. борис сказав:

    здравствуйте
    понравился ваш вольтметр решил повторить приобрел контролер STM8S103F3P6 как ни странно платка получилась с первого раза(3 штуки из
    4)взял отладочный набор STM8SVLDISCOVERY не собирая до конца платку решил прошить прогой STVP не тут то было подергался пошел за другим программатором stlink/v2 пробовал на 3 компах с xp и на одном с win7 пляски с бубном не помогают не конектица и все поиск в сети другой проги для прошивки без создания проекта результатов не дал самому изучать СИ и тому подобное уже тяжело английский как и китайский наверно уже не осилю как быть что посоветуете может есть другие проги (например для msp430 fet pro)

    • electra сказав:

      Прошить точно можете ST Visual Programmer из комплекта STVD, при запуске выбираете Hardware: STLink, Programming Mode: SWIM и Device STM8S103. Этой программе ТОЧНО достаточно просто файла прошивки, никакой исходный проект ей не нужен. Ну и есть еще одни грабли… Для тех кто вырос на Атмеле. VCC провод на разъеме программирования – это НЕ ВЫХОД питания а ВХОД измерения наличия питания на программируемом устройстве. ОБЯЗАТЕЛЕН к подключению, без него никакого коннекта не будет. Запитывать программируемое устройство от программатора, как Вы уже надеюсь поняли – нельзя, только своим питанием.

  26. борис сказав:

    спасибо
    вроде прошил но только stlinkом встроенным на stm8svl.stlink/v2 пока не хочет почему то садится питание до 4вольт думаю в выходные доделаю нет пока оу в магазине вроде есть

  27. борис сказав:

    да конечно стал запитывать как надо разобрался виноват был стабилизатор 78m05
    еще вопрос насколько критична емкость конденсатора С9 1мкф
    борис

  28. борис сказав:

    прицепил индикатор на вход нечего не подаю вижу только нижнюю шкалу кнопка ни чего не меняет
    может конечно я как всегда тороплюсь но программатор ругался файл не является интел hex
    а можно файл в формате HEX а не в таком виде
    борис

  29. борис сказав:

    ложная тревога все работает осталось настроить
    борис

  30. борис сказав:

    еще вопрос по настройке
    переключение диапазонов как я понимаю автоматически
    до 7.3-7.4 вольта меряет нормально на делителе (19 ножка) половина напряжения
    потом происходит скачек на 10.5 вольт на делителе все в норме на втором тоже
    что может быть
    борис

    • electra сказав:

      Похоже на неправильно настроенные делители. Какой ОУ, кстати применили? Хотя нет, ОУ тут не при чем, он же только для канала тока…

  31. борис сказав:

    похоже виноват индикатор после замены напряжение показывает нормально в диапазоне 0-20 вольт
    ток пока не проверял не первый раз сталкиваюсь с неисправностью жк индикаторов какие то оно не надежные как впрочем и все радиодетали
    борис

  32. Дима сказав:

    Вопрос о программировании на ST link v2 – пишет
    вот это:
    Не можете общаться с устройством!
    Проверьте подключение SWIM кабеля и проверить все необходимые разводка контактов на разъеме плавать.

    Если код приложения использует Swim Disable и сброс штифт как выход или отключил SWIM делитель тактовой частоты:
    Попробуйте сейчас выключить и на применении питания в то время как NRST Сброс контактный вынужден низким.

    Ошибка: <не удалось памяти программ программирования.
    питание внешнее, все провода на месте
    что еще можно сделать, чтобы вдохнуть жизнь в это железо
    спасибо

  33. Дима сказав:

    После долгих мук и проб нашел подвох. В любом состоянии изделия на данном МК, должен быть установлен конденсатор на 8 ногу МК(с корпуса), емкостью, ZB, 1.0. После его установки, все заработало и прошилось. Программатор ST LINK/V2.

    • electra сказав:

      А в чем, простите “подвох”? Он есть на схеме. Это конденсатор для внутреннего линейного стабилизатора. Без него разумеется ничего работать не будет. И STMы, кстати, совсем не капризные при программировании (лучше того же атмела точно).

  34. Дима сказав:

    Подвох в том, что перенес я в своей голове ПИК на СТМ, а плату я только вытравил и впаял кирпич, а обвязку не сделал.Просто на этот кондер акцент никто не сделал, хотя вчитался в переписку и потом понял, к чему был вопрос о его минимальной емкости его.
    спасибо.Извините, но справедлива поговорка – дьявол в мелочах. Жаль мало инфы для СТМ на русском.

    • electra сказав:

      Тогда понятно… 🙂 Ну насчет русский-английский не знаю, как по мне так даташиты и лучше читать на оригинальном (английском) языке, но некоторые нюансы это да. Будучи даже описанными в даташитах – вчитаться внимательно _именно_ в эту часть даташита – порой очень и очень сложно. У меня были грабли с “не вижу” контроллер, как я уже писал выше, с неподключенным VCC. Как Вы правильно сказали, я перенес в своей голове AVR на СТМ, естественно проигнорировав подключение VCC как “ненужное” и получил пару часов паники 🙂 Ну это в прошлом разумеется. Теперь и у Вас на один “нюанс” больше в прошлом.

  35. Дима сказав:

    Я в восторге от этого прибора. Кручу верчу не нарадуюсь. Правда заметил зависимость не сильно приятную – до 10 в сильная разбежность с напряжением на эталоне (БП-7в, АВ-метр -6,77 в) и тд. После 10 вольт – точность приемлемая (БП-10,00, АВ-метр – 10,1 и так до 28,3 вольт все-что выдает мой БП). Я прочитал выше, что это может быть связано с индикатором? Не верю.Также заметил, что “ушли” настройки тока. Вопрос? Получается, что настройки верхнего, нижнего напряжения взаимосвязаны с настройками тока?
    Спасибо.

    • electra сказав:

      Разбежность по вольтам – вполне очевидно – настраивайте делители для обоих диапазонов – R4 и R6. Настраивать нужно подав 9.5…9.8 в для диапазона 10в и 95…98 для 100в соотв. Иначе это не измерительный прибор совсем. Допускается погрешность от силы на 1-2ед младшего разряда. Настройки тока никак не связаны с измерением напряжения. Возможно что-то связано с прогревом – калибруйте на “теплом” устройстве.

  36. Дима сказав:

    Я понял насчет калибровки напряжения. Калибрование или установка нуля при токе, это однократное действие? Зажав кнопку во время включения питания, сразу отпустить, прочитать “вайт”, нажать еще раз и все? Извините, если выразился слишком образно. Спасибо, просто уж очень понравился прибор. А кстати, так как 20 мОм не нашел, поставил кусок шунта из прибора, где-то сантиметра 2, при подстройке пришлось поставить сопротивление около 480 Ком против 240 Ком на схеме – такая величина (480Ком) еще допустима?

    • electra сказав:

      480к вполне нормально, при условии что применили ОУ из тех что я рекомендовал. Калибровка – процедура одноразовая. Точнее я бы делал так: калибровка —> настройка ОУ (коэфф. усиления) на максимально возможном токе —> повторная калибровка —> точная подгонка Ку ОУ при необходимости.

  37. Дима сказав:

    Вообщем танцы с бубнами на диапазоне до 10 в не дали точного результата. Или ближе к 10 вольтам – точнее, зато ближе к 5-6 вольтам – погрешность 0,4 вольта.Вообщем крутил вертел – решил использовать в ЗУ. Там от 11-до 14 вольт надо, а этот прибор в этом диапазоне просто находка. Заметил, что амперметр при активной нагрузке показывает блестяще. Правда, кажется, если совместить питание прибора с питанием нагрузки, то амперметр показывал на 0,3 А вниз, при токе на нагрузке в 1А. Надо исследовать.

    • electra сказав:

      Как-то это все неправильно с вольтметром. 0.4в это не просто много – а очень много У меня разбежность с простеньким, но все таки более-менее породистым Mastech мультиметром не превышает 5…6 мв по всему диапазону 0…10в. Причем настраивал я бы сказал “без фанатизма”. Субъективно мне даже показалось что АЦП у AVR – хуже.
      Рассмотрите такие варианты:
      1. Вариант замены эталонного вольтметра (в том случае если своему не совсем доверяете). Будет реально обидно если причиной всех этих художеств с показаниями вольтметра окажется подсевшая батарейка в мультиметре.
      2. Внимательно просмотрите монтаж, мало ли какие варианты могут быть. Недотравленная дорожка и т.д.
      3. Если использовался какой-то активный флюс хорошо промойте плату.
      4. Не забывайте что ИОН в мелкокалиберных STM8 – это фактически напряжение питания, потому внимательно проконтролируйте качество питания,достаточное количество блокировочных конденсаторов и т.д.

  38. Дима сказав:

    Спасибо, вольтметр отпадает, так как взял у друга за 3 тыс, какой-то супер, заодно повесил любимый мастеч за 90 грн (обидно, один в один показывают).
    Буду копать, искать.Резкий скачет неточности происходит на участке от 7 до 9,8 вольт.О результате доложу (если это интересно).

    • electra сказав:

      Есть одна мысль. Хотя это и есть в статье, но все же повторюсь: проверьте, а лучше замените на другой экземпляр стабилитрон по входу 10в. Обратите внимание на то, что он должен быть 6v2 а не 5v6 и тем более 5v1.

  39. Дима сказав:

    Враг будет разбит,победа будет за нами! Лень и еще раз лень.Так как в Полтаве найти СМД стабилитроны нереально, то плата была разработана под стабилитроны с выводами. А, так как, еще в “кубышке” лежали стабилитроны двуханодные (КС162), то они были туда и поставлены. А так как, потом сверху оделся индикатор, то замена стабилитронов – отодвигалась на самое последнее.Проще было перепаять МК, потом МСР602 (все перепахал-перепаял и промыл), потом радиолюбительский пыл угас, и все ушло в ступор. Победа! Поменял на капиталистические стабилитроны 6V2 – и линейность, как и предполагал разработчик, появилась. С необычайной точностью, до сотой. Хотя 6V2 выдержит ли французский МК?
    Еще раз спасибо. Впрочем, остался вопрос о разности токов_0,3 А на 1А (на БП и АВ-метре) при зарядке аккумулятора. Отдохнем, начнем “догрызать”.

    • electra сказав:

      Хотите я Вам стабилитронов из Бердянска отправлю? http://www.aliot.com.ua/?cat=4518#28801
      Да… Насчет КС162 это жестко… Я начал догадываться, что что-то не так с отечественной радиоэлектронной промышленностью еще в возрасте 13 лет в начале 90-х годов. С того дня как в моей жизни 2SC945 полностью заменил отечественный КТ315 – граблей стало в разы меньше.

      Ну а если серьезно – я думаю что у АЦП STM8 и так есть на входе какие-то стабилитроны, так что это подстраховка. Да и не думаю, что превышением напряжения на 20% можно спалить вход АЦП. Там ведь ток очень сильно ограничен до более, чем безопасного резистором делителя.

      Насчет тока – уточните тип примененного ОУ, а то после КС162 я уже ничему не удивлюсь 🙂

  40. Дима сказав:

    Спасибо,за предложение,пороюсь в магазине вашем куплю больше разного.ОУ применил фирмы микрочип типа Мср602(2).Я же радиолюбитель,потому и плату развел под смд 1210,что есть в ПОлтаве,а Мк заказал в Киеве.

    • electra сказав:

      На не очень скрытую рекламу не обращайте внимания, то я так… Все же стараюсь работу и хобби не мешать. И все таки касаемо ОУ… Таки MCP602 или MCP6022? Далеко не одно и то же, причем отличается как раз именно тем, что даст нелинейность в начале диапазона. MCP602 – rail-to-rail output, MCP6022 rail-to-rail input/output. Здесь очень важен rail-to-rail и там и там, т.е. ТОЛЬКО MCP6022. MCP602 можно применить, если организовать минусовое плечо питания на ICL7660. Но во первых уже поздно, я так понимаю, во вторых уж если и делать -5в, то тогда лучше и ставить OP07, балансировку нуля и программная калибровка нуля и даром не нужна…

  41. Дима сказав:

    Опа и влип я – в магазине убедили, что MCP602 (а именно этот ОУ и впаял) – то что мне нужно. Я поверил авторитетам, не вникая,впаял. Будем менять. Спасибо, что нянькаетесь со мной.

  42. Владимир сказав:

    Уважаемый автор.

    Спасибо за проект, очень помогли. Я пытаюсь освоить STM. Раньше работал (хобби) с PICами. Пишу только на ассемблере. Если можно, отправьте, пожалуйста исходник и мне. С уважением, Владимир.

  43. Олег сказав:

    Здравствуйте!!!
    А пещалку с генератором использовать или нет???
    Если можно то на почту исходники тоже отправить, стараюсь разобраться с СТМ-ами 🙂

  44. борис сказав:

    Здравствуйте
    вопрос по проге STVP можно ли сделать активными кнопки ERASE в настройках по умолчанию она отключена и как я понял опция должна быть доступна если ставиш галочку не чегоне меняется
    по устройству переделал плату поставил многооборотные резисторы 3296 в цепях подстройки напряжения выставляются хорошо а вот ток не очень на малых токах до 1А врет прогнал в протеусе понял что пришунте 0.01 не добьешься линейности поставил 0.04ом впротеусе все ок а на устройстве не очень а на промышленном бп АКИП 1101 от 0.1 до 5 А все отлично но схемы на измерительный узел нет
    борис

    • electra сказав:

      Здравствуйте. По STVP не подскажу, программировал прямо из STVD, да и надобности просто стереть никогда не было.
      Касаемо тока: самый главный вопрос какой ОУ применен? Проводили ли калибровку нуля? Проблемы могут быть и от неправильной разводки, монтажа силовых цепей, материала шунта и т.д. У меня все работает хорошо.

  45. борис сказав:

    оу ad8542 калибровку делал и не раз шунт smd от ноутбука размер 6.3 на 3 мм примерно разводка платы практически не изменилась
    и в протеусе тоже самое http://www.fayloobmennik.net/3419203
    http://www.fayloobmennik.net/3419206

    • electra сказав:

      Протеус с детства не люблю. Да и сильно не бесплатный он. Стараюсь без излишней необходимости не воровать.
      Так или иначе нелинейность – дело рук связки шунт + ОУ, а не ПО микроконтроллера. Если несложно приведите 5-6 замеров формата 20ма = 27ма, 150ма = 162 ма (контрольный амперметр = собранное устр-во), если есть возможность замените ОУ на любой другой, но тоже rail-to-rail input/output. Помнится мне неплохо себя вел MCP6022, точно лучше чем дешевые ADшки. На 100% нелинейность в начале диапазона решается использование ОУ с двухполярным питанием (тогда 0 фактически перемещается в середину рабочего диапазона ОУ). Минусовое плечо проще всего получить применением преобразователя ICL7660. Ради интереса перемеряю завтра и у себя показания…

  46. борис сказав:

    у меня есть нагрузка 10ом шунт сейчяс стоит R040
    б.п аметр
    0.08 A 0.01
    0.09 0.04
    0.10 0.06
    0.12 0.12
    0.14 0.17
    0.16 0.22
    0.18 0.26
    0.20 0.32
    если ток 60ма аметр 0.00 но я не менял Кус оу завтра попробую поменять оу в магазине вроде есть но смотрел в инете пишут что на одном оу получитьлинейнось на малых входных напряжениях тяжело надо на трех или использовать 2 входа на мк 0-1а 1-5 а

  47. борис сказав:

    поставил MCP6022 шунт не менял 40милиом калибранул,на токе 4.8а подстроил
    блок питания устройство
    0.11 0.10
    0.20 0.18
    0.40 0.38
    0.80 0.79
    1.20 1.19
    1.80 1.80
    2.51 2.52
    3.19 3.20
    4.50 4.53
    стало гораздо лучше ещё подстрою в среднем диапозоне поиграюсь с шунтами (пока нет нужных надо разобрать пару ноутов)

    • electra сказав:

      Теперь похоже на правду. 3 знака младшего разряда – довольно неплохой результат. О том что калибровать нужно на максимально возможном токе – писал неоднократно. Обидно другое – истина так и не найдена, не факт что виноват был ОУ, очень похоже на неправильную калибровку.

  48. Владимир сказав:

    Уважаемый автор. Поделитесь, пожалуйста, исходниками. Пишу только на ассемблере. Раньше работал только с ПИКами. Что то никак не могу разобраться с ассемблером STM.Вы бы мне очень помогли. С уважением, Владимир.

  49. Okzim сказав:

    Уважаемый electra!
    Подскажите пожалуйста как прошить STM8. Имеется STM8S-Discovery и установлена программа IAR Embedded Workbench for STMicroelectronics STM8. По STM очень мало информации по сравнению с AVR.

    • electra сказав:

      Здравствуйте, Георгий! Ну насчет IAR не знаю, не пользовался (за ненадобностью). Скачайте родной STVD http://www.st.com/web/catalog/tools/FM147/CL1794/SC1807/SS1747/PF210567?s_searchtype=partnumber. Он относительно небольшой, бесплатный и просто ставится. Там будет ST Visual Programmer, им и прошьете. Никаких фузов и EEPROM как у AVR не будет – просто одна прошивка. Не забудьте подключить все четыре провода SWIM интерфейса и если у Вам Discovery – снять две перемычки с демо-контроллера либо отломать лишнее…

  50. Юрий сказав:

    Уважаемый electra!
    Я так понимаю, проект не коммерческий. Так выложили бы исходники, все бы ковырялись под свои нужды.

    • electra сказав:

      Проект не коммерческий. Иначе бы не было и прошивки. Но насчет исходников у меня свое видение… Не то чтобы я их никому не даю, но в открытом доступе “зашел – скачал” их точно не будет.

  51. Okzim сказав:

    Большое спасибо за помощь!

  52. Виктор сказав:

    Уважаемый electra!
    Попрошу и я исходник, если на АСМе.
    На СИ в инете много чего есть, и примеры тоже. Сам работаю с ПИКами. Сейчас изучаю STM8.
    Нашел немного инфы на русском, от-туда и стартанул. ДШ перевожу on-line.
    Сечас сооружаю вольтметр на 7сег. Мучаю Дискавери на STM8 03k3. среда STVD, ASM.
    Код от ПИКа переделываю под STM. BIN2-10 на 3 разряда, динамику(просто тупые задержки).
    С таблицей была засада. В ПИКах все просто, работаем с програмным счетчиком РС, и нет проблем.
    В STM победить РС не смог, пока мало знаний. Сделал через адреса, привязка жесткая.
    Чую, это как микроскопом гвозди забивать… главное в драку в ввязаться.
    Но все заработало как надо! Начал прикручивать АЦП и тут случился тупик. Пример из ДШ не заоработал.
    В конечном итоге заставил АЦП работать. 2 момента. Тактовая частота по умолчанию 2, в примере 16.
    правое выравнивание, в примере левое.
    После этих танцев АЦП заработал, кривовато, но заработал. Показывает уровни квантования от 0-1023.
    Входной делитель не ставил пока. Кривость заключается в слабеньком мерцании не горящих, в данный момент, сегментов(во всех раррядах). Засветка частотой 5-10 мерцаний в секуду.
    Вот и хочу посмотреть Ваш код для сравнения.

  53. Виктор сказав:

    Ваш комментарий:
    Отпишусь по предыдущему посту.
    1. Вольтметр запустил. Мерцание устранил путем дотошного читания ДШ. Там указано, что порядок считывания ADC_DRL ,ADC_DRH(регистры результата АЦП)зависит от примененного выравнивания.
    2. Программировал через STM8SVL Дискавери (STVP)по 4м проводам, без внешнего БП.
    С внешним работает тоже. Конденсатор С9-1мкф.
    3.По поводу точности. Автор не зря разбил на два диапазона, и поставил подстроечные резисторы для калибровки. Добиться приемлемой точности от 0,1-100В не получилось(у меня один диапазон).
    Поэтому калибровал до 10В.Подстроечник не применял(места нет, плата 15х33мм). Поставил ближайший постоянный, а подстроил программно.
    4. electra, за исходник спасибо

  54. broker сказав:

    Здравствуйте.Платка получилась с первого раза. Печатал на обычной самоклейке А4 с канцтоваров.С STMом первая схема.Скачал две программы ST Visual Programmer и STM32 ST-LINK Utility.Подскажите,кто может, какую лучше использовать и как залить прошивку в МК. Программатор ST-LINK/V2 клон уже приехал,завтра заберу.Не знаю с какой стороны к нему подойти.

  55. broker сказав:

    electra спасибо.На программаторе два разъёма один SWD c пинами TCK,GND,TMS,Vcc другой SWIM с пинами RST,GND, толи IM толи прросто M и Vcc. Подскажите, если не трудно, к каким пинам подключать. Ещё стоит джампер 5 и 3,3в стоит на 3,3в так и оставить?

  56. broker сказав:

    Подключил через SWIM, 3.3v оставил.Подпаялся к пятачкам RST,SWIM,9 ноге(Vcc),7 ноге(GND). Запитываю схему от отдельного источника. Включаю ST Visual Programmer, жму open file загружаю прошивку, жму program current tab or active sectors выдаёт такое сообщение: Cannot comunicate with the tool. Wrong tool selection or check tool power supply or check that a previous swssion is closed. Я так понял что он её не видит или не может подключится. Подскажите пожалуйста знающие люди как это лечится.

  57. broker сказав:

    Ещё вопрос когда подключаешь программатор он должен появится в диспетчере устройств? У меня ничего не появляется.

    • electra сказав:

      Разумеется. STlink programmer или как-то так. Как минимум винда должна написать “найдено новое оборудование”. Если при подключении в диспетчере устройств ничего не происходит – программатор скорее всего мертвый..

  58. broker сказав:

    В диспетчере появился. Обновил дрова.При помощи STM32 ST-LINK Utility обновил версию программатора с V2.J14.S3 до V2.J17.S4 По прежнему не могу подсоединится к устройству. Посоветуйте ещё какие варианты. Надо ли RST подтягивать к минусу?

  59. broker сказав:

    Который день танцую возле программатора. Не могу прошить мк. Не только у меня проблемы с прошивкой. Очень многие люди имею проблемы с прошивкой.Основных проблем две.Первая – косо или неправильно становятся драйвера. В моём случае на старом компе дрова стали без проблем, но к устройству подключится не могу. А на втором, боевом компе, дрова становятся косо, в диспетчере устройств с желтым восклицательным значком. Как я не извивался не смог правильно поставить. Хотя до сноса Деймон тулза становились нормально.На одном форуме вычитал что ST-link конфликтует с виртуальными устройствами. Магия или сглазили. С PICами и AVRами таких плясок не было. Бесит. Так что уважаемый electra STMы не для широкого круга радиолюбителей. Мне очень понравился этот прибор. Со сборкой проблем нет, но с прошивкой полный швах.

    • electra сказав:

      Внимательно изучил Ваши сообщения и обратил внимание вот на что: …Программатор ST-LINK/V2 клон уже приехал,завтра заберу… Клон как понимать? Это китайский “аналог”? Может быть в этом дело и Ваше заключение о том, что STM8 это не для широкого круга не такое уж и справедливое? Имею дома Win7 x64 + TE-STLink (российский официальный клон ориг.ST-Link), на работе Win7 x32 + обломок discovery. На обоих компьютерах есть Daemon Tools, STVD всегда обновлена до последней версии. Никаких проблем с подключением / определением МК никогда не имел. Все всегда работало как часы. Хотя как и не было проблем с PIC, AVR, ARM (J-link) и прочим… Точнее проблемы были, но они всегда сводились к тому что я что-то делаю не так, осознанию и пониманию проблемы.

      • broker сказав:

        “Клон как понимать?” Понятия не имею откуда он родом.Брал отсюда http://www.e-voron.dp.ua/catalog/020921. Вот правильно Вы говорите Что я делаю не так. Возьму с работы ноут с семеркой ещё над ним поиздеваюсь.Дома XP SP3. Продолжаю …

        • electra сказав:

          Это китайская поделка. В китайском интернет магазине стоит 3-4$, соответственно у нас должно стоить 6-7$. Вы явно переплатили. Я не могу утверждать о неработоспособности этого изделия, но до тех пор пока человек которому Вы доверяете не предоставит Вам информацию о том что он точно прошил хотя бы один МК – доверять этому изделию преждевременно.

  60. broker сказав:

    electra благодарю за советы. У меня есть STM32F103C8T6 попробую собрать программатор самодельный. Буду грешить на программатор. Хотел пойти лёгким путём, а получится как всегда 🙂
    Вот цитата с одного форума:
    Натанцевался с STLink-ами до упаду с бубном и без. Короче смысл такой (по крайней мере как я все понял). Софтина, которой вы программируете (STVP, STVD, ST Link Utility), обращается к dll-ке лежащей у нее самой в своих папках. А dll-ки почему то работают не все. Я нашел рабочую STLinkUSBDriver.dll версия 4.2.2.0. Положите ее в папку C:\Program Files\STMicroelectronics\STM32 ST-LINK Utility\ST-LINK Utility или где она там у вас стоит. Должно заработать. А вообще глюкодром конечно выдающийся по программированию STM8 и STM32. STVP до падучей доводит. Я использую его в связке с ST-LINK/v2 для мелкосерийного прошивания. Дак постоянно выдает сбой на ровном месте. Подцепляешься к новому устройству для программирования. Он пишет типа не могу соединиться с таргетом. Проверяешь таргет – всё на месте, ни закороток, ни обрывов. Берешь предыдущий таргет, только что запрограммированный – ОН ЕГО ТОЖЕ НЕ ВИДИТ!!!
    Едем дальше..

  61. Дмитрий сказав:

    а можно как нибудь ассемблерный код получить?

  62. Дима сказав:

    Добрый день.
    Собрал еще раз ваш прелестный девайс. И попался на странном поведении индикатора.
    Например, на входе 11 вольт. Индикатор это и показывает.
    Поменял напряжение, на 12 вольт, а индикатор показывает все те же 11 вольт, пока не клацнеш кнопкой “выбор”- тогда вольты обновятся и индикатор показывает актуальное напряжение.
    Не подскажете, что может быть?
    Спасибо.

    • electra сказав:

      Не подскажу, у меня такого глюка нет. Чаще всего проблемы с настройками делителей…. Калибровать лучше всего на максимальных напряжениях – нижний диапазон напряжением 9.5…9.7в, верхний 95…97 соотв. Подайте на вход, скажем, вольт 7-8 и плавно увеличивайте до 15. Особое внимание обратите моменту перехода 9.99–>10.0в. И еще момент: как понимать “еще раз собрал”? Один раз уже собирали? Проблемы с первым были?

  63. Дима сказав:

    Да я раньше списывался с вами. Проблема была с КС 162 и ОУ.
    Все получилось, когда поставил рекомендованное.
    Эту проблему тоже решил (она сама создалась)
    Оказывается кнопка была замкнута постоянно и от этого все трудности.
    Прозвонил все цепи, наладил – вольтметр песня!
    Правда в младшем разряде так “нервно” пиксели на цифре скачут.
    Не скажете почему?

    • electra сказав:

      Мерехтит думаю из-за сильно частого обновления экрана. Скажу откровенно, этот проект был “пробой пера” на STM8, первое законченное устройство. И откровенно говоря “вылизывать” программу я уже не стал, как в некоторых других проектах. Там бы еще задержку на кнопку увеличить, не знаю как у Вас, но у меня ложные срабатывания порой проскальзывают. Сделаю… Соберусь с мыслями и сделаю.

  64. Виктор сказав:

    Могли бы Вы поделиться исходником прошивки ? Хочу научиться работать АЦП и переделать под контроль 220В.

  65. Артём сказав:

    Здравствуйте. В сети очень мало документированного кода, если бы вы чисто для ознакомления показали часть кода было бы здорово. 10 лет на avr/pic уже прирос…причем я больше на asm.

  66. RusikOk сказав:

    такой бы кто сделал) https://www.youtube.com/watch?v=MI5pDs9OvSU

  67. Demo сказав:

    Собрался сделать ваш приборчик, но есть проблема с незнанием как прошить этот контроллер.
    Есть Mini ST-Link v2.Прошивал и PIC и Atmega, а вот с STM ни разу не имел дело. Пожалуйста, подскажите как подключать, какие пины и как прошить с помощью ST-Link Utility. Не нашел я в интернете своего рода полной информации по этому поводу.

    • kava сказав:

      Так вроде все на плате выведено, протокол на все ST8 один – SWIM, один провод, 4 контакта (SWIM, RESET, GND, VCC)

  68. Demo сказав:

    Спасибо за подсказку! Не ожидал, что этот контроллер так быстро шьется.Секунда и все, прошивка в нем.Приборчик заработал сразу, чему рад! Спасибо Автору! Единственно пришлось с делителем повозится.Напряжение показывает приемлимо. Сразу не сообразил поставить в делителе вместо второго резистора подстроечник smd. Как мне кажется настройка облегчится. Настраивал я с многооборотными подстроечниками в делителе, но так близко подогнать общее сопротивление постоянными резисторами трудновато. По этому и небольшая погрешность. На будущее учел это и плату с разрешения автора подкорректировал под 2 smd подстроечника в делителе напряжения. С настройкой показаний тока пока занимаюсь, жаль времени мало. И прибор можно настроить на идеальные показания, надо только терпение! Еще раз Спасибо!!!

  69. Kooper сказав:

    Добрый день Андрей. К STM пришел с PIC. На PIC пробовал писать на ASM. Получалось. А тут все кругом на С. Будем учить. Очень хочется посмотреть как тут все выглядит на ASM. А сли еще есть и комментарии то как тут пройти мимо. Чем компилите?. Да и вообще в чем разрабатываете. Просьба – поделитесь исходниками. Прошу чисто для изучения. Спасибо.

    • electra сказав:

      Добрый вечер. Смотрел я на PIC, порывался даже попробовать что-то написать – однако насмотрелся на этот гемор с переключением банков – да ну нафиг. Когда пересаживался с AVR ассемблер на STM ассемблер – было такое впечатление, что пересел с отечественной таврии на иномарку. AVR ассемблер в целом чуть проще, прощает больше ошибок. В STM сначала бесила зависимость от регистра, метки разной длины, потом привык. С лихвой компенсируется кучей 16-битных команд, существенно упрощаются конструкции типа: увеличить на единицу двухбайтную переменную. У атмела это было несколько строчек с флагом “С”, тут же это одна строчка. В общем… После ПИКа покажется самолетом. С СИ я тоже никак – на изучение совсем нет времени, да и мозги видать не так заточены. Исходники отправлю, на пару действующих устройств, что есть на сайте. В том числе самодельную библиотеку для HD44780. С комментариями там не густо, но думаю разберетесь. Использую исключительной родной STVD, есть на сайте у STM. Очень легкий, удобный, чем-то напоминает старую-добрую AVR Studio 4.

  70. Юрий С. сказав:

    Здравствуйте Андрей. Давно хочу повторить этот проект, уже года три лежат парочка контроллеров купленных у Вас, дисплейчик и STM8Svl discovery. Наконец пару дней назад вытравил плату с Вашей разводкой, впаял МК и конденсатор на 8-ю ножку, и хотел залить прошивку, но – (_|_). Мои действия по порядку – установил STVD и STVP, подключил к ПК дискавери, он определился как “STM32-STLink”. Отключил, выпаял перемычки, подключил – всё определилось, спаял шлейф для подключения внешнего контроллера, припаял к плате и подключил к дискавери. Запустил STVP, в конфигурации указал “Hardware – STLink”, “Port – USB”, “Pogramming mode – SWIM”, “Device – STM8S103F3”, открыл скачанную ранее прошивку, нажал кнопочку “Program all tabs” и программа выдала ошибку “Cannot communicate with the tool. Wrong tool selection or check tool power supply or check that a previous session is closed” – что я делал не так? В комментариях Вы писали, что нужно подавать внешнее питание, я подал на плату питание от трёх пальчиковых батареек 4,75 вольта – результат тот же. Потом запаял перемычки назад, хотел прочитать из контроллера на дискавери записанную программу – выскочила та же ошибка. Я так понимаю, что STVP не видит мой STLink, подскажите что нужно/можно сделать чтобы всё заработало.

    С уважением Юрий.

    • electra сказав:

      Здравствуйте, Юрий!

      Ну судя по тому, что программа у Вас не видит оба контроллера, то скорее всего проблема с ПО. Попробуйте обновить прошивку самого ST-Link. Лежало оно у Вас давно, а версий много новых повыходило. Запустите из меню “пуск” и папки ST Toolset – “update STLink”. Возможно дело в этом. Там все просто, разберетесь я думаю.

      • Юрий С. сказав:

        Андрей, спасибо за толчок в нужном направлении. При попытке обновить прошивку программа выдала сообщение, что не установлен драйвер ST-LinkUSBDriver, скачал, установил и всё поехало. Контроллер прошил, завтра буду допаивать плату (сейчас на работе), по результатам отпишусь.

        С уважением Юрий.

  71. Юрий С. сказав:

    Здравствуйте, Андрей!
    Хочу сказать спасибо за этот прибор, всё заработало сразу, осталось подстроить показания напряжения и тока. Усилитель тока я делаю выносной, шунт будет на клеммах БП и рядом усилитель.
    Небольшое отступление, мне приглянулся STM8L051F3P6, для “въезда” в STM8 хочу, используя Ваш конструктив, сделать AVметр на четыре разряда. У этого МК 12-ти разрядный АЦП и должно получиться сделать вольтметр до 40,00, и амперметр до 4,000 ампер. К сожалению тяжеловато “въезжать” в программирование этих МК не зная английский. Хотя есть небольшой опыт написания программ под AVR и PIC, но отсутствие документации на русском немного затягивает процесс освоения этих МК. В интернете нашёл несколько ресурсов на которых есть статьи по программированию под STM8, но там, в основном, все примеры на языке “С”, а я пишу на асме “для дома, для семьи”. В связи с этим просьбочка, если не трудно, поделитесь исходником, обещаю использовать только для самообразования и ни в коем случае не для коммерции.

    С уважением Юрий.

    • electra сказав:

      Здравствуйте, Юрий! Хорошему человеку ничего не жалко, коль уж нет былой связи как покупатель-магазин, то хоть исходником поделюсь 🙂 Отправил на почту.

      • Юрий С. сказав:

        Здравствуйте, Андрей! Огромное спасибо за исходники, есть большое желание освоить эти МК, теперь будет легче. Мне тоже очень жаль утраченной связи, несколько раз отоваривался в Вашем магазине, очень устраивала цена и качество обслуживания. Хочу надеяться, что всё наладится.

        С уважением Юрий.

  72. Дмитрий сказав:

    Здравствуйте, Андрей. Начинаю осваивать stm. Возможно и мне прислать исходник этой конструкции? (НЕ в коммерческих целях!)
    Заранее благодарю.

  73. Vlad сказав:

    Здравствуйте, Андрей.
    Подскажите, есть ли перекомпилированая прошивка под STM8S003F3P6?

    • electra сказав:

      Да пробуйте эту и залить… По идее должно работать, там такой чехарды с регистрами как у Атмела нет. Если не сложно отпишитесь по результату, думаю будет полезно. Если не заработает – заставим 😉

  74. Mikola Starik сказав:

    Уважаемый Автор! Хочу повторить Вашу разработку, но в программировании я – полнейший ноль. Пробовал скачать плату и программу – не получается. Просьба помочь пенсионеру. МК и дисплей уже купил.

    • electra сказав:

      Здравствуйте, Николай! Что именно у Вас не получается? Не можете скачать с моего сайта прошивку / плату? Или не получается открыть то, что уже скачали?

      • Михайло сказав:

        По ссилке “прошивка” открывается новая страница с набором букв, но скачивание не начинается.

        • electra сказав:

          То у Вас броузер только архивы “понимает”…. Второй кнопкой мыши —> “сохранить как…” и получите файл на диске. Азы пользования интернетом 🙂

  75. Юрий Су.. сказав:

    Здравствуйте, я с запросом исходника, хочу измерение тока заменить на ACS712, возможно придется подточить интервалы.

  76. Алексей сказав:

    Здравствуйте! Подскажите, пожалуйста, какой программой залить прошивку в МК? Спасибо!

  77. UL7AAjr сказав:

    А вы линейность измерений не проверяли? Что-то в последнее время появились жалобы на линейночть АЦП STM8.

    PS: сейчас программатор для STM8 под SWIM уже можно самостоятельно делать, еcли кому нужено схему, печатку и прошивку программатора (без SWD и JTAG, только SWIM) то обращайтесь, скину. Хотя купить пожалуй дешевле)
    http://pic.radiotech.kz/img/2017-01/01/yb7l25qcprezwb1f4ho17qn39.jpg

    • electra сказав:

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

  78. Sandro сказав:

    Зробив вже четвертий екземпляр ВАметра для саморобного блока живлення. В якості дисплею використав великий індикатор від телефона панасонік(один ряд 16 символів). Виглядає прикольно, і зручно:регулятор напруги буде зноходитись під показометром напруги, а регулятор струму відповідно…. Щоправда є один момент, виглядає все так наприклад: (U= 12.6VI= 0.75A) якби зливаеться, а хотілось би так (U=12.6V I=0.75A) Тіж самі 16 знакомісць,а вигляд був би зручнішим. Чи не знайдете час підкоригувати прошивку? П.С. Графічна шкала аналогового амперметра може бути так як є.

    • Sandro сказав:

      Мається на увазі: 12,6V змістити на одне знакомісце вліво до U=, а І= змістити вправо на одне знакомісце до 0,75А

      • electra сказав:

        Зі зміщенням І буде трохи складно, бо там ще шкала є. А змістити напругу вліво до U – нема питань. Матимете одне вільне знакомісце між V та І. Вважаю цього достатньо для комфортного розрізняння символів. Тримайте прошивку.

        • Sandro сказав:

          Доброго дня! Дякую за оновлену прошивку.Роблю маленький звіт. Спочатку було так: http://s019.radikal.ru/i609/1701/70/1dc3d31e7bdet.jpg і так: http://s020.radikal.ru/i711/1701/fc/46ffb6537356t.jpg. На останній прошивці вийшло так:http://s011.radikal.ru/i316/1701/8d/9cfb9c26df5et.jpg що явно зручніше, хоч і трішки кидається в очі маленька несиметрія, але важливіше те, що амперметр занизив вдвічі покази.На фото напруга і навантаження незмінні.Калібровку амперметра робив.

          • electra сказав:

            Дещо несподівано… Жодних змін що до вимірювання не робилося. Будь ласка скажіть мені скільки вольт на вході АЦП (2 нога МК) у той час коли на екрані 0.36а, або іншу пару вимірювання + відображення з новою прошивкою

            • Sandro сказав:

              На вході десь 0,35В. Міряю стрілочним тестером,але при підключенні покази не змінюються, тобто тестер просадки не дає.

            • Sandro сказав:

              0,5А на екрані,- на вході 0,5В

            • Sandro сказав:

              Повернув попередню прошивку,- показує правильно.Міняв прошивки двічі, на новій занижає

              • electra сказав:

                А повинно бути 0.24в при 0.5а…. Я не даремно питаю про заміри (0.5в це до речі не замір, хотілося б ще як мінімум один знак побачити). Математика: Vref = VCC = 5в. АЦП – 10біт = 1024 значення. 1 значення = 0.00488в на вході. 0.5 на дісплеї = 050 відліків АЦП. 0.5а на дісплеї = 0.244в на вході. Порахуйте, це нескладно. Тож маємо варіанти:
                1. Маєте дуже неправильно налагоджений екземпляр з дуже зміщеним нулем, і одному богу відомою нелінійністю.
                Тут можу тільки порадити налагодження “з нуля”. Або ж рахуйте самі: амперметр каже Вам рівно те, що бачить на вході АЦП.
                2. Маєте якусь чарівну прошивку, де ампери додатково ще діляться на два, тобто маєте верхню планку вимірювання на рівні 5а та фактичну роздільну здатність 9 біт. Нема жодних питань, я це можу влаштувати, але ж рекомендую зробити як у п.1.

                • Sandro сказав:

                  На попередній прошивці міряє правильно і досить таки лінійно. R10=260кОм,Тільки прошиваю останньою прошивкою, то виходить І/2,пробував декілька разів.То ж чомусь поглядаю на п.2, хоча ще взавтра буду гратись, тоді отпишусь.Мій блок живлення буде мати макс струм 3 ампери, тобто я можу і шунтом “згуляти” вдвічі підвишити номінал наприклад. Буду розбиратись. Дякую!

                  • electra сказав:

                    Все, розібрався… Істина як завжди десь посередині. На сайті правильна прошивка, в мене ісходнік в останнє редагувався під мій домашній амперметр, він на 5а, там було 16 усереднень а не 8. Тож… Це як раз те, чому я дуже не люблю редагувати старі проекти. Завжди будуть якісь “нюанси” та навіть в своєму коді двох-три річної давнини розбиратися не дуже… Більше того – немає ніякої можливості перевірити зміни.

                    Все виправив, навіть змістив для симетрії I=. Тримайте.

                    • Sandro сказав:

                      Величезне дякую!!! Не повірите, але я вчора набрав у повідомленні,що може компілювали з чорнового варіанту вихідного коду,та потім затер.Судячи з часу Вашого повідомлення, з мене величезний могрич.До кінця дня повідомлю результат.

                    • Sandro сказав:

                      Все відмінно,показує вірно, та і симетрія радує око. Прошивку можете викласти в шапку, фото відправляю на почту, при бажанні можете теж добавити.Прийдеться тільки придумати підсвітку індикатора.Жаль, що в свій час не нагріб панасоніків, яких на барахолках Києва було безліч, і за безцінь. Дякую!

  79. Петрович сказав:

    Добрый день! 1-Возможно ли в прошивке изменить предел измерения тока до 100А (перенести децимальную точку)? 2-Можно ли у Вас приобрести плату с установленным и прошитым МК?

    • electra сказав:

      Здравствуйте. Точку – можно конечно. А вот платами я к сожалению не торгую.

      • Петрович сказав:

        Доброго дня!(вірніше вечора).Якщо Ви зможете,вишліть будь ласка прошивку зі зміщеною крапкою (99.9А).Зробити плату для мене не проблема,МК STM8S003F3 і програматор ST-Link V2 Mini є у наявності,а навчатися як кажуть, ніколи не пізно.

  80. Максим сказав:

    Добрый день!
    Устройство замечательное! Повторил полностью. Плату только сам развел.
    Напряжение отлично меряет. С током досада. MCP6002. шунт-кусок нихрома(0.025Ом)
    устройство-эталон(простой Mastech)
    0.00-0.03
    0.50-0.53
    1.00-1.03
    1.50-1.52
    2.00-2.02
    2.50-2.51
    3.00-3.00

    Подстраивал подстроичником на 3А. калибровал на нуле тока(может в этом ошибка?)
    что не так может быть? Или это приемлемый результат?
    Спсибо!

    • electra сказав:

      Здравствуйте, Максим! А что Вас смущает? У Вас самый большой разбег три единицы младшего разряда. +-1 ед. – погрешность АЦП, с учетом того, что простой Mastech не бог весть какой эталон – то добавляйте еще одну единицу как минимум. Т.е. теоретически возможно отклонение в две единицы (т.к. имеем ДВА разных АЦП). По факту имеем всего три в реальной жизни. Я считаю отлично. В идеале еще бы проверить на токе 9…9.5а, ну то такое… Особенно если не планируете измерять больше. Ну и спрошу на всякий случай: когда меряли амперметры последовательно включали оба одновременно? Если нет – то весьма плохую шутку могут сыграть китайские провода на щупах мультиметра.

  81. Сергей сказав:

    Изучаю stm8, после долгих раздумий выбрал вольтметр, как первое полезное устройство.
    Много интересного подчерпнул из обоих вольтметров.
    А если вместо 2х цепочек АЦП, одну, а на ещё ножку проца поцепить резистор, который когда она в 0 будет параллельным скажем так R15 и менять коэффициент делителя?

    Как первое устройство, думаю собирать на семисегментном индикаторе(3 или 4 цифры ещё не определился) для удешевления и ставить на все БП, которыми пользуюсь. Сделать кнопочку ток-или напряжение. И платку маленькую как индикатор. Готовый китайский, что по очереди – неудобен и не информативен.
    И возможно кнопочку по циклу: текущее-минимум-максимум с момента включения устройства.
    Кренка по питанию тоже не особо радует, сейчас полно дешёвых микрух с меньшим потреблением или падением на себе. И тот момент, что точность измерения от неё зависит. Видел идею мерять напряжение на внутреннем источнике, пока правда не совсем разобрался на котором, вроде где-то внутри есть 1.22в, а есть и VCAP c 1.8в, и соответственно им по пропорции узнавать сначала размах напряжения АЦП. А потом уже с этим коэффициентом мерять

    • electra сказав:

      1. Про резистор для изменения коэфф. Экономии пинов – 0. Также низкий уровень тоже понятие растяжимое. 0? А может 50мв? А может 100мв? Дополнительный “раздражитель” для точности вольтметра. В общем….
      2. Немного не понял по поводу измерения Vcap и пропорций. Vcap – это всего лишь питание цифровой части. Оно никакое не прецизионное и не регламентирована ни точность ни пропорции. Смысла его мерять – также ноль. Если планируете использовать АЦП – напряжение питания в общем-то все равно какое – 4.8, 4.9, 4.95 или 5.05 – единственное требование – стабильность и отсутствие пульсаций. В этом ключе использование импульсных преобразователей, скажем так, спорно. У СТМ8 покрупнее вход ИОН выведен на отдельную ножку.

  82. Степан сказав:

    Вітаю. Я також розпочав знайомство з STM8. Зацікавила ваша публікація. Прошу вислати вихідний код прошивки
    . Обіцяю не розповсюджувати. Буду дуже вдячний.

Leave a Reply