реклама на сайте
подробности

 
 
> АЦП и UART
Thumper
сообщение Jun 30 2006, 17:58
Сообщение #1





Группа: Новичок
Сообщений: 7
Регистрация: 30-06-06
Из: Томск
Пользователь №: 18 491



Я программирую Atmega8
КАк подсчитать будет ли успевать UART передавать данные со скоростью 15200 бит/с с АЦП на ЭВМ, если известь что частота преобразования АЦП до 15 тыс. преобразований в секунду при максимальном разрешении, а время преобразования 65-260мкс. АЦП 10-ти разрядный и последовательного приближения. Сигнал принимается только на порт ADC0.
КАк узнать успеет ли UART переслать все данные которые пришли с АЦП
и принять новые?
Как подсчитать сколько времени придётся ждать АЦП, если, всётаки UART не успеет?
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 21)
DS
сообщение Jun 30 2006, 18:13
Сообщение #2


Гуру
******

Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250



Для передачи по UART данных с АЦП с 15 Квыборок в секунду Вам по меньшей мере понадобиться скорость UART 230 Кбод. В принципе такая скорость ставиться на ATmege


--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Jun 30 2006, 18:15
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Элементарно:
Скорость обмена делите на количество бит в посылке (для стандартного 8N1 это 10 бит). Добавляте пару процентов на накладные расходы по пересылке данных и прерывания.Получаете время передачи одного байта. Дальше смотрите с какой скоростью способно выдавать данные АЦП и будете ли вы передавать все 10 бит. Возможно стоит накапливать и паковать данные, чтобы не было незначащих бит.Времянки АЦП расписаны потактово, такчто это не проблема. Самому считать лениво.



PS
Цитата
Для передачи по UART данных с АЦП с 15 Квыборок в секунду Вам по меньшей мере понадобиться скорость UART 230 Кбод. В принципе такая скорость ставиться на ATmege

Но не на компьютере. sad.gif


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
Wild
сообщение Jun 30 2006, 18:17
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 216
Регистрация: 26-05-06
Из: Коломна
Пользователь №: 17 479



Цитата(Thumper @ Jun 30 2006, 21:58) *
Я программирую Atmega8
КАк подсчитать будет ли успевать UART передавать данные со скоростью 15200 бит/с с АЦП на ЭВМ, если известь что частота преобразования АЦП до 15 тыс. преобразований в секунду при максимальном разрешении, а время преобразования 65-260мкс. АЦП 10-ти разрядный и последовательного приближения. Сигнал принимается только на порт ADC0.
КАк узнать успеет ли UART переслать все данные которые пришли с АЦП
и принять новые?
Как подсчитать сколько времени придётся ждать АЦП, если, всётаки UART не успеет?


c С АЦП поток - 15000 10ти битных слов в секунду, по UART при скорости 115200 режиме 8 бит данных без бита четности 1 стоповый (посылка 10бит) можно передать 11520 восьмибитных слов в секунду.
То есть, при грамотной организации передачи, где то половину времени АЦП будет простаивать (при максимальной скорости своей работы).
Go to the top of the page
 
+Quote Post
white.wind
сообщение Jun 30 2006, 18:52
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 2-05-06
Из: Санкт-Петербург
Пользователь №: 16 707



А как насчет SPI?
Go to the top of the page
 
+Quote Post
DS
сообщение Jun 30 2006, 19:04
Сообщение #6


Гуру
******

Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250



Цитата(beer_warrior @ Jun 30 2006, 22:15) *
PS
Цитата
Для передачи по UART данных с АЦП с 15 Квыборок в секунду Вам по меньшей мере понадобиться скорость UART 230 Кбод. В принципе такая скорость ставиться на ATmege

Но не на компьютере. sad.gif


На компьютере ставиться до 960 Кбит. Если не совсем древний.


--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
Go to the top of the page
 
+Quote Post
Nanobyte
сообщение Jun 30 2006, 19:38
Сообщение #7


За битами по регистрам гоняюсь
***

Группа: Свой
Сообщений: 457
Регистрация: 24-04-06
Из: Таганрог
Пользователь №: 16 446



Может быть, USB от FTDI приклеить, до 8 мБит/с всё-таки ... Поставить соответствующий кварцевый резонатор, типа 11.059 мГц, тогда можно и на стандартные скорости настроить. Хотя ... , FTDI245 чихать хотел на настройки скорости передачи в ПК.


--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
Go to the top of the page
 
+Quote Post
defunct
сообщение Jun 30 2006, 23:20
Сообщение #8


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



> Как подсчитать сколько времени придётся ждать АЦП, если, всётаки UART не успеет?

8K-10K, 8-ми битных семплов в секунду (SPS) можно передавать по UART'у без проблем.
Используйте режим ADLAR, разумеется если Вас устраивает точность АЦП не 10бит а 8. Тем паче смысла в 10-ти битном преобразовании вроде бы и не особо то много, у AVR'овского АЦП суммарная погрешность составляет 1.5LSB.
Go to the top of the page
 
