|
Из темы "Сравнение 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 11 2007, 13:25
|
Местный
  
Группа: Свой
Сообщений: 234
Регистрация: 30-03-07
Из: Одесса
Пользователь №: 26 621

|
Цитата(deemon @ Nov 10 2007, 17:27)  Я тоже в 80-е годы делал на подобной же дешёвой рассыпухе АЦП , только дельта-сигму . ОУ был чуть похуже - К140УД8 . Тактовая частота была 1 мгц , а коэффициент преобразования - 1 герц/мв , соответственно , при времени измерения 1 сек схема давала 6 десятичных разрядов ( соответствует примерно 20 битам ) .... очень хорошо для такого барахла  Помню только , что шум был в младшем разряде , и достигал нескольких единиц .... но если вместо УД8 поставить что-то поприличнее , то шум был бы ещё гораздо меньше . Вообще , как я мыслю , для изготовления АЦП на дешёвой элементной базе дельта-сигма лучше , чем двойное интегрирование , хотя принципы и похожы , в сущности . Если у компаратора есть , например , шумовые флуктуации порога срабатывания , то понятно же , что в дельта-сигме это будет меньше влиять , ибо временной интервал между соседними срабатываниями компаратора в методе двойного интеорирования на несколько порядков больше , соответетвенно , и "убежать" за это время этот порог может значительно дальше  . ПОэтому в методе дельта-сигма решающую роль играет качество ОУ ( хотя и для его шума , ИМХО , верны те же соображения ) , ну и ключи влияют , разумеется ... а вот компаратор можно ставить вообще примитивный , или совсем обойтись без него , используя просто вход логического элемента или простую схему на одном транзисторе . Тип используемого компаратора не указали. Если популярный 554СА3(?), популярный на те времена. то он по сравнению с Атмеловским просто суперпрецезионный. Он даже значительно лучше, чем популярный сейчас ЛМ393(339). А в интегрирущих АЦП, скорее всего, имеет место "неявное усреднение". В принципе и из 10-битного АЦП последовательного приближения также можно извлечь 14 и даже 16 разрядов, только придеться произвести много измерений и потом усреднить результат. Так же и в дельта-сигме ввиду частого срабатывания компаратора скорее всего имеет место понижение его шума через усреднение. В Ацп двойного интегрирования компаратор срабатывает 2 раза за цикл и поэтому важна его точность. Зато интегируются входные шумы и шумы операционника.
|
|
|
|
|
Nov 11 2007, 15:19
|
Знающий
   
Группа: Новичок
Сообщений: 642
Регистрация: 30-01-07
Пользователь №: 24 888

|
Цитата(oran-be @ Nov 11 2007, 16:25)  Тип используемого компаратора не указали. Если популярный 554СА3(?), популярный на те времена. то он по сравнению с Атмеловским просто суперпрецезионный. Он даже значительно лучше, чем популярный сейчас ЛМ393(339). Так в этой схеме можно обойтись даже и без компаратора , используя просто вход логики , при этом лишь немножко увеличивается шум , что сказывается на коротких интервалах измерения ...... так что компаратор от процессора Атмел скорее всего подойдёт  А 554СА3 - хороший компаратор , это же , если мне память не изменяет , LM311 передранный . Вообще-то , хоть я и не программист , но думаю , что реализация этой дельта-сигмы на процессоре не должна быть сложной , и уж точно будет проще метода двойного интегрирования . Там из аналоговой части останется только ОУ и один ключ ( лучше токовый , дифференциального типа , но пойдёт и обычный КМОП ключ ) , а всё остальное , включая компаратор - будет в составе процессора . Просто и удобно .
Сообщение отредактировал deemon - Nov 11 2007, 15:20
|
|
|
|
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|