USB Tester
Dec. 7th, 2016 11:05 amНамедни паял свой USB Tester. Т.е. маленький гаджет вольтметер-амперметер для USB типа этого:

Собственно никакой острой проблемы нет. Мне просто захотелось помастерить.
Пoэтому выяснились по ходу некоторые любопытные проблемки... Кому интересно...
Китайский гаджет за 1$ сделан разумеется примитивно.
Измерение тока в виде падения напряжения на шунте
напрямую оцифровывается микроконтроллером.
Ничего особенного, но малые токи < 50мА он меряет
с ошибкой в 50-70%. Т.е. выдает практически лажу.
Потому, что падение маленькое - на уровне кванта АЦП.
Чтобы это поправить в консерватории я добавил себе
операционный усилитель, который усиливает это падение раз в 20 раз,
и таким образом повышает точноть оцифровки.
Но все равно проблема не совсем выветрилась,
так как я использовал всего лишь 8-bits АЦП и
первый попавшийся под руку OP AMP - KA358.
Неспециализированный услилитель около нуля
имеет большую нелинейность. Т.е. хотелось бы найти
правильный чип для этого дела, но не знаю какой.
Забавное решение проблемы - в программе для малых токах
я сделал кусочно линейную апроксимацию нелинейности.
Стало гораздо лучше, но все равно сэрце перфекциониста тем не успокоилось.
Ещё интересные проблемки - это сделалть разные гибкие програмные таймеры
из основного системного 16-битного таймера. Тут два препятствия -
не хотелось связываться с С++, а только на С.
И к тому же память у чипа крошечная.
Как там у Довлатова - один широкий жест грозил катастрофой.
Когда у контроллера 2 кБ памяти и 100 байтов оперативки,
никакой системы и никаких multithreading. :)
Забудь всяк сюда входящий.
Но и прелесть в том, что нужно изобрести самокат
и сделать адакватный подход в этих жестких ограничениях.
Это как все равно, что поставлена задача запустить ракету в космос, но
имеется только самовар и кувалда...
Основой вывод - хочется попробовать более подходящий OP AMP чип.
P.S. Забыл о простом, очевидном решении - сделать отрицательную шину питания
для OP AMP, чтобы вывести из нелинейного режима.

Собственно никакой острой проблемы нет. Мне просто захотелось помастерить.
Пoэтому выяснились по ходу некоторые любопытные проблемки... Кому интересно...
Китайский гаджет за 1$ сделан разумеется примитивно.
Измерение тока в виде падения напряжения на шунте
напрямую оцифровывается микроконтроллером.
Ничего особенного, но малые токи < 50мА он меряет
с ошибкой в 50-70%. Т.е. выдает практически лажу.
Потому, что падение маленькое - на уровне кванта АЦП.
Чтобы это поправить в консерватории я добавил себе
операционный усилитель, который усиливает это падение раз в 20 раз,
и таким образом повышает точноть оцифровки.
Но все равно проблема не совсем выветрилась,
так как я использовал всего лишь 8-bits АЦП и
первый попавшийся под руку OP AMP - KA358.
Неспециализированный услилитель около нуля
имеет большую нелинейность. Т.е. хотелось бы найти
правильный чип для этого дела, но не знаю какой.
Забавное решение проблемы - в программе для малых токах
я сделал кусочно линейную апроксимацию нелинейности.
Стало гораздо лучше, но все равно сэрце перфекциониста тем не успокоилось.
Ещё интересные проблемки - это сделалть разные гибкие програмные таймеры
из основного системного 16-битного таймера. Тут два препятствия -
не хотелось связываться с С++, а только на С.
И к тому же память у чипа крошечная.
Как там у Довлатова - один широкий жест грозил катастрофой.
Когда у контроллера 2 кБ памяти и 100 байтов оперативки,
никакой системы и никаких multithreading. :)
Забудь всяк сюда входящий.
Но и прелесть в том, что нужно изобрести самокат
и сделать адакватный подход в этих жестких ограничениях.
Это как все равно, что поставлена задача запустить ракету в космос, но
имеется только самовар и кувалда...
Основой вывод - хочется попробовать более подходящий OP AMP чип.
P.S. Забыл о простом, очевидном решении - сделать отрицательную шину питания
для OP AMP, чтобы вывести из нелинейного режима.