+Quote Post
Thumper
сообщение Jul 1 2006, 04:53
Сообщение #9





Группа: Новичок
Сообщений: 7
Регистрация: 30-06-06
Из: Томск
Пользователь №: 18 491



Извините, просто я только начал осваивать микроконтроллеры и много чего ещё не понимаю.
Цитата(DS_ @ Jul 1 2006, 01:13) *
Для передачи по UART данных с АЦП с 15 Квыборок в секунду Вам по меньшей мере понадобиться скорость UART 230 Кбод. В принципе такая скорость ставиться на ATmege

А чтобы установить 230 кбит/с какое значение нужно записать в UBRR при частоте 7.3728МГц?

Что такое 8N1?

Цитата
Дальше смотрите с какой скоростью способно выдавать данные АЦП и будете ли вы передавать все 10 бит. Возможно стоит накапливать и паковать данные, чтобы не было незначащих бит.Времянки АЦП расписаны потактово, такчто это не проблема.

Да! Я собираюсь передавать все 10бит. Если АЦП придётся простаивать, то будет ли он простоивать при
8 битном преобразовании?

Цитата
c С АЦП поток - 15000 10ти битных слов в секунду, по UART при скорости 115200 режиме 8 бит данных без бита четности 1 стоповый (посылка 10бит) можно передать 11520 восьмибитных слов в секунду.
То есть, при грамотной организации передачи, где то половину времени АЦП будет простаивать (при максимальной скорости своей работы).

Почему 11520? Это всегда так?

Цитата
То есть, при грамотной организации передачи, где то половину времени АЦП будет простаивать (при максимальной скорости своей работы).

Тоесть в программе необходимо написать цикл ожидания АЦП пока UART не закончит передавать данные?

Цитата
А как насчет SPI?

Не могу! Техническое задание не позволяет.

Большое всем спасибо за помощь!
Go to the top of the page
 
+Quote Post
Thumper
сообщение Jul 1 2006, 05:27
Сообщение #10





Группа: Новичок
Сообщений: 7
Регистрация: 30-06-06
Из: Томск
Пользователь №: 18 491



Цитата
Используйте режим ADLAR, разумеется если Вас устраивает точность АЦП не 10бит а 8. Тем паче смысла в 10-ти битном преобразовании вроде бы и не особо то много, у AVR'овского АЦП суммарная погрешность составляет 1.5LSB.

Тоесть, если АЦП будет работать в 10-битном режиме, то UART не успеет передать данные. Вы предлагаете установить в ADLAR 1-цу!

Большое всем спасибо за помощь! Может с вами можно связаться через ICQ? чтобы задать вопросы на прямую.
Go to the top of the page
 
+Quote Post
Thumper
сообщение Jul 1 2006, 11:01
Сообщение #11





Группа: Новичок
Сообщений: 7
Регистрация: 30-06-06
Из: Томск
Пользователь №: 18 491



У меня МК работает на частоте 7,3728 МГц
Я установил предделитель АЦП на 64. Получается что АЦП работает на частоте 115,2 кГц.
Как найти время преобразования АЦП при такой частоте?
Go to the top of the page
 
+Quote Post
Thumper
сообщение Jul 1 2006, 11:12
Сообщение #12





Группа: Новичок
Сообщений: 7
Регистрация: 30-06-06
Из: Томск
Пользователь №: 18 491



У меня МК работает на частоте 7,3728 МГц
Я установил предделитель АЦП на 64. Получается что АЦП работает на частоте 115,2 кГц.
Как найти время преобразования АЦП при такой частоте?
Go to the top of the page
 
+Quote Post
Thumper
сообщение Jul 1 2006, 11:26
Сообщение #13





Группа: Новичок
Сообщений: 7
Регистрация: 30-06-06
Из: Томск
Пользователь №: 18 491



У меня МК работает на частоте 7,3728 МГц
Я установил предделитель АЦП на 64. Получается что АЦП работает на частоте 115,2 кГц.
Как найти время преобразования АЦП при такой частоте?

Сообщение отредактировал Thumper - Jul 1 2006, 11:26
Go to the top of the page
 
+Quote Post
DS
сообщение Jul 1 2006, 12:03
Сообщение #14


Гуру
******

Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250



Что грузить в регистры, есть в Datasheet в таблицах. Для 230 К и Вашего кварца, в зависимости от режима - либо 1, либо 3. Про количество тактов АЦП, опять же смотрите в DS - при непрерывной работе - 13 тактов на преобразование.


--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
Go to the top of the page
 
+Quote Post
vooon
сообщение Jul 1 2006, 12:06
Сообщение #15


Участник
*

Группа: Свой
Сообщений: 72
Регистрация: 27-06-06
Из: Msk
Пользователь №: 18 401



У АВР АЦП последовательного приближения - т.е. идет инкремент значения ЦАП до совпаденя с сигналом => время преобразования зависит от величины сигнала, но можно высчитать наихудший вариант - отсчет от 0 до (2**n)-1, где n - разрядность, ** - степень ; т.е.

115,2 кГц = 8.7e-6 c = 8.7 мкс

