Например TDA7294

Форум РадиоКот • Просмотр темы - BASCOM AVR в вопросах и ответах
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пн авг 25, 2025 01:23:36

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 6053 ]     ... , , , 12, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт фев 06, 2009 00:27:41 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 4
Рейтинг сообщений: 26
Зарегистрирован: Ср сен 17, 2008 14:32:15
Сообщений: 2106
Откуда: Старые Васюки
Рейтинг сообщения: 0
Тихан писал(а):
Если число двойчное(а оно поидеи такое) то 1023 не как не подходит.

Да ну? Так же, как и 255? :)))

pavel123 писал(а):
Ну ладно, поймали, каюсь - соврал. :))

На самом деле я вовсе не ставил себе цели вас "ловить"! :shock: Меня правда занимает этот вопрос: при 10 разрядах АЦП цена его деления должна бы получиться Uref/1023, однако почему-то всегда упоминается деление на 1024. Аналогично с 8 разрядами, под которые даже подогнан внутренний источник 2,56 (а не 2,55) В.
Может, я всё-таки чего-то не понимаю?


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт фев 06, 2009 01:18:28 
Грызет канифоль
Аватар пользователя

Зарегистрирован: Чт май 17, 2007 09:44:13
Сообщений: 268
Откуда: Украина, г. Кривой Рог
Рейтинг сообщения: 0
Ради торжества истины можно найти любые обьяснения. :)) Но я их не знаю.
Как по мне - шо 1023, шо 255, погрешность не велика.
И отлавливать эти дробные части, конечно можно, если это комуто нужно :)) :)) :))
Спросили про АЦП, вспомнил, что видел статейку, вот предложил для обсуждения. :)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт фев 06, 2009 08:10:44 
Открыл глаза

Зарегистрирован: Сб дек 27, 2008 15:40:06
Сообщений: 70
Рейтинг сообщения: 0
от 0 до 255 будет 256 значений (от 0 до 1023 будет 1024 или от 0 до 9 будет 10 значений)


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт фев 06, 2009 09:08:41 
Электрический кот
Аватар пользователя

Карма: 3
Рейтинг сообщений: 2
Зарегистрирован: Вт окт 21, 2008 11:46:23
Сообщений: 1051
Откуда: Барнаул
Рейтинг сообщения: 0
Уважаемые кошаки, очень нужен пример программы для термостата DS1621 + МК (любой AVR) на BASCOMе. Или подскажите, где взять библиотеку для DS1621. Была мысля конвертировать в CodeVisionAVR, хидер для DS1621 в .lib :))) Эта либа потом сработает в BASCOMe? :? И где вообще брать новые библиотеки для васика?


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт фев 06, 2009 09:46:09 
Открыл глаза

Зарегистрирован: Сб дек 27, 2008 15:40:06
Сообщений: 70
Рейтинг сообщения: 0
у меня первая ссылка гугля на 'DS1621 bascom' ..
http://avr.15.forumer.com/a/tempurature ... st492.html


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт фев 06, 2009 16:29:54 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 4
Рейтинг сообщений: 26
Зарегистрирован: Ср сен 17, 2008 14:32:15
Сообщений: 2106
Откуда: Старые Васюки
Рейтинг сообщения: 0
pomidor писал(а):
от 0 до 255 будет 256 значений

Совершенно верно, вот только получается, что 0 соответствует нулю, а 255 тогда должно соответствовать максимуму. «Делений» между этими 256 значениями опять же получается 255. Итого цена такого деления д.б. = Uref/255.

Нет, а всё-таки? Неужели никто точно не знает этот момент? Погрешность может конечно и небольшая, но всё равно лучше бы от неё избавиться.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб фев 07, 2009 00:38:47 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Вт дек 30, 2008 20:51:09
Сообщений: 24
Откуда: Россия, г. Брянск
Рейтинг сообщения: 0
Особых проблем с пересчетом действительных значений АЦП нету , все дело в правильном расчете делителя. Смотрим архив : там пример делителя в диапазоне 0-99 В , при снятии с АЦП так и получаем - от 0.01 до 9.99 В = 001 ... 999 , выше 10 В = 100 ... 999 (да именно так , но уже с подключенным дополнительным делителем см. полевой транзистор в схеме) . Остается только правильно контролировать десятичную точку , но все в наших руках (лапах) :) так как делитель мы сами и подключали - установкой единицы на соответствующей ножке .. Смотрим программу вольтметра в этом же архиве (под этот делитель).
P.S. Схема делителя взята из журнала "Радио 6'2008" - статья "Вольтметр для лабораторных источников питания" . Там и описание коэффициентов делителя.
P.S.S. to Деня . Спасибо за исходник. Которым ты в принципе подтвердил, как и свои , так и мои предположения. И еще .. По вопросам RS-485 обращатся можно ? :oops:


