Atmega162 и UART

semaawp
semaawp аватар
Offline
Зарегистрирован: 29.05.2017

Здраствуйте, нуждаюсь в ваших советах. А вопрос вот в чем. Собираюсь покупать Atmega162. Хочу использовать два канала UART. По сути они будут работать независимо друг от друга. Естественно все это дело будет на прерываниях. Так вот успеет ли контроллер обработать каждый байт данных, если например на оба порта одновременно пришел символ?

b707
Offline
Зарегистрирован: 26.05.2017

У интерфейса UART есть буфер, поэтому если контроллер в момент приема данных занят, байт будет ожидать в буфере. Другой вопрос,  что при слишком большой скорости приема контроллер может не успевать обрабатывать приходящие данные. буфер переполнится и часть байтов будут потеряны.

semaawp
semaawp аватар
Offline
Зарегистрирован: 29.05.2017

b707 пишет:

буфер переполнится и часть байтов будут потеряны.

Вот это меня и напрягает, впринците по сути желательно два отдельных контроллера использовать, для надежности. Но места на плате больше займет, ну и остальное выходящее из этого...

Penni
Penni аватар
Offline
Зарегистрирован: 18.01.2015

В атмеге162 вроде же 2а аппаратных U(S)ART каждый со своим буфером. Зачем два контроллера когда есть два аппаратных уарта.

semaawp
semaawp аватар
Offline
Зарегистрирован: 29.05.2017

Penni пишет:

В атмеге162 вроде же 2а аппаратных U(S)ART каждый со своим буфером. Зачем два контроллера когда есть два аппаратных уарта.

Их то 2, то есть 2 прерывания, но обрабатывает их ОДНО ALU) вот и думаем, будет успевать или нет)

b707
Offline
Зарегистрирован: 26.05.2017

semaawp пишет:

Их то 2, то есть 2 прерывания, но обрабатывает их ОДНО ALU) вот и думаем, будет успевать или нет)

Не надо думать, надо взять и подсчитать. Начните проектирование системы с оценки необходимой скорости обмена и сравнения ее с быстродействием МК. А пока вы эту скорость не просчитали - ваша идея взять два (три, четыре и тд) контроллера выглядит странно.

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

semaawp
semaawp аватар
Offline
Зарегистрирован: 29.05.2017

b707 пишет:

semaawp пишет:

Их то 2, то есть 2 прерывания, но обрабатывает их ОДНО ALU) вот и думаем, будет успевать или нет)

Не надо думать, надо взять и подсчитать

Не подскажите методику таких расчетов? Или подобные описания со страниц интернета?

Penni
Penni аватар
Offline
Зарегистрирован: 18.01.2015

Один символ точно успеет. Для интереса взял уно и мегу. С уно в лупе гоню байт. Тх уно соединен одновременно с Rx3 и Rx2 на меге. Все прекрасно принимается без потерь. Везде скорость 115200.

semaawp
semaawp аватар
Offline
Зарегистрирован: 29.05.2017

Penni пишет:

Один символ точно успеет. Для интереса взял уно и мегу. С уно в лупе гоню байт. Тх уно соединен одновременно с Rx3 и Rx2 на меге. Все прекрасно принимается без потерь. Везде скорость 115200.


Благодарю за проведенный опыт, у меня 9600 скорость, так что точно успевать будет)) еще раз спасибо)

b707
Offline
Зарегистрирован: 26.05.2017

semaawp пишет:

Не подскажите методику таких расчетов? Или подобные описания со страниц интернета?

Начните с оценки предполагаемой скорости поступления данных. Потом сравните их с возможностями МК - на с 205-206 даташита на атмегу32U в табл 18.4-18.6 приведены предельные скорости UART  в зависимости от частоты процессора. 

semaawp
semaawp аватар
Offline
Зарегистрирован: 29.05.2017

b707 пишет:

semaawp пишет:

Не подскажите методику таких расчетов? Или подобные описания со страниц интернета?

Начните с оценки предполагаемой скорости поступления данных. Потом сравните их с возможностями МК - на с 205-206 даташита на атмегу32U в табл 18.4-18.6 приведены предельные скорости UART  в зависимости от частоты процессора. 


Начну изучение, спасибо.

b707
Offline
Зарегистрирован: 26.05.2017

semaawp пишет:
Благодарю за проведенный опыт, у меня 9600 скорость,)

БЛИН!!!

Простите, а сразу этого написать нельзя было? Я ж вам и в первом ответе, и в следующем пишу - зависит от скорости приема. Я думал у вас там Мбиты в секунду, полез даташиты смотреть....

на 9600 можно пяток каналов одновременно принять, и атмега будет поплевывать в потолок от скуки...

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

b707 пишет:
а сразу этого написать нельзя было?
Я вот с некоторых пор, прежде, чем начинать чесаться, занужно выясняю все детали. Настолько занудно, что ньюби частенько бросает это дело и уходит с форума :)

b707
Offline
Зарегистрирован: 26.05.2017

ЕвгенийП пишет:

b707 пишет:
а сразу этого написать нельзя было?
Я вот с некоторых пор, прежде, чем начинать чесаться, занужно выясняю все детали. Настолько занудно, что ньюби частенько бросает это дело и уходит с форума :)

я наивно решил пощеголять умением извлекать данные из даташита :) - и вот получил. Будет наука :)