|
Из темы "Сравнение AVR и 51", Пример реализации 14bit ADC на AVR |
|
|
|
Nov 5 2007, 08:18
|
Местный
  
Группа: Свой
Сообщений: 234
Регистрация: 30-03-07
Из: Одесса
Пользователь №: 26 621

|
Развитие сюжета достойно Пелевинского "Шлема ужаса"...  Цитата(=AVR= @ Nov 2 2007, 14:08)  Никаких шуток - писание на С для 8-битников считаю позорным ламерством и верхом непрофессионализма. Обсуждения не предполагаю, т.к. бесполезно Цитата(=AVR= @ Nov 4 2007, 02:47)  Во!!! Вот она - квинтэссенция современного ламерского программизьма!!!
Человека, Который Всю Жизнь Писал Для РС на Дельфи И Иже С Ним, ни в коем случае, под страхом расстрела, НИКОГДА нельзя подпускать к МК. Я ясно выразился, надеюсь - НИ-КОГ-ДА!!! .... Именно вам подавай гигагерцы с мегабайтами для того, чтобы и в несчастные МК вы понапихали своих ОС, классов, АПИ, вытесняющей многозадачности и прочего привычного и удобного для вас мусора. И по барабану вам, что в системное взаимодействие будет вовлекаться на порядки большее число физических накристальных структур, что будет убивать безглючность и надежность устройств все сильнее и сильнее. И справиться с вами будет практически невозможно, ибо имя вам - легион, а нас, штучных инженеров - увы, единицы. Налицо явная реализация шаблона "Марку надо наклеивать в правом верхнем углу", описанного Кортасаром в "Историях хронопов и фамов". Если определить тип данных - радикально настроенный программист, признающий исключительно ядро АВР и ассемблер - как хроноп, а программист, гибко использующий все доступные средства для решения задачи - как фам, то при выполнении релиза получим результат, что первый остается на улице с выражением превеликой озадаченности на лице, а второй его утешает, поскольку выполнил и его работу тоже. В особенности, если радикально считать мусором ОС, АПИ и вытесняющую многозадачность. В особенности последнее. Возможно =AVR= будет удивлен, если я заявлю, что ЛЮБАЯ функция прерывания есть частный случай вытесняющей многозадачности. Цитата(zltigo @ Nov 4 2007, 15:37)  Да бог с ним с =AVR=, ясно, что "только от жизни собачей собака бывает кусачей" - что-то у него явно по жизни не в порядке, но тут, полагаю, мы ничего изменить не сможем. Тока грязными сапогами по яйцам бить не надо человека, плз, кто по жизни ни разу не заблуждался, пусть первым бросит в меня камень  Цитата(mse @ Nov 3 2007, 15:54)  Обычно главные боевые особенности архитектуры разработчик прячет не глубже 1-ой стр. даташыта. Конечно же! А Атмелы особенно! Тока это пена. Пример - первая страница даташита Меги 8, что пишется и что потом имеет разработчик: 130 Powerful Instructions – Most Single-clock Cycle ExecutionНа самом деле впоследствии оказывается, что этих самых инструкций где-то 70-80, остальные - "виртуальные", призванные "облегчить программирование", но на самом деле затрудняющие понимание системы команд для именно программистов. Пионерам, возможно и облегчает, но при этом мешает начинать им думать, как программистам. Многие из которых и стают потом фанатами. Кроме этого, если повыкидывать эти самые виртуальные команды, то о Most Single-clock Cycle Execution уже речь идти не может, поскольку где то коло половины команд, причем самые нужные - имеется в виду пересылка данных, выполняются за 2, а то и за 3 такта. 32 x 8 General Purpose Working RegistersПри этом нет ни малейшей поддержки многозадачности, о чем естественно замалчивается. Поэтому при входе в прерывание, при наличии боле-менее сложной функции, чтобы избежать непонятных глюков, в особенности, если пишыш на ассемблере, самое простое и радикальное - это затолкать эти самые 32 x 8 General Purpose Working Registers в стек, а потом вытолкать их, затратив 64 такта. На Ц можно об этом не задумыватся. On-chip Analog ComparatorЭтот компаратор такого качества, что хуже него тока биполярный транзистор.
Сообщение отредактировал oran-be - Nov 5 2007, 08:39
|
|
|
|
|
 |
Ответов
|
Nov 5 2007, 09:51
|
Знающий
   
Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693