Вложения:
Комментарий к файлу: Вольтметр с "правильным" делителем
Volt.rar [39.58 KiB]
Скачиваний: 677
Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб фев 07, 2009 02:03:41 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Вт дек 30, 2008 20:51:09
Сообщений: 24
Откуда: Россия, г. Брянск
Рейтинг сообщения: 0
Еще решил дописать размышления по поводу ошибок преобразования АЦП и разного рода "ошибок деления" и т.д. и т.п. Я тоже поначалу думал о "неизбежных" ошибках преобразования, точности АЦП и прочих "математических" нюансах, пока не перечитав кучу инфы в интернете и в бумажных (!) книгах не пришел к выводу : ошибки преобразования и все что с ними связано должны Вас волновать , если Вы "затачиваете" МК именно под работу АЦП , а то есть применяете :

1. Раздельное питание аналоговой и цифровой части
2. Прецезионный источник опорного напряжения (например MAX873)
3. Специальные режимы МК , специально созданные для измерений с помощью АЦП (например ADC Noise)
4. Рекомендации Atmel по проектирования и изготовлению печатных плат.

Если в Вашем проекте этого не присутствует , то мысли вокруг ошибок "цифровой" части МК Вас волновать не должны , т.к. ошибки "аналоговой" части уже заведомо будут больше. Все просто .. :) На "бытовом" уровне, все решается настройкой делителя по эталонному вольтметру ...


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб фев 07, 2009 11:40:57 
Мучитель микросхем

Зарегистрирован: Вс июн 01, 2008 12:16:38
Сообщений: 459
Рейтинг сообщения: 0
Секретный кот писал(а):
Совершенно верно, вот только получается, что 0 соответствует нулю, а 255 тогда должно соответствовать максимуму. «Делений» между этими 256 значениями опять же получается 255. Итого цена такого деления д.б. = Uref/255.

Вы ошибаетесь, цена деления в данном случае Uref/256.
Пример с линейкой - на сантиметровом отрезке 10 делений цена деления соответственно 1 мм.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб фев 07, 2009 17:06:21 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 4
Рейтинг сообщений: 26
Зарегистрирован: Ср сен 17, 2008 14:32:15
Сообщений: 2106
Откуда: Старые Васюки
Рейтинг сообщения: 0
smac писал(а):
Пример с линейкой - на сантиметровом отрезке 10 делений цена деления соответственно 1 мм.

Посмотрите на линейку внимательнее :))
На сантиметровом отрезке 10 делений и соответственно 11 возможных отсчётов (рисок), от 0 до 10. То есть длину в 1 см мы получаем, когда достигаем 11-й (а не 10-й) риски.
Продолжая эту аналогию, у АЦП 255 (1023) «делений» и 256 (1024) возможных значений. Число делений всегда на единицу меньше числа дискретных отсчётов, это же основы метрологии. Так что не убедили.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб фев 07, 2009 17:25:33 
Мучитель микросхем

Зарегистрирован: Вс июн 01, 2008 12:16:38
Сообщений: 459
Рейтинг сообщения: 0
Секретный кот писал(а):
smac писал(а):
Пример с линейкой - на сантиметровом отрезке 10 делений цена деления соответственно 1 мм.

Посмотрите на линейку внимательнее :))
На сантиметровом отрезке 10 делений и соответственно 11 возможных отсчётов (рисок), от 0 до 10. То есть длину в 1 см мы получаем, когда достигаем 11-й (а не 10-й) риски.
Продолжая эту аналогию, у АЦП 255 (1023) «делений» и 256 (1024) возможных значений. Число делений всегда на единицу меньше числа дискретных отсчётов, это же основы метрологии. Так что не убедили.

Что вы мне голову морочите? Какова по Вашему цена деления обсуждаемой нами линейки?
Я справедливо полагаю, что деление - это расстояние между рисками а не сама риска, соответсвенно цена деления 1 мм. У восьмибитного АЦП 256 делений, соответственно цена деления Vref/256. Чтобы найти напряжение на входе мы берем полученное значение (кол-во делений) и умножаем на цену, в результате получаем:
Vin=ADC*(Vref/256), где ADC - значение считанное с преобразователя.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб фев 07, 2009 18:37:39 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Вт дек 30, 2008 20:51:09
Сообщений: 24
Откуда: Россия, г. Брянск
Рейтинг сообщения: 0
Цитата:
Vin=ADC*(Vref/256), где ADC - значение считанное с преобразователя.

