настройка макроса АЦП

PIC версия программы(разные темы)

Re: настройка макроса АЦП

Сообщение Sergey (Sergey) » 23 дек 2015, 16:23

по формуле ACQUISITION TIME
там правда по расчетам получилось где-то 3,6мкс.
Но когда я просматривал темы, решением ацп по форуму, Ты где-то писал, что 1мкс это приблизительно 14мкс в реальности.
Может я неправильно понял это, может это кдругому относилось.
Тогда нужно поставить задержку 4мкс.
Ник: Sergey
Имя: Sergey
Специалист
Специалист
Информация о пользователе

Re: настройка макроса АЦП

Сообщение mim (mim) » 23 дек 2015, 16:28

Sergey писал(а):1. по формуле ACQUISITION TIME там правда по расчетам получилось где-то 3,6мкс.
2. Но когда я просматривал темы, решением ацп по форуму, Ты где-то писал, что 1мкс это приблизительно 14мкс в реальности.
3. Может я неправильно понял это, может это кдругому относилось.
4. Тогда нужно поставить задержку 4мкс.

1. Покажи как ты считал и по какой формуле...
2. Тоже хотелось бы глянуть где и почему я так писал...
3. За два года, я думаю, что можно было бы найти время и понять к чему все относится...
4. Так какую задержку рекомендует ДШ?

Кстати, ты вставил
Код: выделить все
delay_us(1); // После окончания преобразования необходимо выдержать паузу не менее 2Tad перед началом нового преобразования

К чему я ее рекомендовал? Ну, и если это 2Tad, то чему оно должно быть равно?
И самое главное, почему здесь это не нужно?
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе

Re: настройка макроса АЦП

Сообщение Sergey (Sergey) » 24 дек 2015, 09:24

1. формула PIC16F887
Tacq= ATMP + TC + TCOFF
Сhold=10pF
Rs=10kOm
Ric=1kOm
Rss=7kOm
Tamp=2us
Tcoff=(50-25)*0.05*10e6=1.25us
Tc=-(Chold)(Ric + Rss + Rs) ln(1/2047)=1.372us
Tacq=2us + 1.372us + 1.25us = 4.62us (пауза перед началом преобразования) хотя в даташите 4,67мкс
+Это характерно применять, если идет переключение каналов, и это в данном случае равно 4,67мкс. {ADC_ACQUISITION_TIME=4,67u} Этот параметр определяет время переключения каналов, заряд конденсатора ну, и всю лабуду….
2. в примере 12f_P2 в теме 12F683+ADC+PWM
while (adcon0 & 0x02) ;
FCV_ADC=adresh;
/*nop(); // 2Tad.
nop();
nop();
nop();
nop();
nop();
nop();
nop();*/
gpio.5 = 0x01;
delay_us(1);// реально это 14 мкс, в 2 раза больше чем нужно!!!
gpio.5 = 0x00;
// в некоторых ДШ написано "После того, как преобразование завершено,
// необходимо программно обеспечить задержку не менее
// 2Tad прежде, чем начнете следующее преобразование"
// если аналоговый канал не меняется можно и не рассчитывать
// временные задержки Tacq, 2Tad.
adcon0 = adcon0 | 0x02;
3. :)
4. Wait the required acquisition time(2) ((выдержать паузу перед началом преобразования)). ссылаясь на формулу Tacq= ATMP + TC + TCOFF.
5. Ты писал - в некоторых ДШ написано "После того, как преобразование завершено, необходимо программно обеспечить задержку не менее 2Tad прежде, чем начнете следующее преобразование". Кстати в даташит на этот мк этого не написано.
Tad для 20МГц = 1.6 μs, а 2Tad = 3,2 мкс.
6. Почему ставить не нужно
Ты писал - ДШ говорит
After a conversion has completed, a 2.0 TAD delay must complete before acquisition
can begin again. During this time the holding capacitor is not connected to the
selected A/D input channel.
После завершения преобразования нужно выдержать паузу 2 Тад. В данном случае это 3,2 мкс…. А затем можно дать команду на преобразование adcon0 = adcon0 | 0x04; Матриксы этого не делают... Хотя все зависит от частоты МК, возможно тех действий что стоят до команды преобразования и хватит по времени...
Но если посмотреть выше в пункте 2 написано
если аналоговый канал не меняется можно и не рассчитывать временные задержки Tacq, 2Tad.
Но у меня каналы меняются.
Ник: Sergey
Имя: Sergey
Специалист
Специалист
Информация о пользователе
Вернуться наверх

