Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
Pink-Pank
Опытный кот
Сообщения: 721
Зарегистрирован: Ср июн 11, 2014 09:43:13
Откуда: США
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Pink-Pank »

Все возможно. Только сложно будет такой точности напряжения добиться.
Fucking static initialization order fiasco
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25172
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Atmega 48 - ADC (AREF - напряжение?) - Компаратор

Сообщение КРАМ »

amd9800 писал(а):Могу ли я подать на AREF например образцовое напряжение 0,512 Вольт ?

Подать конечно можно, но получить что либо в результате - нет.
Даташит определяет МИНИМАЛЬНОЕ значение референсного напряжения - 2(ДВА) Вольта.
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Alexeyslav »

Подать-то может и можно, только сразу же вырастет шум и упадет точность, кроме того надо очень тщательно разводить шины аналогового питания контроллера, особенно общий провод - 2 миливольта навести там очень просто - соседняя дорожка с током порядка 100мА, сам ток по этой же дорожке в десяток милиампер - и твои 2мВ падения имеешь, в итоге кроме шума самого АЦП добавится непредсказуемый шум по шине питания.
amd9800
Опытный кот
Сообщения: 822
Зарегистрирован: Вс июн 02, 2013 12:23:03

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение amd9800 »

Понял. Тогда получается надо усилить сигнал с помощью ОУ ?

И как быть с таким описанием в даташите. Вы пишите про 2 Вольта а у атмеги48 встроенное 1,1 вольта, что то у вас не вяжется.
The reference voltage for the ADC (VREF) indicates the conversion range for the ADC. Single ended channels that exceed VREF will result in codes close to 0x3FF. VREF can be selected as either AVCC, internal 1.1V reference, or external AREF pin.
Последний раз редактировалось amd9800 Вс июн 29, 2014 23:21:31, всего редактировалось 1 раз.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25172
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение КРАМ »

Да, именно так и получается.
Причем выбирать ОУ нужно с учетом диапазона измеряемых напряжений...
Не все они Rail-to-Rail... Причем не все по входу и не все по выходу...
amd9800
Опытный кот
Сообщения: 822
Зарегистрирован: Вс июн 02, 2013 12:23:03

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение amd9800 »

"КРАМ" скажите пожалуйста где в даташите atmega 48 указанно 2 вольта?
Последний раз редактировалось amd9800 Вс июн 29, 2014 23:38:56, всего редактировалось 1 раз.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25172
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение КРАМ »

Я ошибся. Просто бегло прочел название Вашего контроллера и посмотрел в даташит на 8-ую Мегу.
amd9800
Опытный кот
Сообщения: 822
Зарегистрирован: Вс июн 02, 2013 12:23:03

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение amd9800 »

возможно ли на Atmega48 так настроить таймер?

Например если чип работает на частоте 8МГц и мне необходима частота ШИМа 25Кгц.

То можно настроить 16 битный таймер (Timer 1) чтоб он тикал до 320 и потом таймер сбрасывался ?
Поскольку у Atmega 48 два регистра сравнения на каждый таймер то первый регистр сравнения ставим 320, а второй будет принимать динамические значения от 0 до 320. И он будет связан с выходом OC1B. Таким образом ШИМ будет от 0 до 320 по дискретизации и частота будет 25КГц.
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Alexeyslav »

Это режим работы таймера 8 или 9.
amd9800
Опытный кот
Сообщения: 822
Зарегистрирован: Вс июн 02, 2013 12:23:03

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение amd9800 »

Не понял вашего ответа
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Alexeyslav »

Ну ёпта, ты даташит на контроллер открывал? Там все режимы работы таймера расписаны, так нужный тебе режим работы - 8 или 9. Впрочем, номер режима работы задается определенными битами управляющего регистра. Но рекомендую все-таки ознакомится с даташитом, т.к. от режима работы таймера зависят и остальные необходимые настройки.
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ibiza11 »

