[image]

Курс: программирование МК AVR "с нуля"

 
1 6 7 8 9 10 11 12
+
-
edit
 

Serge77

модератор

> Посмотрите сколько сообшений типа: "я нчал писать прогу, и пошло... не оторваться"

Да, это мне знакомо. Особенно запомнились два момента: первый Бэйсик на терминале СВМ и освоение внутреннего языка химической СУБД, который был не похож ни на что ранее изученное и к которому была очень куцая документация. Такого азарта, как в те почти непрерывные несколько суток "оборения" той СУБД, я не испытывал уже давно. Какой же был восторг, когда молекулы наконец-то начали склеиваться так, как я хотел!

> Блин! не ужто нет такой технологии? Что-то типа групповой разработки. Или ограничения только по скорости сети?

Балансер про wiki что-то писал, но я не знаю, подойдёт ли это сюда.

> Время (Московское! Кхе.. кхе... )

Действительно! Хорошо, что напомнил ;^))

> и дату урока можно уточнять - предлагайте. "регистрацию" нчнем за 10 минут до нчала.

У меня практически каждый вечер после 21-00 (мск) свободен.
   
RU termostat #05.03.2004 16:49
+
-
edit
 

termostat

аксакал

По он-лайн тренингу - не обязательно весь час связь держать, достаточно раз в 5 минут заходить да обновлять страничку, и до следующего сеанса связи анализировать сделаное и формулировать вопросы. Ну я то час в он-лайн посижу.

Я расчитываю что вопросы будут поступать в ходе работы.
   
Это сообщение редактировалось 05.03.2004 в 17:32
RU termostat #06.03.2004 19:21
+
-
edit
 

termostat

аксакал

забыто ...


   
Это сообщение редактировалось 07.03.2004 в 13:16
+
-
edit
 

Serge77

модератор

termostat, 06.03.2004 18:21:45 :
В задачу 05 курса - о применении АЦП в МК at90s8535 - я внес исправления и существенные дополнения!
 


Там написано:



Итак если мы подали на вывод AREF X вольт - то можем измерять напряжения от 0 до 5 вольт с шагом: X /1024 вольт с точностью: ±(X * 3 / 1024)



Действительно до 5 вольт или всё-таки до Х вольт? Это что, проверка на внимательность? ;^))
   
+
-
edit
 

Serge77

модератор

"Можно использовать периодическое измерение какого либо опорного, эталонного напряжения и затем учитывать полученное значение для устранения ошибки АЦП вычислительными средствами. "

Я не понял, как это поможет? Ведь погрешность АЦП - это скорее всего случайная величина, т.е. это эталонное напряжение тоже будет измеряться с точностью ±2 LSB. Или нет?

Вообще это очень важный вопрос. Если ±2 LSB - это случайный шум, то поможет усреднение, а эталон не нужен. Если это систематическая ошибка, разная в разных МК, но постоянная для конкретного МК, тогда нужен эталон, а усреднение бесполезно. Конечно, может быть и то, и другое.

Судя по этой цитате, ты считаешь погрешность систематической:

"На самом деле АЦП вполне нормальный и если проводить серию измерений одного и того же напряжения? в одних и тех же условиях, мы скорей всего будем получать один и тот же результат, однако он может быть одним из СЕМИ приведенных выше! "


   
Это сообщение редактировалось 06.03.2004 в 20:20
+
-
edit
 

coolnik

новичок
очерди нет так как логика там без памяти. Есть приоритетность.
Дык и для меня это очевидно, поэтому-то я и задал этот вопрос. Ни как не могу догнать, почему VMLAB прыгает на прерывания без события??? Блин, ну подскажите, кто знает!!! Как от этого избавиться?

Насчет LPT – просто я не правильно выразился, конечно же? Я использую EPP, вот только четырех битов Сontrol регистра мне мало, тремя ЦАП-ы адресую, один остается для МК. Так что приходится извращаться.
Прикреплённые файлы:
 
   
+
-
edit
 

Demonos

втянувшийся
Здравствуйте всенеприменнейше!
Основной вопрос к Термостату:
Подписавшись на Circuit Cellar получил в подарок ISP программер, кабели, диск и два ATmega 162.
Всё это замечательно, но без знания ассемблера приходится мне туго. Запаял схему простейшую - кнопка да светодиод. Посредине МК с кварцом. При подаче напряжения программер схватывает, софт работает. То есть заливает на МК по заказу. Вроде. Но вот проблема у меня - Асм МК от Atmel сильно отличается от асмы для М51. Да и вообще с ассемблером у меня хреновато. Последняя программа (недописанная) сдохла ещё на ZX Spectrum. Как можно это исправить? В смысле есть ли ссылки которые бы жизнь облегчили? Научи, гуру?
   
