Измерения | Подскажите схему самодельного вольтомметра с автоматическим выбором предела. |
|
---|---|---|
GM: Есть приличный ацп двойного интегрирования TC500A c N=132000 и стоит в два раза дешевле. Слегка разобрался, как он работает и он мне начинает нравится... |
|
|
DWD: По этому было бы не плохо, если бы Вы, например, составили простенькую программу счёта импульсов на АСМ ;сигнал BUSY подключен к PORTA1 (можно переназначить на любую ногу любого порта) mloop: clr r20 ;приведенный фрагмент может считать импульсы до примерно 10 МГц |
|
|
GM, спасибо, буду разбираться и пробовать... Вопросов пока больше нет, так как я уже забыл, как работает TC500A, по этому нужно думать, что делает Ваш фрагмент. P.S. О! дошло. только что - а куда считаемые импульсы подаются? Если они считаются внутри МК, то откуда брать импульсы для тактирования АЦП? |
|
|
1) И TC500A, и ICL7135 работают одинаково. Они выдают импульс на ноге BUSY, длительность которого пропорциональна измеряемому напряжению (с учётом вычета числа 10000). 2) Само собой разумеется, что импульсы должны подаваться на вход CLOCK IN мксх ICL7135 и на вход таймера1 МК. Практичнее выдавать частоту наружу МК и использовать ее же для тактирования таймера. 3) Добавлю, что в приведенном выше фрагменте после получения результата надо из содержимого регистров r25-r24-r23-r22 вычесть содержимого регистров r21-r20-r19-r18, а затем уже вычесть 10000. Например, так sub r22,r18 Теперь в регистрах r25-r24-r23-r22 будет разница Ткон - Тнач в единицах импульсов счёта. Теперь можно вычесть 10000. Попробуйте сделать сами. |
|
|
GM: 1) И TC500A, и ICL7135 работают одинаково. Они выдают импульс на ноге BUSY... У TC500A нет сигнала BUSY. Есть два входа управления, от комбинации уровней на которых зависит фаза работы (интегрирование, деинтегрирование, обнуление) и выходной сигнал CMPTR, по которому можно вычислить полярность измеряемого сигнала и начало-конец интегрирования. Но с хитрой логикой работы. По нему просто так не вычислишь начало и конец работы, так как он переходит из одного состояния в другое либо в начале интегрирования, либо в начале деинтегрирования в зависимости от полярности измеряемого сигнала. Ну да с этим АЦП пока не будем разбираться. GM: 2) Само собой разумеется, что импульсы должны подаваться на вход CLOCK IN мксх ICL7135 и на вход таймера1 МК. Практичнее выдавать частоту наружу МК и использовать ее же для тактирования таймера. Вот тут не понятно - с какого порта МК брать сигнал CLOCK для тактирования АЦП и на какой порт МК его же подавать для соединения со входом таймера 1? Известно только, куда подавать сигнал BUSY - PORTA1 |
|
|
1) Самое простое: взять кварц 16 МГц в качестве тактового генератора. Эту частоту вывести на ногу CLKO (для атмега328), предварительно поделив на 64 (регистр системного предделителя CLKPR) - будет 250 кГц. Эту же частоту подать на таймер1, предварительно поделив на 64 в прескалере таймера1 (рис.21-2 документ 42735В). 2) Более общий подход - таймер1 имеет вход Т1 и выходы ОС1А, ОС1В. Таймер0 имеет вход Т0 и выходы ОС0А, ОС0В. Можно использовать вход одного и выход другого и наоборот. Делитель первого 2-65535, второго 2-255. Можно выбрать практически любую частоту. 3) Верно, у TC500A нет сигнала BUSY, есть нога CMPTR OUT. Но по большому счёту принцип измерения остается тот же самый. Формула для измеряемого напряжения Vin = Vref * Tdeint / Tint. Причем, если Tint в ваших руках, т.е. вы можете в некоторых пределах варьировать его для оптимизации времени интегрирования, то процедура измерения длительности Tdeint точно такая же как и длительности сигнала BUSY. Вот и вся разница. |
|
|
GM: взять кварц 16 МГц в качестве тактового генератора. Эту частоту вывести на ногу CLKO (для атмега328), предварительно поделив на 64 (регистр системного предделителя CLKPR) - будет 250 кГц. Ножка CLKO - это порт PB0 атмега328. Её я могу использовать. Мне нужно подать на эту ножку сразу 16МГц или сначала поделив её на 64 внешним делителем на микросхемах? GM: Эту же частоту подать на таймер1, предварительно поделив на 64 в прескалере таймера1 Тут я вообще ни чего не понял.. GM: 2) Более общий подход - таймер1 имеет вход Т1 и выходы ОС1А, ОС1В. Таймер0 имеет вход Т0 и выходы ОС0А, ОС0В. Можно использовать вход одного и выход другого и наоборот. Делитель первого 2-65535, второго 2-255. Можно выбрать практически любую частоту. Так это нужно какую-то подпрограммку писать? Но я не умею. Я не программист... С пунктом 3 (TC500A) вроде всё понятно. Но это дело будущего. |
|
|
Хорошо, пишем программу, вот кусок ldi r16,32 ; Сигнал с этой ноги надо подать на ICL7135. Теперь подадим те же 250 кГц на вход таймера1, вот этот кусочек ldi r16,0x03 ; Теперь можно начинать измерение импульса BUSY, программку я приводил выше. |
|
|
Спасибо, буду пробовать. |
|
|
а зачем такой мощный мк с внешней ацп? тока изза флеши здоровай? |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |