Полная версия этой страницы:
Проблемма с АЦП на T89C51CC01
chatsky
Jul 19 2005, 04:17
Есть следующая проблемма. Подаю сигнал на вход АЦП, а он оцифровывает очень странно выдает только следующие значения:
00000000
00000001
00000011
00000111
00001111
00011111
00111111
01111111
10000000
11000000
11100000
11110000
11111000
11111100
11111110
11111111
Промежуточные куда-то девает. Таким образом он конечно кое-что оцифровывает, но больно уж с плохим качеством.
subver
Jul 19 2005, 04:47
А скорость преобразования какая? Возможно неправильно выставлены тактовые частоты.
chatsky
Jul 19 2005, 05:20
Я использую Timer2. Каждые 0,0005 сек (2 кГц) АЦП у меня оцифровывает и я посылаю данные через CAN. Осциллограмма получается верной по частоте, но сам сигнал получается с большими ступеньками, так как например такого значения как 10010010 он не выдает, а только те которые я написал выше.
chatsky
Jul 19 2005, 05:21
Да, кстати, на эмуляторе все работает.
subver
Jul 19 2005, 05:22
Я имею ввиду устанвку битов прескалера тактовой частоты АЦП, у меня была похожая проблема, дело было в завышенной тактовой частоте АЦП.
chatsky
Jul 19 2005, 05:26
Я новенький в этом деле. В каком регистре это прописывается? И разве где-то отдельно нужно устанавливать частоту оцифровки?
chatsky
Jul 19 2005, 05:32
БОЛЬШОЕ СПАСИБО!!!
subver
Jul 19 2005, 05:35
Смотри в даташите раздел, посвященный ADC, там найдешь ADC control registers, в них должны быть описаны биты ADC clock prescaler settings. Там табличка вида:
0 0 0 fclk
0 0 1 fclk/2
или что-то в этом роде.
В эти биты надо занести значение, соответствующее максимально-возможной частоте дискретизации для данного ацп.
Допустим, преобразование идет 25 тактов,
максимальная частота выборок - 15 ksps (тысяч выборок в секунду)
тактовая частота проца - 16 МГц.
тогда максимально допустимая тактовая частота АЦП будет:
fadc = 15000*25 = 375000
что примерно соответствует 16000000/375000 = 42, значит надо найти в таблице запись вида fclk/64 и занести соответствующие биты в регистр. Т.е. тактовая частота АЦП в данном случае не может превышать 375000 Гц, вот от этой частоты и тактовой частоты проца и нужно плясать.
chatsky
Jul 19 2005, 05:45
Я уже все сделал. Все работает. Еще раз спасибо.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.