|
Цитата(oran-be @ Nov 5 2007, 11:18)  130 Powerful Instructions – Most Single-clock Cycle Execution На самом деле впоследствии оказывается... Впоследствии оказывается, что самые важные команды(арифметицкие и логицкие а так-же доступ к большинству важных портов) таки, в большинстве, одноцикловые. А всякая вспомогательная ересь(загр-выгр, вызовы, переходы...), да, поболее будет. Просто в нормальной программе загружается 2-4 операнда, над ними, в грубой и извращённой форме, проводятся, насколько возможно более длительные, логицко-арифметицкие действия, а затем, по необходимости, поисходит выгрузка результата. И получается, что расход тактов на ввод-вывод 1-10%максимум. А песатель, грузящий два байта, складывающий их и запоминающий результат, достоин одного известного почотного звания. ;О) Можете спросить у =АВР=а, под настроение может присвоить. Про прерывания, многозадачность и 32 регистра, это ваще клиника. ;О) =АВР= просто обязан присвоинть внеочередное почотное звание. На компараторе вполне успешно делал АЦП двойного интегрирования 14р точности. Разрядность, ессно, выше. ;О) Никакихособых проблем с его параметрами не испытывал никогда. ЛМка трёхрублёвая ничем не лучше. В общем, кочайте последний дривер ruki.sys и настойчиво им овладевайте...
|
|
|
|
|
Nov 9 2007, 13:06
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(oran-be) Насчет категоричных заявлений попросил бы воздержаться. Все отностительно. Все зависит от соотношения самопозиционирования себя в своих постах и прикладываемой к этому информаации. Вы же сами сверхкатегорично критиковали саму идею такого АЦП на внутреннем компараторе, пока Oldring не указал на вашу же черезмерную категоричность. А то, как mse себя позиционировал было вполне корректным. Я уже говорил, что на его месте я бы так же общался с недообразованными критиками. Без обид. Но со стороны было виднее, что безо всяких вопросов о механизме обхода недостатков внутреннего компаратора на mse сразу же посыпались заявления о том, что такого не может быть и точка!
Сообщение отредактировал GetSmart - Nov 9 2007, 13:13
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Nov 9 2007, 13:44
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(GetSmart @ Nov 9 2007, 16:06)  Вы же сами сверхкатегорично критиковали саму идею такого АЦП на внутреннем компараторе, пока Oldring не указал на вашу же черезмерную категоричность.
А то, как mse себя позиционировал было вполне корректным. Я уже говорил, что на его месте я бы так же общался с недообразованными критиками. Без обид. Но со стороны было виднее, что безо всяких вопросов о механизме обхода недостатков внутреннего компаратора на mse сразу же посыпались заявления о том, что такого не может быть и точка! Кстати, когда-то давно реализовывал на простейшей рассыпухе АЦП двойного интегрирования с шумом меньше 20 разрядов для оптических измерений. Классическая схема. Операционник - К544УД1. Конденсатор - К73-17. Компаратор - К554СА3. Коммутатор - К590КН6. Опора - стабиллитрон с К140УД7. Однокристалка - ВЕ51. Абсолютная точность практически никакой роли не играла, поэтому её и не исследовал. Интегрировало, правда, несколько секунд - быстрее было особо не нужно.  Самое сложное было - с точностью до такта однокристалки учесть суммарное время интегрирования в каждую сторону.
--------------------
Пишите в личку.
|
|
|
|
|
Nov 10 2007, 13:27
|
Знающий
   
Группа: Новичок
Сообщений: 642
Регистрация: 30-01-07
Пользователь №: 24 888

|
Цитата(Oldring @ Nov 9 2007, 16:44)  Кстати, когда-то давно реализовывал на простейшей рассыпухе АЦП двойного интегрирования с шумом меньше 20 разрядов для оптических измерений. Классическая схема. Операционник - К544УД1. Конденсатор - К73-17. Компаратор - К554СА3. Коммутатор - К590КН6. Опора - стабиллитрон с К140УД7. Однокристалка - ВЕ51. Абсолютная точность практически никакой роли не играла, поэтому её и не исследовал. Интегрировало, правда, несколько секунд - быстрее было особо не нужно.  Самое сложное было - с точностью до такта однокристалки учесть суммарное время интегрирования в каждую сторону. Я тоже в 80-е годы делал на подобной же дешёвой рассыпухе АЦП , только дельта-сигму . ОУ был чуть похуже - К140УД8 . Тактовая частота была 1 мгц , а коэффициент преобразования - 1 герц/мв , соответственно , при времени измерения 1 сек схема давала 6 десятичных разрядов ( соответствует примерно 20 битам ) .... очень хорошо для такого барахла  Помню только , что шум был в младшем разряде , и достигал нескольких единиц .... но если вместо УД8 поставить что-то поприличнее , то шум был бы ещё гораздо меньше . Вообще , как я мыслю , для изготовления АЦП на дешёвой элементной базе дельта-сигма лучше , чем двойное интегрирование , хотя принципы и похожы , в сущности . Если у компаратора есть , например , шумовые флуктуации порога срабатывания , то понятно же , что в дельта-сигме это будет меньше влиять , ибо временной интервал между соседними срабатываниями компаратора в методе двойного интеорирования на несколько порядков больше , соответетвенно , и "убежать" за это время этот порог может значительно дальше  . ПОэтому в методе дельта-сигма решающую роль играет качество ОУ ( хотя и для его шума , ИМХО , верны те же соображения ) , ну и ключи влияют , разумеется ... а вот компаратор можно ставить вообще примитивный , или совсем обойтись без него , используя просто вход логического элемента или простую схему на одном транзисторе .
|
|
|
|
|
Nov 10 2007, 15:07
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(deemon @ Nov 10 2007, 16:27)  Если у компаратора есть , например , шумовые флуктуации порога срабатывания , то понятно же , что в дельта-сигме это будет меньше влиять , ибо временной интервал между соседними срабатываниями компаратора в методе двойного интеорирования на несколько порядков больше , соответетвенно , и "убежать" за это время этот порог может значительно дальше  . Да нет - тут важно насколько порог убегает по отношению к скорости нарастания сигнала, и при многократном интегрировании скорости нарастания достаточно большие чтобы это было несущественным. И важны пороги только начала измерения и конца. Может быть сигма-дельта был бы получше - но тогда я был студентом и теорию сигма-дельта АЦП еще не читал  Но и так получилось прилично, тем более, что доступные однокристальные АЦП такой разрядности тогда еще не появились. Помню, что чтобы увидеть низкий шум самого АЦП приходилось на вход подключать плоскую батарейку  Причем медленные дрейфы сигнала устранялись при обработке - важны были разности соседних отсчетов. Полное время интегрирования сигнала было 4 секунды при дискрете таймера 51-й микросекунда.
--------------------
Пишите в личку.
|
|
|
|
|
Nov 10 2007, 16:00
|
Знающий
   
