никто не сталкивался с такой особенностью: на сайте CodeVision заявлено, что для фри-версии ограничение кода в 3 кб, но у меня при попытке собрать что-либо > 1 кб- выдает ошибку "достигнуто ограничение триальной версии"
Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср авг 25, 2010 11:18:03
Прорезались зубы
Зарегистрирован: Вт май 27, 2008 23:23:24 Сообщений: 238
Рейтинг сообщения:0
Всем привет! Господа помогите разобраться с АЦП в Atmega8. Мне нужно при помощи АЦП измерить звуковой сигнал. Вот что я делаю:
Код:
Void main(void) { // для начала я делаю инициализацию АЦП //АЦП- Вкл. //Прерывание – Вкл. //Коэффициент деления – 1
ADCSRA= 0x90 // 0x90 = 0b1001000
// Потом я выбираю опорное напряжение и канал // Опорное напряжение как напряжение питания (AVcc) // Выбранный канал АЦП – PC0 (ADC0)
ADMUX = 0x40 // 0x40 = 0b01000000
// Далее просто запускаем АЦП
ADCSRA = 0x40 // 0x40 = 0b01000000 }
Скажите правильно ли я произвёл настройку? Расскажите как выбрать коэффициент деление, точнее как его рассчитать? Я смогу измерить звуковой сигнал при помощи встроенного АЦП в Atmega8? Как настроить АЦП на 10-ти битный режим?
Расскажите как выбрать коэффициент деление, точнее как его рассчитать?
по желаемой скорости работы АЦП: для сохранения заявленных производителем параметров АЦП следует работать на скоростях АЦП до 200 килогерц, отсюда и выбираете компромиссное значение делителя тактовой частоты АЦП. Если устроит некоторое ухудшение параметров АЦП, можно работать на частотах до 1 МГц.
Sounds писал(а):
Я смогу измерить звуковой сигнал при помощи встроенного АЦП в Atmega8?
c учетом только что озвученных ограничений по частоте (не забывайте, что цикл АЦП длится 13 тактов частоты АЦП) - сможете
Sounds писал(а):
Как настроить АЦП на 10-ти битный режим?
АЦП в вашем микроконтроллере всегда работает в 10-битном режиме
какое отношение все эти вопросы имеют к CodeVision ?! народ, ну будьте же точны в вопросах!!! это типичные вопросы по архитектуре AVR, причем вопросы того, кто не желает прочесть даташит или его многочисленные переводы.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср авг 25, 2010 15:01:12
Прорезались зубы
Зарегистрирован: Вт май 27, 2008 23:23:24 Сообщений: 238
Рейтинг сообщения:0
Спасибо за ответ! Скажи пожалуйста, вот у меня коэффициент деления стоит 1, и МК тактируется от внешнего кварца на 8МГц. Какова скорость работы АЦП в данном случаи? Если можно с формулой!
P.S. Не серчайте, я только учусь и много не понимаю, плюс ко всему слабо знаю английский.
Компания MEAN WELL пополнила ассортимент своей широкой линейки светодиодных драйверов новым семейством XLC для внутреннего освещения. Главное отличие – поддержка широкого спектра проводных и беспроводных технологий диммирования. Новинки представлены в MEANWELL.market моделями с мощностями 25 Вт, 40 Вт и 60 Вт. В линейке есть модели, работающие как в режиме стабилизации тока (СС), так и в режиме стабилизации напряжения (CV) значением 12, 24 и 48 В.
говоря "скорость" я немного исказил правду: имелась ввиду тактовая частота АЦП. если делитель 1, то в вашем случае тактовая частота АЦП так же будет 8 МГц - только откуда вы взяли такой делитель?! в АЦП меги8 минимальный делитель тактовой АЦП равен (блин, забыл, а даташита нет под рукой) по-моему 2 или даже 4...
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср авг 25, 2010 15:32:59
Прорезались зубы
Зарегистрирован: Вт май 27, 2008 23:23:24 Сообщений: 238
Рейтинг сообщения:0
Да, вы совершенно правы делитель равен 2, я просто очень сильно тупанул. Тогда получается так. Если МК тактируется от 8 МГц, то: 8 МГц / 64 (коэффициент деления) = 8000000/64=125000 Гц=125кГц Если МК тактируется от 16МГц, то: 16 МГц / 64 (коэффициент деления) = 16000000/64=250000 Гц=250кГц
Это правильные подсчёты? Мне подходит коэффициент деления 64? (Вывод сделал из: для сохранения заявленных производителем параметров АЦП следует работать на скоростях АЦП до 200 килогерц) Проверьте пожалуйста настройку делителя со значением 64, ADCSRA= 0x9C // 0x9C = 0b1001110. Это правильно?
расчеты верные, а вот установку битов в регистре управления для задания коэффициента деления я проверить не смогу, так как лишен возможности заглянуть в даташит.
хочу вам еще предложить кое-какие расчеты - для сведения.
вы хотите анализировать звуковой сигнал - какую частоту семплов АЦП надо обеспечить? и какой частотой при этом надо будет тактировать АЦП? звуковым называют сигнал до 20 кГц. чтобы адекватно анализировать сигнал, надо обеспечить частоту семплирования минимум в 2 раза выше максимальной частоты сигнала - в нашем случае 40 кГц. раз АЦП на один семпл тратит 13 тактов своей рабочей частоты, то легко вычислить, на какой частоте должен работать АЦП: 40000*13=520000 или 520 кГц. теперь прикиньте делитель
другая постановка задачи: вы имеете АЦП с тактовой частотой 250 кГц. какую максимальную частоту сигнала при этом удастся проанализировать? вычисляем частоту семплов: 250000/13=19231 Гц, или просто 19,2 кГц. входной сигнал должен иметь минимум в 2 раза меньшую частоту, т.е. не более 9,6 кГц
кроме всего учтите, что "потолок" входной частоты (20 ли килогерц это будет или 9,6) вам надо обеспечить внешним аналоговым фильтром, иначе могут быть большие искажения....
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср авг 25, 2010 16:17:01
Прорезались зубы
Зарегистрирован: Вт май 27, 2008 23:23:24 Сообщений: 238
Рейтинг сообщения:0
Спасибо за разъяснения! Если делать по первому варианту: 40000*13=520000, то получается ближайшие делители это 16 и 8. При делители 16 результат равен 500000 (500кГц), а при 8 соответственно 1000000 (1000 кГц). Какое значение правильней выбрать? Ведь в МК AVR Atmega8 существует всего 7 делителей, это 2,4,8,16,32,64,128. И как правильно поступить в этой ситуации?
что такое "правильней"? вы же понимаете, что правильность решения зависит от исходных условий...
вы скажите - вам действительно надо 20 кГц обрабатывать? как именно вы собрались их обрабатывать?
если все-таки необходимо - то учтите, что 520 кГц для АЦП - это вне рекомендованных пределов, т.е. АЦП будет давать погрешность на такой частоте... значит, придется не 10 бит использовать, а меньше...
так что определитесь с исходными данными. ну а по делителю надо выбирать ближайший подходящий, а потом перерассчитывать все прочее уже по реальной частоте семплов и т.п.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср авг 25, 2010 17:14:49
Прорезались зубы
Зарегистрирован: Вт май 27, 2008 23:23:24 Сообщений: 238
Рейтинг сообщения:0
С моими возможностями получается только до 9.6кГц максимум. Как можно увеличить максимальный порог частоты? Может спасёт внешний АЦП? В профессиональной аппаратуре до какой частоты в основном обрабатываются данные перед выводом на индикацию?
Сделать индикацию как на микшерных пультах, на усилителях.
ваши предки были партизанами и сгинули в застенках СС, не иначе? вы можете рассказать конкретно, что хотите? индикация бывает стрелочными индикаторами, бывает 2 полоски уровней, бывает спектроанализатор... и что вам посоветовать из этого?!
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср авг 25, 2010 19:49:23
Прорезались зубы
Зарегистрирован: Вт май 27, 2008 23:23:24 Сообщений: 238
Рейтинг сообщения:0
В итоги должна получится индикация линейная, только не на светодиодах, а на графическом LCD. В общем получается так на графическом дисплее будет 4 канала индикации будет рисоваться шкалы в зависимости от входного сигнала, а рядом будет писаться сколько децибел. В общем задумка такова, но а сейчас хочу разобраться хотя бы с одним каналом.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения