** Проект VAPC-meth ** * Измеритель напряжения/тока/мощности/ёмкости * Немогу никак определиться с диапазонами. Думал сначал сделать по два диапозона на напряжение и ток, но что-то мне эта идея разонравилась. Опять же, измерять большие напряжения/токи не особо часто приходится. Напряжения в основном до 20 вольт, токи - до пары ампер. Тем более, так как это измеритель в конкретное устройство, то нужно под него и подстраиваться. Будет по одному диапазону на ток и напряжения. нужно сделать пару кнопок. сделать ввод Кд делителя напряжения умноженного на 1000, и сопротивление шунта * Ку услителя тока * 1000. Далее в программе при вычислениях - получили код ацп, перевели в напряжение, умножили на 1000 и поделили на коэффициент. Ох и здоровая (85х40мм) плата получилась... можно попробовать разбить на две -- на одной индикатор и кнопки, на второй всё остальное. получится две платы ~ 45х40 мм. вариант A -- поменял входной разъём. вариант B -- поменял компановку, плата стала 51х47 мм. вариант C -- убрал кварц, добавил двухцветный светодиод, плата стала 49.53 x 46.67 мм. думаю последний вариант вполне неплох -- мне даже нравится :-) можно использовать в качестве окончательного. только вот нормы 0.4/0.17 -- можно пробовать фоторезистом. по софту пока идей нету :-) SVN-инит 2014.12.29 появилась мысль -- сделать транзисторный ОК выход, например для управления релюхой. хотя если брать ардуиновское реле -- то там нужен просто выход. реле для управления нагрузкой -- можно сделать тот-же зарядно-разрядный автомат. === 2014.12.30 вывел ещё два вывода на колодку. --- 2015.05.14 добавил скелет проекта, makefile, C::B проект. --- 2015.05.15 настройка SPI. должно вывести 0-7 на индикаторы. --- 2015.05.18 добавил RTOS, перенёс туда timing_delay, задержка на 4-ом таймере 1 мс, обработчик таймера перенёс в RTOS. должно вывести 0-7, через 5 сек 8-f, и так по кругу. --- 2016.03.23 Проект уже на git. Закончил паять (начал вчера), прошил. И тишина... Попутно исправил в схеме некоторые номиналы. Шунт на 0.1 -- не влезет по мощности, использовал 0.05 Ом. На плате есть мелкие огрехи, но самый конкретный косяк -- не те индикаторы. По факту использовал корпуса 3-х символьных 7.62 мм. Втулил свои 4-х символьне 9 мм. подогнув выводы, но кнопки и светодиод не влезли. Исправил дефайны индикаторов. Осцилом ничего не увидел на выводах SPI, нужно искать. Почитал даташит на тему SPI, поправил свой код. --- 2016.03.24 Так-как по прежнему тишь и глухомань, поднял проект в IAR-е и полез в отладку. Всё застряло где-то в Delay - похоже на проблемы с таймером. Таки да, забыл включить тактирование таймера -- похоже потерялось при переносе инициализации то туда, то сюда... Повторяем заповедь -- "Часы, ноги, перефирия". Вобщем, SPI работает. Проблема была в том, что токозадающий резистор для MAX нужно подключать на +5В, а у меня он был на земле. Напаял навесом. Картинка появилась, но на индикаторах какой-то бред. Исправил коды символов. Исправил позиции индикаторов. Вылезло два момента -- неправильно запаял индикаторы, собирался красный вниз, под ток, а жёлтый вверх под напряжение. В итоге запаял наоборот. Так ещё и на схеме они местами попутаны, так как на плате DS1 внизу, а DS2 вверху. Исправил схему и позиции индикаторов под факт. Добился картинки. Похоже тут какой-то бешенный оптимизатор -- выкинул нах похожую функцию. Нужно учесть на будущее. --- Пора браться за ADC. С учётом входного сопротивления канала напряжения в 100 кОм, на частоте 16 МГц нужно использовать 384 цикла измерений, а на частоте 8 МГц -- 192 цикла. Формула расчёта (AN2834 стр. 25) = (циклы / (f_adc * C_adc * ln(2^N+1)) - 1 кОм ln(2^13) = 9,01091334728 C_adc = 16 * 10^-12, т.е.: циклы/(f_MHz * 0.00016 * 9,01091334728) - 1 == кОм С канала тока, по идее, можно мерять на любой скорости. --- 2016.03.25 Factory_VREFINT у меня == 0x7E, т.е. полное значение 0x067E == 1662 Если это мерялось при 3В, то получается -- 1.218 В Предварительный успех -- читаю три канала АЦП и ПДП складывает их в память, преобразовываю и вывожу на индикаторы. Запуск АЦП каждые 10 мсек тригером от Т2. Настройка Т2 пока заклинанием -- понимания нету. На очереди -- усреднение результатов, вычисление напряжения питания через опорное напряжение.