RU termostat #07.03.2004 02:18
+
-
edit
 

termostat

аксакал

coolnik, 06.03.2004 20:48:37 :
Ни как не могу догнать, почему VMLAB прыгает на прерывания без события??? Блин, ну подскажите, кто знает!!! Как от этого избавиться?

Ну не хочешь использовать только КОМ порт. дак приколись и добавь его к LPT.

По "кому" передавай в устройство, а по LPT принимай от устройства. Ты будешь ПЕРВЫМ на рынке :-))))
 


Я скачал твою эмуляцию попробую помотреть, помочь.

Насчет того что тебе понятно... Тыж написал про какую то очередь из прерываний, вот я и ответил что ее быть не может.

   
RU termostat #07.03.2004 02:51
+
-
edit
 

termostat

аксакал

Demonos, 07.03.2004 02:17:21 :
Подписавшись на Circuit Cellar получил в подарок ISP программер, кабели, диск и два ATmega 162.

Всё это замечательно, но без знания ассемблера приходится мне туго.
 


Молодец! кто успел, тот не опоздал.

Да и меня поддержал, а то мне кажется народ уже сумлевается получаю ли я бесплатно все те дары о которых пишу... Аналог девайс вот АЦП AD7706 16 битные прислал 2 штучки. После праздников с почты принесут.

По ассемблеру - он понимаешь создан для мучения! ПРОШУ тебя - пиши на Си. Не нужно знать Си - нужно знать несколько инструкций, а как начать почитай мой курс avr123.by.ru до 6 страницы и переходи на задачи. Обязательно проделай задачи - они не большие.

Скачай себе Компилятор CV или ICC и 10 марта с 20 до 21 часов ты наверняка начнешь успешно программировать - о тренинге в топике "Пишем прогу для МК AVR в он-лайн - тренинг AVR"

Вот без чего ни как не обойтись, так это без ДатаШита на МК с которым ты собираешся работать.

И еще, не торопись паять. Есть же эмулятор VMLAB - в нем можно не только помигать светодиодами.
   
RU termostat #07.03.2004 02:58
+
-
edit
 

termostat

аксакал

Serge77, 06.03.2004 20:05:46 :
-------
Итак если мы подали на вывод AREF X вольт - то можем измерять напряжения от 0 до 5 вольт с шагом: X /1024 вольт с точностью: ±(X * 3 / 1024)



Действительно до 5 вольт или всё-таки до Х вольт? Это что, проверка на внимательность? ;^))
 


Нет написано правильно. Подразумевается что питание МК 5 вольт.

Если на AREF Х вольт (причем 2 <= Х <= 5) то мы можем измерять напряжения от 0 до 5 вольт но напряжения >= X будут давать код 1023.

если на AREF 3 вольта, то любое напряжение на входе АЦП от 3 до 5 вольт будет давать результат 1023.

Если подавать на вход вольтаж выше питания то можно просто спалить МК.
   
Это сообщение редактировалось 07.03.2004 в 13:17
+
-
edit
 

coolnik

новичок
Ну не хочешь использовать только КОМ порт. дак приколись и добавь его к LPT.
 
:D:D:D хе-хе. На это предложение ты сам ответил
Ты будешь ПЕРВЫМ на рынке
 
. Эта байда - мой диплом и за два порта меня просто похоронят.

Я скачал твою эмуляцию попробую помотреть, помочь.
 

только на это и надеюсь. Сам уже перепробовал все, что можно. ;)
   
RU termostat #07.03.2004 03:38
+
-
edit
 

termostat

аксакал

Serge77, 06.03.2004 20:13:44 :
Если ±2 LSB - это случайный шум, то поможет усреднение, а эталон не нужен. Если это систематическая ошибка, разная в разных МК, но постоянная для конкретного МК, тогда нужен эталон, а усреднение бесполезно. Конечно, может быть и то, и другое.
 


Я ориентируюсь на параметр: нелинейность ±0.5 LSB - Шум в ±2 LSB сюда не уложится. Но это мое мнение - я считаю эту ошибку разной у разных МК и при разных условиях в одном МК. Поэтому предлагаю мерить и запоминать эталоны.

Параметры АЦП рсписаны с графиками в ДШ на ATmega16.

