Успех – это умение двигаться от одной неудачи к другой не теряя энтузиазма.
Уинстон Черчилль

Меню навигации для мобильных

Вольтамперметр, 7 сегментные индикаторы, SPI

Автор zenon, 29 Сен., 2020, 22:18

« предыдущая - следующая »

zenon

Ну вот, а разговор был именно про мой вариант оверсэмпла, ну да ладно.
Модуль именно с TM пришлось купить, так как с белыми индикаторами и дешевле чем отдельно индикаторы покупать.
Один модуль с дисплеем 0,36 дюйма и TM = 86 руб. Так что микросхема в довесок :)
Не охота конечно распаивать, но была мысль...
Двигаться надо в сторону stm, хорошо бы у нас одинаковые камни были бы. У STM32F0 отличия свои есть, и я уже не раз напоролся на них. Макросы из библиотеки cmsis тоже разные, хотя похожие. Хотя ты сейчас сразу по даташиту начнёшь с asm и регистрами... тогда я тут пока пас...  :)
REF198 у меня пока так и нет.
↓ спойлер ↓
Сейчас на столе лежит трансформатор 2 обмотки по 28 вольт переменки на 3 ампера 1.5 каждая. Те наверное будут в параллель.
Думал ПиДБ очередной прикрутить, но спрошу у тебя вариант простой и более-менее готовый может есть?
[свернуть]
https://github.com/minamonra/

Slabovik

Ну я же сразу говорил, что я всегда делаю по-своему :) Вариант "немца" я и не думал вставлять т.к. изначально окучивал кольцевой буфер. Мне нравится как он работает. Был бы вариант с малым ОЗУ (как в PIC - там 64 байта ОЗУ типично, а 128 - роскошно), то тогда да.

В сторону STM - да, но надо ли бросать недоделанное? Как я понимаю, тут вопросов ещё куча. Я тут Си подтягиваю (весь экран уже исплёван...) в надежде получить от него некий изящный код... Надо бы довести, чтобы оно работало да попробовать пару фичек, чтобы знать, надо ли оно. А потом и платформу можно поменять. Честно говоря, для измерителя быстродействия меги много-много излишне, не говоря уже про STM. А у STM я действительно хочу asm пощупать, плюс у него ОЗУ большое и памяти программ ещё больше. Так и тянет на что-нибудь графическое.

ПиДБ я в железе не собирал т.к. ужаснулся от того, как он сделан. В симуляторе он показывает ужас, некоторые версии (из последних) вообще не должны работать (и похоже, так оно и есть потому что куча жалоб с симптомами точно как в симуляторе). Из хорошего могу кивнуть в сторону польского блока на трёх ОУ, но с парочкой доработок (на коте, кстати, я показывал, можно здесь завести темку и повторить) и ограничением в 25-26 вольт на выходе.
Общением на форуме подпитываю свою эгоистичную, склонную к самолюбованию сущность.

zenon

Заведешь тогда тему по польскому варианту?
Кстати я его повторял раз .... эм не помню ну 4 точно. Раздал все. И почему-то мне там опора не нравилась, не помню уже.
https://github.com/minamonra/

Slabovik

#178
Целый день сегодня провёл за макетом. Думал, дел наворочу, а нет... практически совсем ничего, ну то есть абсолютно. Выяснял различные способы подключения масташбирующих усилителей, зависимости и т.п. Понял, что абсолютно универсального получить не выйдет, поэтому придётся прнять какое-нибудь, но волевое решение: либо так, либо эдак.

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

zenon

Так скоро точно будет танк, ну зачем ещё один МУ для опоры...
↓ спойлер ↓
Подобие корпуса для БП из фанеры делаю из фанеры пока, надоело бескорпусное безобразие...
[свернуть]
https://github.com/minamonra/

Slabovik

Потому что у простых лабораторников есть извечные проблемы: а) невозможно установить ток ограничения, не сделав короткое замыкание на выходе; б) невозможно понять, какое напряжение установлено на выходе, если блок находится в режиме ограничения тока.

Измерение опорников решает эти вопросы без необходимости устраивать к.з. или обесточивать нагрузку. Всего-то задействовать два лишних входа...
Общением на форуме подпитываю свою эгоистичную, склонную к самолюбованию сущность.