Мало того, что грубите, еще и неверно ответили. Подойдет любой режим PWM в котором можно установить значение TOP: 8,9,10,11,14,15.
Изображение
Ставим плюсы: )
amd9800
Опытный кот
Сообщения: 822
Зарегистрирован: Вс июн 02, 2013 12:23:03

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение amd9800 »

Alexeyslav писал(а):Ну ёпта, ты даташит на контроллер открывал? Там все режимы работы таймера расписаны


Уважаемый Алексей 8 бит это отчет до 256.
А 9 бит это уже отчет до 512.

А мне нужно получить частоту 25КГц при частоте чипа 8МГц. Вы наверное даже не поняли моего вопроса а отвечаете грубо и непрофессионально. Подозреваю что вы очень плохо разбираетесь в микроконтроллерах.

И кстати даташит я не только открывал но и читал, и про режимы 8бит 9бит и 10бит я знаю.

ibiza11 писал(а):Подойдет любой режим PWM в котором можно установить значение TOP: 8,9,10,11,14,15.

Хорошо выбираю я режим 9.

В регистре TCCR1B выставляю биты WGM13 WGM12 в положение - 1 0
В регистре TCCR1A WGM11 WGM10 в положение - 0 1

А дальше какие действия?

Может вы не поняли постановку задачи?
Допустим мне надо чтоб ШИМ работал по такому принципу. В одном регистре сравнения я задаю значение к примеру 10. Выход PORTB.2 (OC1B) сигнал будет изначально Высоким таймер потикал 10 тактов и поменял сигнал на выходе на Низкий потом потикал еще 310 таков до 320 и таймер сбросился в ноль, сигнал стал высоким. И опять все с начала.



Выставил я временно вместо 320 -> 256 чтоб сравнить частоту с таймером 0 (на нем у меня обычный 8 бит ШИМ - частота получается 31,2 КГц)

TCCR1A=0b10100001;
TCCR1B=0b00010001;

TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0xFF;
OCR1BH=0x00;
OCR1BL=0x20;

Так непонятно почему получается частота ШИМ 1 в два раза ниже хотя должна быть одинаковой.
Желтый это образцовый сигнал из протеуса на 24КГц
Синий и Красный это выходы А и Б от таймера 0
Зеленый это выход Б от таймера 1
Выход А постоянно высокий
Изображение
Вложения
PWM.PNG
(8.52 КБ) 618 скачиваний
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение akl »

Наверно поэтому. Сравните иллюстрации режимов 9 и 15. Есть существенная разница, не так ли. Именно поэтому здесь был предложен режим 14 или 15.
In phase and frequency correct PWM mode the counter is incremented until the counter value matches either the
value in ICR1 (WGM13:0 = 8), or the value in OCR1A (WGM13:0 = 9). The counter has then reached the TOP and
changes the count direction.
The TCNT1 value will be equal to TOP for one timer clock cycle. The timing diagram
for the phase correct and frequency correct PWM mode is shown on Figure 16-9 on page 129. The figure shows
phase and frequency correct PWM mode when OCR1A or ICR1 is used to define TOP. The TCNT1 value is in the
timing diagram shown as a histogram for illustrating the dual-slope operation. The diagram includes non-inverted
and inverted PWM outputs. The small horizontal line marks on the TCNT1 slopes represent compare matches
between OCR1x and TCNT1. The OC1x Interrupt Flag will be set when a compare match occurs.
Последний раз редактировалось akl Пн июн 30, 2014 09:53:18, всего редактировалось 1 раз.
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Alexeyslav »