Но похоже источники опроного напряжения нам не понадобятся для MPX41xx - потому как у них выходное напряжение пропорционльно напряжению питания. И эталонные напряжения нам даст простой резистивный делитель. с ADXL150 еще не разобрлся. подробней в теме "007 ..."
   
+
-
edit
 

Serge77

модератор

termostat, 07.03.2004 01:58:53 :
Если на AREF Х вольт (причем 2 <= Х <= 5) то мы можем измерять напряжения от 0 до 5 вольт но напряжения >= X будут давать код 1023.
 


В моём понимании это не называется "измерять от 0 до 5 вольт ". Именно измеряем мы до Х, а дальше - это уже не измерение. Не знаю, как назвать, может допустимый зашкал.
   
+
-
edit
 

Serge77

модератор

termostat, 07.03.2004 02:38:08 :
Я ориентируюсь на параметр: нелинейность ±0.5 LSB - Шум в ±2 LSB сюда не уложится. Но это мое мнение - я считаю эту ошибку разной у разных МК и при разных условиях в одном МК. Поэтому предлагаю мерить и запоминать эталоны.
 


Вообще-то погрешность измерения, нелинейность и смещение нуля - это независимые величины. В документации так и даны три величины: accuracy, non-linearity, zero error (offset).

Вот только я теперь не понимаю, что такое LSB ?
Есть такие данные для absolute accuracy:

при частоте ADC clock = 200 kHz: 1 LSB (max 2 LSB)
при частоте ADC clock = 1 MHz: 4 LSB
при частоте ADC clock = 2 MHz: 16 LSB

Я почему-то считал, что LSB - это младшие значащие биты (Least Significant Bit). Но тогда что значит 16 LSB, если битов всего 10 ?

Не сходится с 16 LSB и определение Термостата:
"±2 LSB Accuracy - точность результата ±2 младших разряда (подробней дальше!). Два разряда двоичного числа, это десятичное число от 0 до 3, значит точность составляет ±(3 : 1024) от полной шкалы."

Получится, что для 16 LSB погрешность будет ±(65000 : 1024).

Похоже, что LSB - это один шаг компаратора, т.е. просто 1/1024. Тогда ±2 LSB - это ±(2 : 1024), а 16 LSB - это ±(16 : 1024) (для 10-разрядного АЦП).

Тогда при ±2 LSB на одно измерение может получаться не семь, а только пять вариантов результата.

Тогда точность измерения высоты получается не хуже ± 15 м у земли, что совершенно достаточно. При этом видимо не нужны никакие эталоны напряжения.
   
RU termostat #07.03.2004 14:34
+
-
edit
 

termostat

аксакал

Вообще-то погрешность измерения, нелинейность и смещение нуля - это независимые величины. В документации так и даны три величины: accuracy, non-linearity, zero error (offset).
 


Ну то что они даны в ДШ не означает что они не зависимы. Я считаю для себя очевидным что ±2 LSB это АБСОЛЮТНАЯ погрешность, значит это поле в которое попадает и нелинейность и смешение.

Понять это лучше на графике.

Если нарисовать наклонную линию (график Код - напряжение) идеального АЦП то поле возможных знчений получится смещением этой линии на 2 позиции вверх и вниз. А поле возможных значений для данного МК при данных условиях будет полоска шириной в 1 код (это нелинейность), каким то образм расположеня в границах поля возможных знчений.

Отклонение этой полоски от 0 и есть смещение. Для определения положения этой полоски нужно измерить два эталонных напряжения.

Я почему-то считал, что LSB - это младшие значащие биты (Least Significant Bit). Но тогда что значит 16 LSB, если битов всего 10 ?
 


да LSB это младшенький и есть. Но из "16 LSB" (я как раз читал ДШ на AtMega16 и заметил эти цифры) железно следует, что все правильно у меня в задаче 05 написано изначально.

т.е. Абс. ошибка ±2 LSB означает ±2 шага измерения, а по ДШ типовое значение даже ±1 LSB. Вобщем не так плохо.

Хотя лучшеб в ДШ написали ошибку в шагах.

При этом видимо не нужны никакие эталоны напряжения.
 


Ну это по желанию - я ж говорю компоненты можно паять в схему по желанию, комуто и датчика ускорений будет достаточно, а кому то и активация спасения нужна и давление. Мне вот калибровочные результаты подавай...
   
RU termostat #07.03.2004 17:03
+
-
edit
 

termostat

аксакал

coolnik, 07.03.2004 03:19:05 :
только на это и надеюсь. Сам уже перепробовал все, что можно. ;)
 