zenon

Не понял логики, опорное мы и так знаем.
https://github.com/minamonra/

Slabovik

Нет, не знаем. Опорное измерителя - это не то опорное, которое хотим знать :) Это то опорное, относительно которого измеряем. А в лабораторнике напряжение и ток задают его собственные опорные. Если измерить их, будем иметь ответы на два пункта выше без необходимости рвать-коротить выходные цепи.

зы: в индикаторе у меня слайдеры (столбики из 10 светодиодов) для опытов. Думаю попробовать на них показывать, в какую сторону происходит движение измеряемой величины. Иногда за мельтешением цифр это сложно понять.

Мой недоделанный код хоть откомпилился?  Там в нём логические косяки есть, ну и недоделан конечно. Гашение незначащих нулей, расстановка запятых - это то, что сразу бросается в глаза.
Общением на форуме подпитываю свою эгоистичную, склонную к самолюбованию сущность.

zenon

Ну тогда требую пояснений что такое RefC+ Ref- RefV+, где располагается ОУ МУ, так сказать огласите весь список! :) :) :)
Да, код собирается нормально, 1606 байт говорит, но залить пока не могу.
https://github.com/minamonra/

Slabovik

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

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

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

У меня ещё октрытым остался вопрос о частоте среза мастабирующих усилителей. Полагаю, её нужно выбирать достаточно низкой, однако чтобы можно было обойтись керамическими конденсаторами - они до 10 мкФ легкодоставаемы с распая...

Интересно, но у меня код собирается более коротко 1434 байта. Atmel Studio, настройки "по умолчанию".
Вначале собирал прямыми переменными, но передавать в процедуры ссылкаи оказалось и компактнее и быстрее.

А, да... я уже говорил, что кварц у меня сейчас 12 МГц, на схеме указан 14,318 МГц, у тебя 16 МГц, так что возможно надо будет константы для таймеров/периферии посчитать. И там в PortD кое-что плюётся (найдёшь), может конфликтовать с UART...
Общением на форуме подпитываю свою эгоистичную, склонную к самолюбованию сущность.

zenon

На той схеме, которая у меня (1902) Ref/Set-V/Set-I только, они?
По размеру - это у меня -O2 стоит, сейчас попробовал -Os, получилось 1442 байта.
ы. Аааа всё дошло - ты хочешь в обоих режимах работы БП знать какое напряжение/ток заданы независимо от того что на выходе.
https://github.com/minamonra/

Slabovik

Да, именно.
До сих пор этот вопрос, как мне известно, никто не решал таким способом. По крайней мере, я не видел таких конструкций. Те блоки, к которых эту возможность можно было наблюдать, работали немного по-другому: у них цифровое управление и задающие напряжения выставлялись при помощи ЦАП с соответствующей индикацией. Примерно так же, как в радиоприёмнике на микросхеме из соседней темы: дал в ЦАП код, его же и показал на экранчике. Но хочется решить это для "аналоговых" блоков.

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

zenon

Ну это же не самоцель сделать так, как никто не делал. :)
Вообще конечно интересен вариант задатчика напряжений ЦАПом, потом их измерение и корректировка на выходе, но не на этом этапе.
https://github.com/minamonra/

Slabovik

Разве это плохая цель? Ведь повторять чужое 1:1 уныло и грустно, ведь вся суть именно в придумывании...
Общением на форуме подпитываю свою эгоистичную, склонную к самолюбованию сущность.

zenon

Опять - таки повторять что? И повторять как? А упираться и делать лишь бы было впервые...
Есть много схем которые хотел бы повторить, несмотря на то, что известны давно.
Вот например лежат TDA7040T и КР174ХА34... их бы в утиль уже, а интересно было бы.
↓ спойлер ↓
оффтоп:
Тут схему с кнопкой изобразил. Может будут какие рекомендации?
[свернуть]
https://github.com/minamonra/

zenon

