ReadMe.txt 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. ** Проект VAPC-meth **
  2. * Измеритель напряжения/тока/мощности/ёмкости *
  3. Немогу никак определиться с диапазонами.
  4. Думал сначал сделать по два диапозона на напряжение и ток, но что-то мне эта
  5. идея разонравилась. Опять же, измерять большие напряжения/токи не особо часто
  6. приходится. Напряжения в основном до 20 вольт, токи - до пары ампер.
  7. Тем более, так как это измеритель в конкретное устройство, то нужно под него и
  8. подстраиваться.
  9. Будет по одному диапазону на ток и напряжения.
  10. нужно сделать пару кнопок.
  11. сделать ввод Кд делителя напряжения умноженного на 1000,
  12. и сопротивление шунта * Ку услителя тока * 1000.
  13. Далее в программе при вычислениях - получили код ацп, перевели в напряжение,
  14. умножили на 1000 и поделили на коэффициент.
  15. Ох и здоровая (85х40мм) плата получилась...
  16. можно попробовать разбить на две -- на одной индикатор и кнопки, на второй всё
  17. остальное. получится две платы ~ 45х40 мм.
  18. вариант A -- поменял входной разъём.
  19. вариант B -- поменял компановку, плата стала 51х47 мм.
  20. вариант C -- убрал кварц, добавил двухцветный светодиод, плата стала 49.53 x 46.67 мм.
  21. думаю последний вариант вполне неплох -- мне даже нравится :-)
  22. можно использовать в качестве окончательного.
  23. только вот нормы 0.4/0.17 -- можно пробовать фоторезистом.
  24. по софту пока идей нету :-)
  25. SVN-инит 2014.12.29
  26. появилась мысль -- сделать транзисторный ОК выход, например для управления
  27. релюхой. хотя если брать ардуиновское реле -- то там нужен просто выход.
  28. реле для управления нагрузкой -- можно сделать тот-же зарядно-разрядный
  29. автомат.
  30. ===
  31. 2014.12.30
  32. вывел ещё два вывода на колодку.
  33. ---
  34. 2015.05.14
  35. добавил скелет проекта, makefile, C::B проект.
  36. ---
  37. 2015.05.15
  38. настройка SPI.
  39. должно вывести 0-7 на индикаторы.
  40. ---
  41. 2015.05.18
  42. добавил RTOS, перенёс туда timing_delay, задержка на 4-ом таймере 1 мс,
  43. обработчик таймера перенёс в RTOS.
  44. должно вывести 0-7, через 5 сек 8-f, и так по кругу.
  45. ---
  46. 2016.03.23
  47. Проект уже на git.
  48. Закончил паять (начал вчера), прошил.
  49. И тишина...
  50. Попутно исправил в схеме некоторые номиналы.
  51. Шунт на 0.1 -- не влезет по мощности, использовал 0.05 Ом.
  52. На плате есть мелкие огрехи, но самый конкретный косяк -- не те индикаторы.
  53. По факту использовал корпуса 3-х символьных 7.62 мм. Втулил свои 4-х символьне
  54. 9 мм. подогнув выводы, но кнопки и светодиод не влезли.
  55. Исправил дефайны индикаторов.
  56. Осцилом ничего не увидел на выводах SPI, нужно искать.
  57. Почитал даташит на тему SPI, поправил свой код.
  58. ---
  59. 2016.03.24
  60. Так-как по прежнему тишь и глухомань, поднял проект в IAR-е и полез в
  61. отладку. Всё застряло где-то в Delay - похоже на проблемы с таймером.
  62. Таки да, забыл включить тактирование таймера -- похоже потерялось при
  63. переносе инициализации то туда, то сюда...
  64. Повторяем заповедь -- "Часы, ноги, перефирия".
  65. Вобщем, SPI работает. Проблема была в том, что токозадающий резистор для
  66. MAX нужно подключать на +5В, а у меня он был на земле. Напаял навесом.
  67. Картинка появилась, но на индикаторах какой-то бред.
  68. Исправил коды символов. Исправил позиции индикаторов.
  69. Вылезло два момента -- неправильно запаял индикаторы, собирался красный
  70. вниз, под ток, а жёлтый вверх под напряжение. В итоге запаял наоборот. Так
  71. ещё и на схеме они местами попутаны, так как на плате DS1 внизу, а DS2
  72. вверху. Исправил схему и позиции индикаторов под факт.
  73. Добился картинки. Похоже тут какой-то бешенный оптимизатор -- выкинул нах
  74. похожую функцию. Нужно учесть на будущее.
  75. ---
  76. Пора браться за ADC.
  77. С учётом входного сопротивления канала напряжения в 100 кОм,
  78. на частоте 16 МГц нужно использовать 384 цикла измерений,
  79. а на частоте 8 МГц -- 192 цикла.
  80. Формула расчёта (AN2834 стр. 25) = (циклы / (f_adc * C_adc * ln(2^N+1)) - 1 кОм
  81. ln(2^13) = 9,01091334728
  82. C_adc = 16 * 10^-12, т.е.:
  83. циклы/(f_MHz * 0.00016 * 9,01091334728) - 1 == кОм
  84. С канала тока, по идее, можно мерять на любой скорости.
  85. ---
  86. 2016.03.25
  87. Factory_VREFINT у меня == 0x7E, т.е. полное значение 0x067E == 1662
  88. Если это мерялось при 3В, то получается -- 1.218 В
  89. Предварительный успех -- читаю три канала АЦП и ПДП складывает их в
  90. память, преобразовываю и вывожу на индикаторы. Запуск АЦП каждые 10 мсек
  91. тригером от Т2. Настройка Т2 пока заклинанием -- понимания нету.
  92. На очереди -- усреднение результатов, вычисление напряжения питания через
  93. опорное напряжение.