Atmega162 и UART
- Войдите на сайт для отправки комментариев
Втр, 26/12/2017 - 17:24
Здраствуйте, нуждаюсь в ваших советах. А вопрос вот в чем. Собираюсь покупать Atmega162. Хочу использовать два канала UART. По сути они будут работать независимо друг от друга. Естественно все это дело будет на прерываниях. Так вот успеет ли контроллер обработать каждый байт данных, если например на оба порта одновременно пришел символ?
У интерфейса UART есть буфер, поэтому если контроллер в момент приема данных занят, байт будет ожидать в буфере. Другой вопрос, что при слишком большой скорости приема контроллер может не успевать обрабатывать приходящие данные. буфер переполнится и часть байтов будут потеряны.
буфер переполнится и часть байтов будут потеряны.
Вот это меня и напрягает, впринците по сути желательно два отдельных контроллера использовать, для надежности. Но места на плате больше займет, ну и остальное выходящее из этого...
В атмеге162 вроде же 2а аппаратных U(S)ART каждый со своим буфером. Зачем два контроллера когда есть два аппаратных уарта.
В атмеге162 вроде же 2а аппаратных U(S)ART каждый со своим буфером. Зачем два контроллера когда есть два аппаратных уарта.
Их то 2, то есть 2 прерывания, но обрабатывает их ОДНО ALU) вот и думаем, будет успевать или нет)
Их то 2, то есть 2 прерывания, но обрабатывает их ОДНО ALU) вот и думаем, будет успевать или нет)
Не надо думать, надо взять и подсчитать. Начните проектирование системы с оценки необходимой скорости обмена и сравнения ее с быстродействием МК. А пока вы эту скорость не просчитали - ваша идея взять два (три, четыре и тд) контроллера выглядит странно.
И, кстати, даже при одном единственном канале МК может не справляться, Ведь кроме прерываний по приему байт есть и другие системные задачи. Так что без расчета может оказаться так, что даже отдельный МК на каждый канал вам не поможет.
Их то 2, то есть 2 прерывания, но обрабатывает их ОДНО ALU) вот и думаем, будет успевать или нет)
Не надо думать, надо взять и подсчитать
Не подскажите методику таких расчетов? Или подобные описания со страниц интернета?
Один символ точно успеет. Для интереса взял уно и мегу. С уно в лупе гоню байт. Тх уно соединен одновременно с Rx3 и Rx2 на меге. Все прекрасно принимается без потерь. Везде скорость 115200.
Один символ точно успеет. Для интереса взял уно и мегу. С уно в лупе гоню байт. Тх уно соединен одновременно с Rx3 и Rx2 на меге. Все прекрасно принимается без потерь. Везде скорость 115200.
Благодарю за проведенный опыт, у меня 9600 скорость, так что точно успевать будет)) еще раз спасибо)
Не подскажите методику таких расчетов? Или подобные описания со страниц интернета?
Начните с оценки предполагаемой скорости поступления данных. Потом сравните их с возможностями МК - на с 205-206 даташита на атмегу32U в табл 18.4-18.6 приведены предельные скорости UART в зависимости от частоты процессора.
Не подскажите методику таких расчетов? Или подобные описания со страниц интернета?
Начните с оценки предполагаемой скорости поступления данных. Потом сравните их с возможностями МК - на с 205-206 даташита на атмегу32U в табл 18.4-18.6 приведены предельные скорости UART в зависимости от частоты процессора.
Начну изучение, спасибо.
БЛИН!!!
Простите, а сразу этого написать нельзя было? Я ж вам и в первом ответе, и в следующем пишу - зависит от скорости приема. Я думал у вас там Мбиты в секунду, полез даташиты смотреть....
на 9600 можно пяток каналов одновременно принять, и атмега будет поплевывать в потолок от скуки...
я наивно решил пощеголять умением извлекать данные из даташита :) - и вот получил. Будет наука :)