#190
В общем помучал модуль tm1637, - это что-то, процитирую:
Цитата: undefinedПоследовательный интерфейс, разработанный для этого контроллера, является творческой переработкой широко известного "квадратного" I2C. Отличия состоят в других названиях линий, обратном порядке следования битов, и в отсутствии адреса устройства.
Хотя я его завёл на stm, ну как всегда творческая интерпретация взятого из сети материала. :)
Из неприятного - виснет i2c, не пойму почему, наводки/ёмкость... подключен напрямую к ногам мк.
Питание должно быть таким же как и у контроллера, ну или уровни выравнять, если питать от 5-ти вольт и управлять с контроллера 3.3 вольта - не работает.
https://github.com/minamonra/

Slabovik

а) согласование уровней обязательно (см. "конструкцию" входа той же STM и представь, что получается, когда туда +5 с чьего-то выхода придёт)
б) скорость. TM не особо тороплива, 500 кГц для неё предел, выдерживать же нужно типовые 400 кГц.
Общением на форуме подпитываю свою эгоистичную, склонную к самолюбованию сущность.

zenon

В рабочем варианте i2c у меня 100kHz.
DS1Z_QuickPrint2.png - хардварный i2c stm32f030.
DS1Z_QuickPrint3.png - софт вариант, но пока связи с tm1637 нет, где-то у меня не получается.
Но фронты дрыганьем ног получаются лучше.
https://github.com/minamonra/

Slabovik

#193
В хардверном варианте однозначно велик резистор подтяжки - нужно уменьшать. Ещё и вопрос, что там навешано у модуля, в типовой схеме я конденсаторы 100 пФ наблюдал, что до 400 кГц и 10 кОм подтяжки более-менее нормально, а что здесь?
p.s. Забыл вставить ссылку. Исправляю недоразумение: https://radioprog.ru/post/198
Общением на форуме подпитываю свою эгоистичную, склонную к самолюбованию сущность.

zenon

Обе картинки модуль напрямую к пинам stm.
На модуле два резистора по 10k к питанию.
При прзвонке сопротивление +5 и DIO = 5k, +5 и CLK = 10k.
Схема типовая, прикрепил, только без клавиатуры.
Вообще не нравятся они мне в итоге, главное адреса нет, значит на одну линию их никак.
https://github.com/minamonra/

Slabovik

А ёмкости? Можно просто попробовать их убрать и посмотреть, как изменится хардверная осциллограмма.
Также интересно, как соотносятся фронты импульсов, а на такой мелкой не видно. Видно только, что там не 100 кГц, а раза в полтора больше (это не проблема, конечно).
10к и 100 пФ (+15 пФ на входе самой микросхемы) дают постоянную времени немного больше 1 мкс, что даже для 400 кГц вполне нормально (из этого типовые номиналы и указаны на схеме). Но если там что-то "лишнее" на проводах, оно может рождать сюрпризы. Потому внимание каждой мелочи...

Безадресная - это конечно косяк, так, микросхемка на "побаловаться". Уж тогда интереснее MAX7219 заюзать...
Общением на форуме подпитываю свою эгоистичную, склонную к самолюбованию сущность.

zenon

Но тут же при одинаковых равных осциллограммы, те просто перезаливаю прошивку, в одном случае хардверный i2c, и не снимаю проводов - софтверный, не трогая настройки осциллографа.
https://github.com/minamonra/

Slabovik

А на софтверном ты выходы в режим "открытый коллектор" ставишь?
С другой стороны, открытый коллектор для "чистого выхода", когда на нём точно не будет никакого "чужого" сигнала (в общем случае у I2C 'это не так), вполне допустимо не иметь, а иметь самый обычный двутактный выход. Что у софтверного, похоже, и есть.

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

zenon

Ну да, они родимые - 10 нан вместо 100 пик. Удивительно что работало.
Вот сейчас стало, вообще без ёмкостей.
ы. Тут уже два раза плату вольамперметра "чинил", оба раза smd конденсаторы превращались в ~100 Ом.
https://github.com/minamonra/

Slabovik

Совсем другое дело.
Там, похоже, общий провод высокого сопротивления ещё маленько портит дело, но вроде к ложным не должно приводить (во время смены одного сигнала есть провал и на втором, хорошо видно в момент времени "начало передачи").

зы: во время 'Ack' TM "сажает" линию Data на землю, так что двутактный вывод на эту линию применять нельзя - обязательно должна быть типа "общий коллектор".
Общением на форуме подпитываю свою эгоистичную, склонную к самолюбованию сущность.