Перейти к содержанию
    

Я программирую Atmega8

КАк подсчитать будет ли успевать UART передавать данные со скоростью 15200 бит/с с АЦП на ЭВМ, если известь что частота преобразования АЦП до 15 тыс. преобразований в секунду при максимальном разрешении, а время преобразования 65-260мкс. АЦП 10-ти разрядный и последовательного приближения. Сигнал принимается только на порт ADC0.

КАк узнать успеет ли UART переслать все данные которые пришли с АЦП

и принять новые?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Элементарно:

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

 

 

 

PS

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

Но не на компьютере. :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Но не на компьютере. :(

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

8K-10K, 8-ми битных семплов в секунду (SPS) можно передавать по UART'у без проблем.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Извините, просто я только начал осваивать микроконтроллеры и много чего ещё не понимаю.

Для передачи по 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?

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

 

Большое всем спасибо за помощь!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

Большое всем спасибо за помощь! Может с вами можно связаться через ICQ? чтобы задать вопросы на прямую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня МК работает на частоте 7,3728 МГц

Я установил предделитель АЦП на 64. Получается что АЦП работает на частоте 115,2 кГц.

Как найти время преобразования АЦП при такой частоте?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня МК работает на частоте 7,3728 МГц

Я установил предделитель АЦП на 64. Получается что АЦП работает на частоте 115,2 кГц.

Как найти время преобразования АЦП при такой частоте?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня МК работает на частоте 7,3728 МГц

Я установил предделитель АЦП на 64. Получается что АЦП работает на частоте 115,2 кГц.

Как найти время преобразования АЦП при такой частоте?

Изменено пользователем Thumper

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У АВР АЦП последовательного приближения - т.е. идет инкремент значения ЦАП до совпаденя с сигналом => время преобразования зависит от величины сигнала, но можно высчитать наихудший вариант - отсчет от 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

АЦП работает на частоте 115,2 кГц.

Как найти время преобразования АЦП при такой частоте?

 

в ДШ есть диаграмма где нарисована работа АЦП по-тактово.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...