Хм, просто создалось такое впечатление что даташит не открывали. Чем же режимы 8 или 9 не подходят? не позволяют получить 25кГц при 8Мгц тактовой частоте? Просто TOP значение придется ставить не 320 а 160.
Кроме установки режима работы таймера(последним действием) надо будет установить режим работы выхода COM1B1:0(=0b10 или 0b11 в зависимости от полярности требуемых импульсов) в регистре TCCR1A, в OCR1A занести значение 160(=320/2) а OCR1B нужное значение ШИМ 0..159.
При этом желательно отключить таймер TCCR1B CS12:0 = 0b000 и после настойки и установки режима работы включить его TCCR1B CS12:0 = 0b001.
amd9800
Опытный кот
Сообщения: 822
Зарегистрирован: Вс июн 02, 2013 12:23:03

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение amd9800 »

Alexeyslav писал(а):При этом желательно отключить таймер TCCR1B CS12:0 = 0b000 и после настойки и установки режима работы включить его TCCR1B CS12:0 = 0b001.

для чего надо отключать таймер, а потом включать?

Alexeyslav писал(а):Хм, просто создалось такое впечатление что даташит не открывали.

Впечатления у вас не правильные.



Как мне правильно определить какие пины использовать на Atmega 48.

Задача:
1. Выход под ШИМ - определился использовать OC1B (PB2)
2. Нужен целый порт для семи сегментного индикатора и 4 пина для катода поскольку он(индикатор) 4х значный
3. Нужен компаратор сравнивать один сигнал который постоянно меняется с одним постоянным напряжением
4. Нужно 2 Канала ADC я выбрал ADC6 и ADC7
5. 3 кнопки, но без вызова прерывания.
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение akl »

Вычёркиваете из схемы фиксированные производителем лапы (RESET, OC1B, AIN0, AIN1, ADC6, ADC7). Оставшиеся лапы назначаете самостоятельно, с учётом возможности совмещения функций ввода-вывода (индикация-кнопки).
amd9800
Опытный кот
Сообщения: 822
Зарегистрирован: Вс июн 02, 2013 12:23:03

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение amd9800 »

В том то и дело что ни одного целого порта не остается для семисегментного индикатора и думаю как же быть?
Неудобно работать с пинами с разных портов.
Ну если так уж быть как объединить скажем 5 пинов одного порта и 3 другого порта как один целый 8 битовый массив?
Чтоб сразу записать 8 битовое значение.
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Alexeyslav »

Выключать, чтобы не было непредсказуемого поведения пока будете загружать регистры. Это крайне необходимо если ШИМ у вас управляет силовыми ключами иначе можно силовые ключи пожечь и т.д. и т.п.

Если вы это делаете в самом начале после сброса то дополнительно отключать не нужно, таймер и так стоит.
А если в прошивке используется "программный сброс" переходом на нулевое прерывание то это делать просто необходимо.
Учитывая целый ряд обстоятельств, лучше его отключить даже если знаете что он отключен - кто его знает куда потом в будущем пойдет этот код...

ни одного целого порта не остается для семисегментного индикатора и думаю как же быть?
немного доработать аппаратную часть, добавить регистр сдвига для сегментов - он потребует всего 3-х выводов от контроллера. В другом случае, если это решение неприемлемо - написать подпрограмму(назвать её что-то вроде set_segment) которая на входе возьмет один байт и распихает его по нужным портам используя логические выражения и прочее - да хоть побитно. Изменяя аппаратную конфигурацию достаточно будет просто переписать эту подпрограмму. Впрочем этот вариант универсален - программу переписывать не надо, а подпрограмма может с такой же эффективностью работать и с внешним регистром сдвига.
Wanderer123
Родился
Сообщения: 10
Зарегистрирован: Пн июн 30, 2014 14:47:24

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Wanderer123 »

Добрый день! Попросили сделать УЗО с выводом на семисегментный индикатор тока утечки (дифференциального тока) в диапазоне 1-100мА. Хочу все это сделать на ATmega8. Как вывести данные с МК на индикатор я знаю, но как подружить трансформатор тока и АЦП МК нет. Буду благодарен за любую информацию. Заранее спасибо!
Ответить

Вернуться в «Разные вопросы по МК»