Re: настройка макроса АЦП

Сообщение mim (mim) » 24 дек 2015, 15:20

Sergey писал(а):1. формула PIC16F887 ... в даташите 4,67мкс ... применять, если идет переключение каналов
2. в примере в теме 12F683+ADC+PWM ... delay_us(1);// реально это 14 мкс, в 2 раза больше чем нужно!!!
3. :)
4. ... ссылаясь на формулу Tacq= ATMP + TC + TCOFF.
5. ... 2Tad = 3,2 мкс.
6. Почему ставить не нужно....у меня каналы меняются.

1. 4. и 5. Вот они верные выдержки. Таким образом все цифры приведенные постами выше пальцем в небо...
2. :headbang: При каких частотах кварца???
3. Совсем не смешно... Это только трата моего времени...
6. Вот по этому и не нужно... Вот здесь и нет в нем никакого смысла, потому что этого времени нет физически, если ты переключаешь каналы, там выдвигаются другие требования...

ЗЫ вообще-то, я кроме этого ждал что ты догадаешься все сбросить в исходный код и доложить о результатах работы АЦП...
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: настройка макроса АЦП

Сообщение Sergey (Sergey) » 24 дек 2015, 16:00

3. та и мне не смешно, если честно.
6. тогда я вставляю задержки в коды матриксов и проверяю.
Да я и сам хотел проверить, но сегодня нужно было быть дома.
Самому интересно.
Как только проверю - доложусь.
Ник: Sergey
Имя: Sergey
Специалист
Специалист
Информация о пользователе
Вернуться наверх

Re: настройка макроса АЦП

Сообщение mim (mim) » 24 дек 2015, 16:04

Sergey писал(а):тогда я вставляю задержки в коды матриксов и проверяю.
Вставить бы тебе куда следует... В данном случае я же написал "все сбросить в исходный код"... Ты читай что я пишу и думай головой!!!
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: настройка макроса АЦП

Сообщение Sergey (Sergey) » 24 дек 2015, 16:11

Извини! Невнимательно прочитал.
Так и сделаю.
Ник: Sergey
Имя: Sergey
Специалист
Специалист
Информация о пользователе
Вернуться наверх

Re: настройка макроса АЦП

Сообщение Sergey (Sergey) » 25 дек 2015, 11:03

Добрый день!
Вообщем исправил и проверил.
Результат таков - датчик температуры MCP9700 на жк прыгают в приделах 5-ти градусов и входное стовольтовое напряжение также в пределах 5В (это без нагрузки. в качестве нагрузки пьезодвигатель).
При подключении наргузки колебания увеличиаются в пределах 10деления.
А так вроде лучше работает, чем было.
А вот хотя когда постоял прибор в работе минут 10, тоже без нагрузки, колебания увеличились, местами и на 20 делений.
У вас нет доступа для просмотра вложений в этом сообщении.
Ник: Sergey
Имя: Sergey
Специалист
Специалист
Информация о пользователе
Вернуться наверх

Re: настройка макроса АЦП

Сообщение mim (mim) » 25 дек 2015, 11:46

Sergey писал(а):вроде лучше работает, чем было... хотя когда постоял прибор в работе минут 10, тоже без нагрузки, колебания увеличились, местами и на 20 делений.
Если ты измеряешь что-то что сидит на сетевом питании, то ничего удивительного нет... Если датчик температуры питается от стабилизированного источника (и опора тоже), то смотри свой источник...
Все что связано с программными решениями мы устранили (касаемо АЦП). Если нужно программно убрать быстрое изменение показаний, то смотри тему про измерение сетевого напряжения...
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: настройка макроса АЦП

Сообщение Sergey (Sergey) » 25 дек 2015, 11:52

Спасибо!
Понятно.
Обязательно буду смотреть!
Дай, пожалуйста, ссылку на эту тему - измерение сетевого напряжения.
Ник: Sergey
Имя: Sergey
Специалист
Специалист
Информация о пользователе
Вернуться наверх

Пред.След.

Вернуться в Flowcode PIC

Кто сейчас на форуме

Пользователь просматривает форум: нет зарегистрированных пользователей