Сделал я твою прогу чтоб прервания она совершала каждый второй импульс от ПК. У тебя она действительно на каждое обращение реагировала двумя прерываниями.

Мои исправления обознчены //*

nop - можешь повыкидывать, это я в тестовых целях понаставил. Хотя и сними будет работать.

p.s. У тебя какого размера монитор??? чето в VMLAB все окна были так раскиданы как будто 21" - не меньше! :-)
Прикреплённые файлы:
 
   
RU [Дмитрий] #07.03.2004 19:40
+
-
edit
 
кто нибудь подскажите, у меня при попытке эмулировать в VM Lab прогу из ICC выдается сообщение что RJAMP вектор указывает на неизвестную область памяти. как это лечится?
 
RU termostat #07.03.2004 20:36
+
-
edit
 

termostat

аксакал

Если ICC скомпилировал без сообщений об ошибках то .hex рабочий. Значит VMLAB должен ругнутся и работать дальше.
   
RU [Дмитрий] #07.03.2004 21:59
+
-
edit
 
так в том то и дело, что ICC говорит что все путем и в МК использован 1%. а VMLab выдает надпись про рджамп при билде, и отказывается работать с прогой дальше(т.е. светофор серый)
 

Lioxa

втянувшийся
А я убедился на опыте что VMLAB просто так неругается. Ты включил Stack Pointer ?

ldi r16, low(RAMEND)
out SPL, r16
ldi r16, high(RAMEND)
out SPH, r16
   
RU [Дмитрий] #07.03.2004 22:03
+
-
edit
 
а поподробней, а то я чайник еще.
 
+
-
edit
 

coolnik

новичок
Termostat, СПАСИБО тебе огромное. Выручил! Я бы до конца жизни думал, из-за чего такой глюк бывает. А ведь как одним местом чувствовал, что в GIFR собака зарыта. Только не знал где именно…
Ну, вроде все. Программщину для компа тоже написал, теперь надо в железе собирать. По сему железная часть вопросов:
1.Как лучше организовать питание? Насколько я понял, МК очень чувствительны к его изменениям. Вообще, питать собираюсь от блока питания компа, к которому эта байда подключается.
2.Можно ли напрямую подключать выводы МК к LPT или нужны согласующие каскады. Особенно, когда LPT (EPP) работает на прием данных.
3.На какие токи рассчитаны входы ADC, т.е. резисторы каких номиналов брать при расчете делителей.
   
+
-
edit
 

coolnik

новичок
[Дмитрий:],07.03.2004 22:03:19
а поподробней, а то я чайник еще.
 


Соет чайнику от чайника :D

У меня было что-то похожее, когда тоже только начал… только вот точно уже не помню чего.
Проверь, когда компилировал прогу, тот ли камень указал. И еще, нет ли у тебя в проге всякой лабуды типа RETI и т.п.
А вообще, VMLAB и правда, не с фига ругаться не станет. Перепроверь прогу.
   
RU termostat #08.03.2004 03:20
+
-
edit
 

termostat

аксакал

ICC говорит что все путем и в МК использован 1%.
 


Значит все есть в проге.


VMLab выдает надпись про рджамп при билде, и отказывается работать с прогой дальше(т.е. светофор серый)
 


Проверь тот ли процессор указан? Используй только .hex файл

а лучше зарегистрируйся и все в зипе прицепи сюда.
   
RU termostat #08.03.2004 03:52
+
-
edit
 

termostat

аксакал

питать собираюсь от блока питания компа, к которому эта байда подключается.
 


Нормально, только бери 12 вольт а в устройстве свой стабилизатор ставь 7805. конденсаторы по 0.1 не жалей. и на 5 вольтах поставь "тантал" н 10 мкф не более!


2.Можно ли напрямую подключать выводы МК к LPT
 


Обычно резиторы ставят по 200 ом, но можно и на прямую.

3.На какие токи рассчитаны входы ADC, т.е. резисторы каких номиналов брать при расчете делителей.]
 


На землю 10 кОм нормально, а на щуп посчитай. Вобще лучше как можно меньше взять, чтоб не сгорели резюки только. А из средней точки пустить резистор на 10 кОм на вход АЦП МК - так он под защитой окажется.
   
1 6 7 8 9 10 11 12

в начало страницы | новое
 
*: Международный женский день (2020 лет).
Поиск
Поддержка
Поддержи форум!
ЯндексЯндекс. ДеньгиХочу такую же кнопку
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru