|
Зависание микроконтроллера, ATMega 128 |
|
|
|
 |
Ответов
|
May 3 2008, 22:03
|
Профессионал
    
Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387

|
Цитата Объясните, почему, собственно, на входе UARTа вам хочется в паузах между пакетами видеть высокий уровень, а не низкий. Зачем? Чтобы при неактивном канале было НЕАКТИВНОЕ логическое состояние - чтобы не только активность в канале определялась без лишних вопросов, но и чтобы неактивный канал не вызывал разнотолков. Тем более если у Вас аппаратный УАРТ с определением состояния линии BREAK, то Вы на коне, а если программный - придётся натрудить не только мозолей на пальцах, но и места в памяти программ, которой не завсегда много, ну а если какой-нить простенький аппаратный УАРТ, то научиться обходить его типа "убогость" может оказаться сложнее, чем реализовать весь программно. Итого - использование определения сигнала линии BREAK избыточно и нецелесообразно в относительно простых программно-аппаратных решениях. Ну и далее - переход из BREAK в режим передачи должен сопровождаться выдерживанием передающим хостом некоего таймаута не менее 1-го байта или вариантов с заполнением канала некими символами (0xFF) перед непосредственно передачей, а последнее налагает некоторые ограничения на реализации протоколов. IMNHO, при неактивном состоянии линии её удержание в состоянии логического нуля не просто нецелесообразно, но и неоправданно усложняет само использование канала. IMHO линию нужно держать при неактивном состоянии в логической единице, что избавит всех от ненужных хлопот. ЗЫ. Программы, у которых "срывает крышу" от всяких несуразиц в канале - на помойку, независимо от того, какой уровень в канале при неактивном состоянии.
--------------------
aka Vit
|
|
|
|
|
May 4 2008, 00:41
|

pontificator
     
Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483

|
Цитата(sensor_ua @ May 4 2008, 07:33)  Чтобы при неактивном канале было НЕАКТИВНОЕ логическое состояние - чтобы не только активность в канале определялась без лишних вопросов, но и чтобы неактивный канал не вызывал разнотолков. В неактивном канале нужное вам состояние на входе UART-а обеспечивается подтягивающими резисторами. Предположим, вы поставили резисторы по 1к, т.е. один резистор тянет на +5, другой - на землю. Какой мощности должна быть наведенная помеха для того, чтобы на входе UART-а появился ложный "старт"? В первом приближении, помеха должна иметь можность 5В^2/2k=12.5 мВт (у автора топика с его 47к подтяжками будет еще меньше, но это не суть важно). После этого ваша софтинка примет помеховый сигнал за истинный, поскольку вы надеетесь на резисторы и на то, что такой помехи не будет. Начнется ложный прием, а пришедший вслед за этим настоящий пакет данных будет испорчен. Теперь оценим, какой мощности должна быть помеха, которая "испортит жизнь" правильному протоколу, такому, как Modbus RTU и т.п. Правильный протокол не делает никаких предположений о состоянии линии связи в паузах. Зато он требует, чтобы в начале каждого пакета включенный передатчик держал пасивное высокое состояние на линии в течении определенного времени, которое должно быть существенно больше, чем байт-интервал. Еще такой протокол требует, чтобы во время передачи пауза между соседними байтими в пакете была определенной и достаточно маленькой. Предположим, наведенная помеха в паузах запускает ложный прием. Однако ложный пакет будет отвергнут, поскольку очень маловероятно, что она выдает помеховые импульсы в нужном темпе (чтобы выполнялось требование о малой паузе между байтами) и что CRC помехового пакета будет правильным. Предположим, наведенная помеха запускает ложный прием незадолго до начала истинного пакета. Однако включенный передатчик своим выходом задавит помеху, а длинная пауза в начале передачи заставит приемник выбросить помеховый пакет, поскольку за время действия паузы не приходит новых байтов - не выполняется условие малой паузы между соседними байтами. Теперь оценим, какой мощности должна быть помеха, чтобы испортить настоящий пакет данных в таком протоколе. Работающий передатчик RS485 обязан уметь выдавать на линию не менее 60 мА тока (реально выдает раза в два больше). Мощность помехи, необходимая для того, чтобы пересилить выход передатчика, должна быть 5В*60мА=300мВт. Почти в 20 раз больше, чем с резисторами. Вот настолько и будет лучше помехоустойчивость правильного протокола по сравнению с дешевыми самопалами, которым нужно, "чтобы при неактивном канале было НЕАКТИВНОЕ логическое состояние" (с). Разница в десятки-сотни раз. Цитата(sensor_ua @ May 4 2008, 07:33)  ЗЫ. Программы, у которых "срывает крышу" от всяких несуразиц в канале - на помойку, независимо от того, какой уровень в канале при неактивном состоянии. Добавьте к программам протоколы, у которых "срывает крышу" от всяких несуразиц в канале.
|
|
|
|
Сообщений в этой теме
smalcom Зависание микроконтроллера Apr 14 2008, 13:27 Dog Pawlowa Цитата(smalcom @ Apr 14 2008, 16:27) Не з... Apr 14 2008, 14:03 IDE Цитата(smalcom @ Apr 14 2008, 17:27) Набл... Apr 14 2008, 14:20 smalcom PPS. кварц заземлен.
PPPS. wathcdog включен - все ... Apr 14 2008, 14:46 defunct Цитата(smalcom @ Apr 14 2008, 16:46) PPS.... Apr 14 2008, 14:56 galjoen Цитата(smalcom @ Apr 14 2008, 18:46) PPPS... Apr 14 2008, 15:26 Dog Pawlowa Цитата(smalcom @ Apr 14 2008, 17:46) норм... Apr 14 2008, 15:37 smalcom ммм... меня могли неправильно понять - криво напис... Apr 14 2008, 15:11 defunct Цитата(smalcom @ Apr 14 2008, 17:04) кера... Apr 14 2008, 15:17 smalcom в схеме сброса включен супервизор MCP100-315 и кно... Apr 14 2008, 15:23 defunct ЦитатаРядом лежит такойже девайс из старой партии:... Apr 14 2008, 15:25 injen-d Возможно виноват не запрограммированный бит CKOPT ... Apr 14 2008, 15:29 smalcom фьюзы
BLEV=1
BODEN=1
SUT=2
CKSEL=D
BLB1=3
BLB0=3
O... Apr 14 2008, 15:37 galjoen Цитата(smalcom @ Apr 14 2008, 19:37) CKSE... Apr 14 2008, 15:55 smalcom ЦитатаЗамеряйте потребляемый ток старого и нового ... Apr 14 2008, 15:41 smalcom Цитатакерамический резонатор 0.9..3.0 МГц
не, при ... Apr 14 2008, 16:34 galjoen Цитата(smalcom @ Apr 14 2008, 20:34) не, ... Apr 14 2008, 16:55 smalcom Цитата"но после прошивки почемуто WDTON читае... Apr 15 2008, 03:56 Igor26 Цитатав регистре XDIV
Его нет в Меге128.
Цитатаплю... Apr 15 2008, 04:00 Rst7 ЦитатаЕго нет в Меге128.
Как это нет? А по адресу... Apr 15 2008, 04:47 Igor26 ЦитатаА по адресу 0x3C(0x5C) что находится?
Чёй-то... Apr 15 2008, 06:57 vmp Вы уверены, что конденсаторы на кварце стоят прави... Apr 15 2008, 07:11 Serj78 Цитата(vmp @ Apr 15 2008, 11:11) Вы увере... Apr 15 2008, 07:51 Rst7 ЦитатаЧёй-то не нашел в ДШ. Ткните носом.
Вот дер... Apr 15 2008, 07:57 Igor26 ЦитатаSystem Clock and Clock Options -> Timer/C... Apr 15 2008, 09:23 GDI Можно попробовать поменять контроллеры у старой и ... Apr 15 2008, 09:31 smalcom вопщем пропаял еще раз мегу, промыл спиртом, замен... Apr 15 2008, 10:41 defunct Иногда может повлиять толщина и материал дорожек.
... Apr 15 2008, 10:45 smalcom сдается мне, что полтергейст зажат в узкий круг. в... Apr 15 2008, 14:34 smalcom чота с плюсами лажа какаето Apr 15 2008, 20:08 ReAl Цитата(smalcom @ Apr 15 2008, 23:08) чота... Apr 16 2008, 06:29  Mozart вообще может быть из-за ресета по снижению напряже... Apr 17 2008, 19:06   Dog Pawlowa Цитата(Mozart @ Apr 17 2008, 22:06) вообщ... Apr 17 2008, 19:54    Mozart Цитата(Dog Pawlowa @ Apr 17 2008, 23:54) ... Apr 17 2008, 20:33     Dog Pawlowa Цитата(Mozart @ Apr 17 2008, 23:33) это к... Apr 18 2008, 06:40      Mozart Цитата(Dog Pawlowa @ Apr 18 2008, 10:40) ... Apr 18 2008, 16:00      Laserr Цитата(Dog Pawlowa @ Apr 18 2008, 10:40) ... Apr 18 2008, 16:22      VladimirYU Цитата(Dog Pawlowa @ Apr 18 2008, 10:40) ... Apr 19 2008, 08:29 Yura_K Было такое же на ATmega8535. Правда стоял на плате... Apr 18 2008, 17:06 smalcom да, кстати, проблема была в том, что прогу скомпил... Apr 24 2008, 17:15 ReAl Цитата(smalcom @ Apr 24 2008, 20:15) да, ... Apr 26 2008, 14:55 Flasher Могу рассказать в чем секрет зависания устройства.... Apr 25 2008, 21:08 dx40 Цитата(Flasher @ Apr 26 2008, 01:08) Могу... Apr 28 2008, 06:52 Сергей Борщ Цитата(Flasher @ Apr 26 2008, 00:08) на к... Apr 28 2008, 07:58 =AK= Цитата(Flasher @ Apr 26 2008, 06:38) Это ... May 2 2008, 13:02  Flasher Цитата(=AK= @ May 2 2008, 16:02) Хм... А ... May 2 2008, 13:23   =AK= Цитата(Flasher @ May 2 2008, 22:53) дальш... May 2 2008, 13:35    Flasher Цитата(=AK= @ May 2 2008, 16:35) Да. Пож... May 2 2008, 14:10     =AK= Цитата(Flasher @ May 2 2008, 23:40) Продо... May 3 2008, 03:38 Samsony Цитата(smalcom @ Apr 14 2008, 17:27) Набл... Apr 26 2008, 19:30 smalcom старый набор avrtools и новый генерят разный код, ... Apr 26 2008, 22:03 Igor26 ЦитатаЭто компьютерный блок питания.
Интересно зна... Apr 28 2008, 06:41 Flasher Цитата(Igor26 @ Apr 28 2008, 09:41) Интер... Apr 28 2008, 11:59  ReAl Цитата(Сергей Борщ @ Apr 28 2008, 10:58) ... Apr 29 2008, 17:18 Nanobyte Блоки питания от ПК разные бывают. Есть у меня оди... Apr 28 2008, 07:12 Igor26 Прикола ради, замерил прям щас напряжение между ко... Apr 28 2008, 11:42 smalcom на БП пульсациии я мерял - 50мВ при частое 50Гц+мн... Apr 30 2008, 09:19 Flasher Цитата(smalcom @ Apr 30 2008, 12:19) на Б... Apr 30 2008, 15:41 smalcom Если комуто вдруг интересно будет(тк как в асме я ... Apr 30 2008, 11:07 aesok Цитата(smalcom @ Apr 30 2008, 15:07) Если... Apr 30 2008, 16:28 aesok Цитата(smalcom @ Apr 30 2008, 15:07) Если... May 3 2008, 07:18  aesok Цитата(aesok @ May 3 2008, 11:18) Тоесть,... May 3 2008, 10:55 Igor26 ЦитатаВы, наверное, не трогаете ножки кварца на ма... Apr 30 2008, 16:31 Flasher Цитата(Igor26 @ Apr 30 2008, 19:31) Нет к... Apr 30 2008, 16:42 smalcom 2Flasher
ЦитатаИзмерял-правильное слово
Или школьн... May 1 2008, 05:08 Flasher Приношу свои извинения автору- благодаря "пра... May 1 2008, 14:38 svl Автору темы, для решения вопроса, следует выложить... May 1 2008, 15:01 smalcom 2Flasher, я действительно неправ с пунктуацией в п... May 1 2008, 22:05 Flasher Цитата(smalcom @ May 2 2008, 01:05) схема... May 2 2008, 11:18 Stanislav_S Цитата(smalcom @ May 2 2008, 03:05) 2Flas... May 2 2008, 13:28  GrayCat Цитата(Stanislav_S @ May 2 2008, 16:28) О... May 2 2008, 21:33 svl Попробуй подключить к схеме аккумулятор или крону,... May 2 2008, 07:56 smalcom По поводу транзистора в 485 тута уже объяснили)) т... May 3 2008, 05:11 =AK= Цитата(smalcom @ May 3 2008, 14:41) HC245... May 3 2008, 08:03 gte Цитата(smalcom @ May 3 2008, 09:11) Я: ше... May 3 2008, 09:56 forever failure Подтяжки драйвера RS-485, кстати тоже неправильно ... May 3 2008, 08:13 =AK= Цитата(forever failure @ May 3 2008, 17:4... May 3 2008, 08:43 smalcom 2aesok, МЕГАСЕНК. как думаете в мейллист команде г... May 3 2008, 19:34 aesok Цитата(smalcom @ May 3 2008, 23:34) 2aeso... May 3 2008, 21:15  defunct Цитата(aesok @ May 4 2008, 00:15) нет не ... May 3 2008, 21:17   aesok Цитата(defunct @ May 4 2008, 01:17) А это... May 3 2008, 21:31    defunct Цитата(aesok @ May 4 2008, 00:31) Нет, то... May 3 2008, 22:18 smalcom 47k недают покоя)) вы же учитывайте что на линии н... May 4 2008, 06:49 =AK= Цитата(smalcom @ May 4 2008, 16:19) чтобы... May 4 2008, 07:14 GrayCat Насчет "устойчивости" протокола...
Вот ... May 4 2008, 14:41 =AK= Цитата(GrayCat @ May 5 2008, 00:11) Во-от... May 4 2008, 23:13  defunct Цитата(=AK= @ May 5 2008, 02:13) При этом... May 5 2008, 02:35   =AK= Цитата(defunct @ May 5 2008, 12:05) Есть ... May 5 2008, 03:00    defunct Цитата(=AK= @ May 5 2008, 06:00) В ситуац... May 5 2008, 03:54     =AK= Цитата(defunct @ May 5 2008, 13:24) Перед... May 5 2008, 06:22      galjoen Цитата(=AK= @ May 5 2008, 10:22) - Помеха... May 5 2008, 09:26       =AK= Цитата(galjoen @ May 5 2008, 18:56) Для т... May 5 2008, 09:39        galjoen Цитата(=AK= @ May 5 2008, 13:39) Это буде... May 5 2008, 10:15      defunct Цитата(=AK= @ May 5 2008, 09:22) Если пер... May 11 2008, 23:23 smalcom ЦитатаЗамените хотя бы ISO2 на обычный транзисторн... May 4 2008, 17:21 smalcom ЦитатаЧто такое "Заголовок"?
байт(0xAB),... May 5 2008, 08:20 Rst7 ЦитатаОднако по затратам времени два байта преамбу... May 5 2008, 09:53 =AK= Цитата(Rst7 @ May 5 2008, 19:23) Есть одн... May 6 2008, 04:28
2 страниц
1 2 >
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|