8.7e-6 * 2**8 = 0.00222 с = 2.2 мс

P.S. почитайте книгу "Аналого-цифровые и цифро-аналоговые преобразователи справочник" В. А. Никамин
достаточно просто и понятно

Сообщение отредактировал vooon - Jul 1 2006, 12:13
Go to the top of the page
 
+Quote Post
Shurmas
сообщение Jul 1 2006, 12:20
Сообщение #16


Местный
***

Группа: Новичок
Сообщений: 232
Регистрация: 24-06-06
Пользователь №: 18 332



Цитата(Thumper @ Jul 1 2006, 15:26) *
АЦП работает на частоте 115,2 кГц.
Как найти время преобразования АЦП при такой частоте?


в ДШ есть диаграмма где нарисована работа АЦП по-тактово.
Go to the top of the page
 
+Quote Post
defunct
сообщение Jul 1 2006, 13:38
Сообщение #17


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Thumper @ Jul 1 2006, 08:27) *
Тоесть, если АЦП будет работать в 10-битном режиме, то UART не успеет передать данные. Вы предлагаете установить в ADLAR 1-цу!

Да, предлагаю ADLAR установить в 1, считывать ADCH и сразу отправлять получненный с АЦП байт по УАРТу. 8-10KSPS гарантировано будет работать.
Go to the top of the page
 
+Quote Post
Thumper
сообщение Jul 1 2006, 14:04
Сообщение #18





Группа: Новичок
Сообщений: 7
Регистрация: 30-06-06
Из: Томск
Пользователь №: 18 491



Цитата(defunct @ Jul 1 2006, 20:38) *
Да, предлагаю ADLAR установить в 1, считывать ADCH и сразу отправлять получненный с АЦП байт по УАРТу. 8-10KSPS гарантировано будет работать.

Но тогда упадёт точность преобразования АЦП. Не лучше ли будет написать ожидание АЦП (в виде пустого цикла) пока UART не передаст данные?

Сообщение отредактировал Thumper - Jul 1 2006, 14:06
Go to the top of the page
 
+Quote Post
Yura_K
сообщение Jul 1 2006, 18:30
Сообщение #19


Частый гость
**

Группа: Свой
Сообщений: 185
Регистрация: 5-05-06
Из: Ekaterinburg, Russia
Пользователь №: 16 821



А какие сигналы приходится цифровать (в смысле спектра)? Почему именно 15k выборок в секунду?


--------------------
Чудес не бывает - бывает мало знаний и опыта!
Go to the top of the page
 
+Quote Post
defunct
сообщение Jul 2 2006, 14:12
Сообщение #20


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Thumper @ Jul 1 2006, 17:04) *
Но тогда упадёт точность преобразования АЦП. Не лучше ли будет написать ожидание АЦП (в виде пустого цикла) пока UART не передаст данные?

C точки зрения управляющей программы на PC, выгодно чтобы в каждом принятом байте с UART'a был результат преобразования АЦП, т.к. в этом случае не придется делать пакетную передачу. Ну а насчет точности, ведь у АЦП точность 1.5LSB, т.о. младшие два бита 10-ти битного преобразования могут быть недостоверными.
Go to the top of the page
 
+Quote Post
Nanobyte
сообщение Jul 2 2006, 20:08
Сообщение #21


За битами по регистрам гоняюсь
***

Группа: Свой
Сообщений: 457
Регистрация: 24-04-06
Из: Таганрог
Пользователь №: 16 446



Цитата(vooon @ Jul 1 2006, 16:06) *
У АВР АЦП последовательного приближения - т.е. идет инкремент значения ЦАП до совпаденя с сигналом => время преобразования зависит от величины сигнала, но можно высчитать наихудший вариант - отсчет от 0 до (2**n)-1, где n - разрядность, ** - степень ;
..........
P.S. почитайте книгу "Аналого-цифровые и цифро-аналоговые преобразователи справочник" В. А. Никамин
достаточно просто и понятно


У АЦП последовательного приближения время преобразования НЕ зависит от величины сигнала, и значение ЦАП не инкрементируется, а вначале устанавливается MSB и входной сигнал сравнивается с выходным ЦАПа, и по результату сравнения этот бит либо сбрасывается, либо остаётся установленным. Младшие биты обрабатываются аналогично, вплоть до LSB.

P.S. Описанный VOOON метод используется разве что для ознакомления с принципом работы АЦП, он не используется в современных МК и АЦП.


--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
Go to the top of the page
 
+Quote Post
vooon
сообщение Jul 3 2006, 21:37
Сообщение #22


Участник
*

Группа: Свой
Сообщений: 72
Регистрация: 27-06-06
Из: Msk
Пользователь №: 18 401



Да действительно я все перепутал.... sad.gif

БОЛЬШОЕ СПАСИБО что наставили на путь истинный a14.gif

P.S. 30ого экзамен последний был...

Сообщение отредактировал vooon - Jul 3 2006, 21:37
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 15:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01571 секунд с 7
ELECTRONIX ©2004-2016