Так и есть . Следовательно Smac прав. Берется не максимальное число возможное в данной "разрядности" , а количество шагов . Смотрим в даташите для 10 битного ацп (например: ATtiny26) :

ADC = Vin*1024 / Vref

Как видите в расчетах участвует количество (!) шагов. Читаем даташиты , и таких вопросов не возникает :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб фев 07, 2009 20:16:09 
Мучитель микросхем

Зарегистрирован: Вс июн 01, 2008 12:16:38
Сообщений: 459
Рейтинг сообщения: 0
Shuriks писал(а):
Читаем даташиты , и таких вопросов не возникает :)

+1000, собственно в даташитах даже все формулы приведены и разжевано подробно. Причем если весь даташит читать лень, то хотя бы раздел про АЦП прочитать можно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб фев 07, 2009 22:33:20 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 4
Рейтинг сообщений: 26
Зарегистрирован: Ср сен 17, 2008 14:32:15
Сообщений: 2106
Откуда: Старые Васюки
Рейтинг сообщения: 0
smac писал(а):
Что вы мне голову морочите? Какова по Вашему цена деления обсуждаемой нами линейки?

Только давайте полегче плиз, ок? Хамство это не лучший аргумент.

На промежутке от 0 до 1 см на линейке 11 рисок и 10 делений, соответственно цена одного деления 1 см/10 делений = 1 мм.

smac писал(а):
Я справедливо полагаю, что деление - это расстояние между рисками а не сама риска, соответсвенно цена деления 1 мм. У восьмибитного АЦП 256 делений, соответственно цена деления Vref/256.

У восьмибитного АЦП 256 именно рисок (0 - это не деление!), а делений (по вашему собственному определению!) получается 255. Так как максимальное значение, считываемое из АЦП, не может быть равно 256.

smac писал(а):
Причем если весь даташит читать лень, то хотя бы раздел про АЦП прочитать можно.

Shuriks писал(а):
Смотрим в даташите для 10 битного ацп (например: ATtiny26) :
ADC = Vin*1024 / Vref
Как видите в расчетах участвует количество (!) шагов. Читаем даташиты , и таких вопросов не возникает :)

На самом деле грустно, что у вас таких вопросов не возникает. Просто подставьте в эту формулу Vin = Vref. Какое значение мы при этом считаем с АЦП? :))
Даташиты мне читать отнюдь не лень, и эта примитивная формула у меня тоже не вызывала вопросов, пока я не утрудился над ней хоть чуть-чуть задуматься. Если максимальное значение, считываемое с АЦП, равно 255 (1023), то значит в формуле из даташита заведомо заложена погрешность. Так как согласно этой формуле максимальное значение равно 256 (1024), чего мы никогда не получим при 8 (10) битах.
Можно допустить и второй вариант, при котором просто измеряемое АЦП напряжение никогда не достигнет Vref. Тогда цена деления может быть любой: и 1/256, и 1/1024, и хоть 1/2789 :)) . Хотя внятного указания на этот момент я в даташите тоже не нашёл, везде упоминается измерение в полном диапазоне 0-Vref.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб фев 07, 2009 23:53:34 
Мучитель микросхем

Зарегистрирован: Вс июн 01, 2008 12:16:38
Сообщений: 459
Рейтинг сообщения: 0
Секретный кот писал(а):
Только давайте полегче плиз, ок? Хамство это не лучший аргумент.

Ок, принимается, был несдержан, извиняюсь.

Секретный кот писал(а):
У восьмибитного АЦП 256 именно рисок (0 - это не деление!), а делений (по вашему собственному определению!) получается 255. Так как максимальное значение, считываемое из АЦП, не может быть равно 256.

Правда Ваша, по поводу максимального значения. Наверное мой пример с рисками был не очень удачен, во всяком случае я считаю, что на отрезке от 0 до 1 см, не обязательно может быть 11 рисок, их может быть и 10 и 9 (если вся линейка - это отрезок 1 см), но спорить по этому поводу я дальше не хочу, поэтому счтитайте что здесь Вы выиграли.

Секретный кот писал(а):
Можно допустить и второй вариант, при котором просто измеряемое АЦП напряжение никогда не достигнет Vref. Тогда цена деления может быть любой: и 1/256, и 1/1024, и хоть 1/2789 :)) . Хотя внятного указания на этот момент я в даташите тоже не нашёл, везде упоминается измерение в полном диапазоне 0-Vref.