Группа: Новичок
Сообщений: 642
Регистрация: 30-01-07
Пользователь №: 24 888

|
Цитата(Oldring @ Nov 10 2007, 18:07)  Да нет - тут важно насколько порог убегает по отношению к скорости нарастания сигнала, и при многократном интегрировании скорости нарастания достаточно большие чтобы это было несущественным. Да , кстати , и это тоже важно ! Тут со всех сторон выгода получается ..... Что меня удивляло всегда - почему такой простой и надёжный метод преобразования не применяли в отечественных цифровых вольтметрах ? Большинство приборов были 4-разрядные , и я видел только один 5-разрядный , но его АЦП был настолько громозкий и дебильно сделанный , что постоянно глючил ...... а тут - на простой и дешёвой элементной базе легко получается 6 разрядов , а цифровая часть представляет собой простой частотомер , и его можно собрать на дешёвом микропроцессоре , даже не на рассыпухе , и почему так не делали ??? Кстати , вот и современные медленные и точные 24-битные АЦП тоже все дельта-сигмы , а 24 бита - это примерно 7 десятичных разрядов . Это , надо полагать , максимально достижимая в настоящее время точность при частоте выборок порядка сотен герц . Но что характерно - если не предъявлять экстремальных требований к точности и скорости , то даже и сейчас можно не покупать специальный дорогой АЦП , а подключить к микропроцессору хороший ОУ и ключ , и сделать схему , которая легко даст 20 бит при времени измерения порядка 0,1-1 сек . Это может оказаться выгоднее по цене комплектующих .
|
|
|
|
|
Nov 12 2007, 11:05
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(deemon @ Nov 10 2007, 19:00)  Что меня удивляло всегда - почему такой простой и надёжный метод преобразования не применяли в отечественных цифровых вольтметрах ? Большинство приборов были 4-разрядные , и я видел только один 5-разрядный , но его АЦП был настолько громозкий и дебильно сделанный , что постоянно глючил ...... а тут - на простой и дешёвой элементной базе легко получается 6 разрядов , а цифровая часть представляет собой простой частотомер , и его можно собрать на дешёвом микропроцессоре , даже не на рассыпухе , и почему так не делали ??? Кстати , вот и современные медленные и точные 24-битные АЦП тоже все дельта-сигмы , а 24 бита - это примерно 7 десятичных разрядов . Это , надо полагать , максимально достижимая в настоящее время точность при частоте выборок порядка сотен герц . Дело в том, что это 20-24 разряда не точности, а шума и диффнелинейности. Цитата(oran-be @ Nov 11 2007, 16:25)  А в интегрирущих АЦП, скорее всего, имеет место "неявное усреднение". В принципе и из 10-битного АЦП последовательного приближения также можно извлечь 14 и даже 16 разрядов, только придеться произвести много измерений и потом усреднить результат. Нет, конечно. В многоцикловых интегрирующих АЦП имеет место совершено явное усреднение. Причем, с взаимной компенсацией погрешностей соседних циклов. Это приводит к уменьшению СКО шума пропорционально времени измерения, а не корню квадратному из времени измерения, как при усреднении потом в цифре. Кстати, сигма-дельта АЦП до некоторой степени обладают тем же свойством - пока все не упирается в шумовой пол.
--------------------
Пишите в личку.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|