roboforum.ru

Технический форум по робототехнике.

Как в Bascom-е включить усиление в АЦП?

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Как в Bascom-е включить усиление в АЦП?

Сообщение EdGull » 09 ноя 2008, 00:49

Хочу попробывать мерить уровень УЗ-сигнала мегой без операционника подключив УЗ-приемник прямо к АЦП.
Хочу сделать как бы езду на свет, но только в УЗ диапазоне.
Ведь в мегах можно выставлять коофициент усиления, в частности у меня мега88.
В хелпнике не нашел.

Вопрос, как в васике сконфигурировать услиение в АЦП?
Или дурная идея?

Добавлено спустя 9 минут 37 секунд:
я так понимаю нужно теребенить MUX0 на предмет выставления в нем значения 01011
но боюсь васик меня не поймет...

Добавлено спустя 2 минуты 7 секунд:
опс... в меге88 нет такого усиления... :(

Добавлено спустя 4 минуты 16 секунд:
опа... зато в меге16 и меге32 есть...

так что снова продолжаем рыть...
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Как в Bascom-е включить усиление в АЦП?

Сообщение avr123.nm.ru » 09 ноя 2008, 00:52

EdGull писал(а): как в васике сконфигурировать услиение в АЦП ?

Правильно - позырить в даташите.
И у меня в курсе по AVR конечно же есть чуток про фключение диф. АЦП в AVR - http://avr123.nm.ru/z09.htm
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Как в Bascom-е включить усиление в АЦП?

Сообщение EdGull » 09 ноя 2008, 00:56

вот здесь для меги128 и по русски и вроде как перевод ДШ
http://www.gaw.ru/html.cgi/txt/doc/micr ... 128/12.htm

но всё равно ни чё не понятно, а в ДШ тем более...
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Как в Bascom-е включить усиление в АЦП?

Сообщение avr123.nm.ru » 09 ноя 2008, 00:59

у меня в курсе по AVR наверняка понятно - задача-упражнение 9 - http://avr123.nm.ru/z09.htm

=======
А может просто копаратор встроеный в AVR использовать как дискриминатор ? Сигнал через разделительный конденсатор 0.1 мкФ подают на входы компаратора через 2 резистора по 10 кОм например, а вход "-" заземляют конденсатором. т.е. на "-" сигнал идет через ФНЧ - его частоту нужно взять раза в 3 ниже частоты сигнала. На выходе копаратора будет цифровой сигнал - поток "1" и "0". Вход "-" нужно подключить резисторами по 1 мОм к земле и к питанию.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Как в Bascom-е включить усиление в АЦП?

Сообщение EdGull » 09 ноя 2008, 01:07

не, не прояснилось...

вот что я на рыл в хелпе васика

The GETADC() function only will work on microprocessors that have an A/D converter.
The pins of the A/D converter input can be used for digital I/O too.
But it is important that no I/O switching is done while using the A/D converter.
Make sure you turn on the AD converter with the START ADC statement or by setting the proper bit in the ADC configuration register.

Some micro’s have more then 7 channels. This is supported as well. The ADCSRB register contains a bit named MUX5 that must be set when a channel higher then 7 is used. The compiler (lib routine) will handle this automatic. This is true for new chips like Mega1280, Mega2560 and probably other new chips with 100 pins.



An example on how to read singled ended input on a Mega1280:
W = Getadc(0 , 64) ' from data sheet : 100000 ADC8
W = Getadc(1, 64) ' from data sheet : 100001 ADC9
This will read channel 0 and 1. The offset is 64 in order to use singled ended input.

ADC8 is portK.0


но почему 64???
там же нет такого коофициента усиления.
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Как в Bascom-е включить усиление в АЦП?

Сообщение avr123.nm.ru » 09 ноя 2008, 01:11

64 это не усиление, а просто смещение на двоичное число 100000

Вот это прикололо !
The GETADC() function only will work on microprocessors that have an A/D converter.


Напиши конкретно - какой режим АЦП тебе нужен.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Как в Bascom-е включить усиление в АЦП?

Сообщение EdGull » 09 ноя 2008, 01:21

думаю меня должны интересовать коофициенты 200 и 10
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Как в Bascom-е включить усиление в АЦП?

Сообщение Кирилл » 09 ноя 2008, 01:23

Эд, в даташите на нужный тебе контроллер прочти про регистр ADMUX. Тебе нужны разряды этого регистра MUX4..MUX0 - ими задается коэффицент усиления. Как только решишь какие единички и нули записывать в этот регистр пиши в баскоме следующую строку:
Код: Выделить всёРазвернуть
ADMUX = &B10101010
конечно же вместо этих единиц и нулей ставь те которые тебе нужны :)
Кирилл
 
Сообщения: 432
Зарегистрирован: 20 окт 2005, 16:11
Откуда: Вильнюс,Литва
прог. языки: Basic

Re: Как в Bascom-е включить усиление в АЦП?

Сообщение EdGull » 09 ноя 2008, 01:28

avr123.nm.ru писал(а):64 это не усиление, а просто двоичное число 100000 в десятичном виде.


а 100001 тоже 64 ???

Добавлено спустя 3 минуты 29 секунд:
1. я правильно понимаю, что берем мегу32 и к ноге ADC0 подключаем УЗ-применик, а ADC1 так же как и вторую ногу УЗ-приемника вешаем на землю?
2. что и в какой последовательности нужно писать в ADMUX чтобы получить усиление 200?
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Как в Bascom-е включить усиление в АЦП?

Сообщение Кирилл » 09 ноя 2008, 01:32

какой МК юзать планируешь?
100001 это 33
Кирилл
 
Сообщения: 432
Зарегистрирован: 20 окт 2005, 16:11
Откуда: Вильнюс,Литва
прог. языки: Basic

Re: Как в Bascom-е включить усиление в АЦП?

Сообщение EdGull » 09 ноя 2008, 01:40

берем мегу32
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Как в Bascom-е включить усиление в АЦП?

Сообщение Кирилл » 09 ноя 2008, 01:45

ну тогда где то так:
Код: Выделить всёРазвернуть
ADMUX = &B11101001

это получится 10х, ADC0 +, ADC1 -.
а вообще даташит, страница 214.
Кирилл
 
Сообщения: 432
Зарегистрирован: 20 окт 2005, 16:11
Откуда: Вильнюс,Литва
прог. языки: Basic

Re: Как в Bascom-е включить усиление в АЦП?

Сообщение EdGull » 09 ноя 2008, 01:52

64 это не усиление, а просто двоичное число 100000 в десятичном виде.

а это как???
у меня 100000 как 32 получается
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Как в Bascom-е включить усиление в АЦП?

Сообщение Кирилл » 09 ноя 2008, 01:55

Эд, тебе это не надо.
Кирилл
 
Сообщения: 432
Зарегистрирован: 20 окт 2005, 16:11
Откуда: Вильнюс,Литва
прог. языки: Basic

Re: Как в Bascom-е включить усиление в АЦП?

Сообщение avr123.nm.ru » 09 ноя 2008, 01:57

EdGull писал(а):
64 это не усиление, а просто двоичное число 100000 в десятичном виде.

а это как???
у меня 100000 как 32 получается


Я думаю так

100000 и 0 это 64 (1000000 ) канал АЦП 0

100000 и 1 это 64 +1 (1000001 ) канал АЦП 1
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12