А вот тут неправда Ваша, лучше все-таки читать не только заголовки у разделов. Вот оригинальный текст из ДШ на мегу8.
Цитата:
The minimum value represents GND and the maximum value represents the voltage onthe AREF pin minus 1 LSB.
(2486T–AVR–05/08 стр. 197)
Что приблизительно переводится как "Минимальная отбражаемая величина - земля (или 0 В), а максимальная - напряжение на пине AREF минус 1 младший разряд", т.е при подаче напряжения на входной пин больше чем 1023*Vref/1024, считываться из АЦП все равно будет значение 1023.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс фев 08, 2009 00:55:41 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 4
Рейтинг сообщений: 26
Зарегистрирован: Ср сен 17, 2008 14:32:15
Сообщений: 2106
Откуда: Старые Васюки
Рейтинг сообщения: 0
smac писал(а):
Ок, принимается, был несдержан, извиняюсь.

Я тоже прошу прощения, если что.

smac писал(а):
я считаю, что на отрезке от 0 до 1 см, не обязательно может быть 11 рисок, их может быть и 10 и 9 (если вся линейка - это отрезок 1 см)

В теории на этом отрезке может быть и 2, и 3, и 5 рисок. Но достаточно взглянуть на фотографию любой линейки, чтобы понять, что с ценой деления в 1 мм их ровно 11. Метрология всё-таки упрямая штука, хотя ок, эту тему мы закрываем :))

smac писал(а):
счтитайте что здесь Вы выиграли.

Ещё раз повторюсь, что не ставил себе такой цели, а только хотел уяснить истину.

smac писал(а):
the maximum value represents the voltage onthe AREF pin minus 1 LSB. (2486T–AVR–05/08 стр. 197)

Вот! Собственно то, что я и хотел услышать. То есть максимально возможное показание АЦП = (1023/1024)*Vref. Действительно, сей стэйтмент присутствует в даташите (несмотря на заявленное там же парой абзацев выше
Цитата:
• 0 - VCC ADC Input Voltage Range
:)) ), следовательно проглядел, был неправ. Спасибо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс фев 08, 2009 12:30:42 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Пн апр 14, 2008 19:57:20
Сообщений: 346
Рейтинг сообщения: 0
Крыша едет...:)Совсем вы меня щапутали!Ктонить может дать нормальную формулу(с мнимальными погрешностями) и объяснить всякую ерунду вроде Vref, aref, vin.
Хараша спорить!А то у меня совсем крыша поедет... :(

_________________
Съел сам, помоги соседу. Соседу мясо вредно:)


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс фев 08, 2009 21:33:47 
Мучитель микросхем

Зарегистрирован: Вс июн 01, 2008 12:16:38
Сообщений: 459
Рейтинг сообщения: 0
Тихан писал(а):
Крыша едет...:)Совсем вы меня щапутали!Ктонить может дать нормальную формулу(с мнимальными погрешностями) и объяснить всякую ерунду вроде Vref, aref, vin.
Хараша спорить!А то у меня совсем крыша поедет... :(

Еще раз. Vin=ADC*Vref/(2^n), где Vin - измеряемое напряжение, ADC - значение считанное из АЦП (пара регистров ADCH:ADCL, выравнивание результата по правому краю т. е. бит ADLAR = 0), Vref - опорное напряжение (зависит от настроек АЦП, может быть как внутренним так и внешним), n-разрядность АЦП - в вашем случае n=10. (2^n - читать как 2 в степени n).


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср фев 11, 2009 08:04:50 
Мучитель микросхем
Аватар пользователя

Карма: 4
Рейтинг сообщений: 44
Зарегистрирован: Ср дек 10, 2008 21:24:28
Сообщений: 497
Откуда: Алтайский край, Барнаул
Рейтинг сообщения: 0
Здравствуйте форумчане!
Нужно собрать некий таймер.
При подаче питания он начинает считать секунды, как только пропало питание,
время сохранилось в eeprom. После подачи питания заново секунды считаются
и на индикаторе отображается значение из eeprm. Итак по гругу.
Очень нужно! Помогите кто чем сможет!
Заранее спасибо!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Чт фев 12, 2009 12:13:14 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Пн апр 14, 2008 19:57:20
Сообщений: 346
Рейтинг сообщения: 0
Мне понятно как считать, мне не понятно как переводить получившиеся числа в секунды и милисекунды...

_________________
Съел сам, помоги соседу. Соседу мясо вредно:)


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 6053 ]     ... , , , 12, , , ...  

Часовой пояс: UTC + 3 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y