- 
	- Как это "перестали работать кварцевые генераторы"? Нонсенс какой-то. Купите исправные и замените те, что перестали работать. Именно с причиной болезни надо разбираться, а не на стоп-биты уповать. - Ксения(20.11.2009 14:34)
- Ну можно как бы по старт-биту вообще калиброваться, при условии, что 0-й бит всегда имеет противоположный знак (ограничение на адрес). Но это надо значит ногу RX либо на таймер, либо быстро-быстро, что невозможно. - fk0(20.11.2009 12:55)
			- Хотя вообще можно поступить проще. Обязать мастера раз в несколько секунд, например, посылать в шину "калибровочный байт". А слейвы должны, например, раз в минуту на всё класть, переключать UART на максимальный baudrate и пытаться принять калибровочный  fk0(128 знак., 20.11.2009 13:01)
					- Можно по интервалу между калибровочными байтами, если мастер выдерживает этот интервал с достаточной точностью. - vmp(20.11.2009 13:04)
							- Плохая идея -- не выдержит. - fk0(20.11.2009 14:08)
 
 
- Можно по интервалу между калибровочными байтами, если мастер выдерживает этот интервал с достаточной точностью. - vmp(20.11.2009 13:04)
							
 
- Хотя вообще можно поступить проще. Обязать мастера раз в несколько секунд, например, посылать в шину "калибровочный байт". А слейвы должны, например, раз в минуту на всё класть, переключать UART на максимальный baudrate и пытаться принять калибровочный  fk0(128 знак., 20.11.2009 13:01)
					
- У меня похожая проблема, собираюсь каптурить Rx, распознавать интервал, соответствующий одному биту из посылки мастера и корректировать свой УАРТ. - Vladimir Ljaschko(20.11.2009 11:24)
			- А я для работы без кварца просто сделал свой протокол обмена. Передаю по биту за байт. Идею взял из интерфейса 1-wire (IButton).  vmp(216 знак., 20.11.2009 11:58)
					- Интересная идея. А какая скорость? Мне хорошо бы 19200 реальных получить, ресурсов отъест как на 200 кбит. Прерывание раз в 50 мкс, в принципе терпимо. - Vladimir Ljaschko(20.11.2009 12:34)
							- А передавайте по два бита за байт. 0x00/0x0F/0xF0/0xFF на передаче. На приёме на разбросах частоты вместо 0xF0 может быть и 0xE0, и 0xF8 (при 12% или 10% развале частот, ща не соображу), но всё должно приняться. Может,  ReAl(220 знак., 22.11.2009 01:22 - 01:28)
									- Логично, спасибо! Разброс обычного AVR, на столе и так работает без проблем, но реальном устройстве будет прилично нагреваться. - Vladimir Ljaschko(23.11.2009 12:51)
- Про конкретный разброс частот на объекте не знаю. Дома фсё работает без ошибок и без всяких калибровок. В даташите данные по разбросу ОТСУТСТВУЮТ. Интересует, какой разброс встроенного RS от микросхемы к микросхеме 5-70со, и какая  T.Дocтoeвcкий(63 знак., 22.11.2009 11:08 - 11:12)
											- У AVR, как и у многих других МК, есть типо баг в УАРТ - при небольшом (порядком 1%) увеличении скорости принимаемой посылки может не восприниматься следующий старт-бит, т.к. он ищется триггером по перепаду, ну а разрешается этот поиск где-то после 14-й  Vit(391 знак., 22.11.2009 11:50)
													- IMHO -- это не баг, а фича. Стоп-бит должен быть полноценным. Только вот на счёт 1% мне не верится. Впрочем легко проверить прибором с неправильным кварцем и приёмом на "проблемный контроллер" и на UART от PC. - fk0(23.11.2009 10:09)
- приведите примеры "многих других МК", а то ни на одном из семейств pic от pic16 до dspic33, ни на MSP430 такого не замечал, если скорость находится в допустимых пределах отрабатывает нормально. поскольку это не "типо баг", а конкретный косяк, который  AVF(48 знак., 22.11.2009 14:29)
															- Отдельностоящий UART подойдет? TL16C752C and TL16C754C Short STOP Bit Errata  vmp(730 знак., 23.11.2009 15:53, ссылка)
																	- Таки из одного мусорника ноги ростут;) - Vit(23.11.2009 16:43)
 
- С8051F350, LPC2378, а из AVR такое попадалось в ATmega128/2560/2561. Предполагаю, что это проблемы семейств, и ещё предполагаю, что это из-за выгребания разработчиками камней топологии модулей периферии (в частности УАРТ) из одной мусорной ямы  Vit(92 знак., 22.11.2009 17:43 - 18:04)
																	- фигня PIC16F877/877А, (uart PIC16LF876A одинаковый), PIC18F452, PIC18LF458 - при изменениях скорости в допустимых пределах прекрасно работают. до +-4% c шагом 1Гц на скоростях 300, 1200 и 9600 бод лично проверял, поскольку применяемое оборудование могло  AVF(143 знак., 23.11.2009 13:13)
																			- А паузы между байтами были? - Vit(23.11.2009 15:11)
																					- пауз не было, сплошной поток, контролировалось на пакетах 4, 6 и 16 байт - AVF(23.11.2009 15:27)
																							- гут - Vit(23.11.2009 15:35)
 
 
- пауз не было, сплошной поток, контролировалось на пакетах 4, 6 и 16 байт - AVF(23.11.2009 15:27)
																							
- Спасибо, но проверять, если понадобится, то буду;) - Vit(23.11.2009 14:13)
 
- А паузы между байтами были? - Vit(23.11.2009 15:11)
																					
 
- фигня PIC16F877/877А, (uart PIC16LF876A одинаковый), PIC18F452, PIC18LF458 - при изменениях скорости в допустимых пределах прекрасно работают. до +-4% c шагом 1Гц на скоростях 300, 1200 и 9600 бод лично проверял, поскольку применяемое оборудование могло  AVF(143 знак., 23.11.2009 13:13)
																			
 
- Отдельностоящий UART подойдет? TL16C752C and TL16C754C Short STOP Bit Errata  vmp(730 знак., 23.11.2009 15:53, ссылка)
																	
- О Ёпт!!! - T.Дocтoeвcкий(22.11.2009 11:58)
 
 
- У AVR, как и у многих других МК, есть типо баг в УАРТ - при небольшом (порядком 1%) увеличении скорости принимаемой посылки может не восприниматься следующий старт-бит, т.к. он ищется триггером по перепаду, ну а разрешается этот поиск где-то после 14-й  Vit(391 знак., 22.11.2009 11:50)
													
 
- Скорость для меня была некритична, поскольку данных мало (8 бит), передача раз в секунду, мастер использовал DMA, а слейву все равно нечем было заняться. vmp(678 знак., 20.11.2009 13:02)
 
- А передавайте по два бита за байт. 0x00/0x0F/0xF0/0xFF на передаче. На приёме на разбросах частоты вместо 0xF0 может быть и 0xE0, и 0xF8 (при 12% или 10% развале частот, ща не соображу), но всё должно приняться. Может,  ReAl(220 знак., 22.11.2009 01:22 - 01:28)
									
 
- Интересная идея. А какая скорость? Мне хорошо бы 19200 реальных получить, ресурсов отъест как на 200 кбит. Прерывание раз в 50 мкс, в принципе терпимо. - Vladimir Ljaschko(20.11.2009 12:34)
							
 
- А я для работы без кварца просто сделал свой протокол обмена. Передаю по биту за байт. Идею взял из интерфейса 1-wire (IButton).  vmp(216 знак., 20.11.2009 11:58)
					
- Если протокол обмена в Ваших руках, может что-то типа как в LIN-e. Там первая посылка служит для подстройки скорости и не содержит переходов внутри себя. - Chum_A(20.11.2009 10:50)
- А не попробовать ли просто включить 2 стоп-бита?  Vit(219 знак., 20.11.2009 00:02 - 00:08)
			- Про стопбиты ниасилил!   T.Дocтoeвcкий(290 знак., 20.11.2009 00:34)
					- Абисняю ещё раз Vit(446 знак., 20.11.2009 00:54)
 
 
- Про стопбиты ниасилил!   T.Дocтoeвcкий(290 знак., 20.11.2009 00:34)
					
- Если возможно, перейди на манчестер. - бомж(19.11.2009 23:52)
			- И работающие тогда тоже придётся разобрать чтобы перешить. Фся проблема в корпусах из отечественного полистирола, он дал усадку, и зоказчег решил платы обточить. Выяснилось только через год, когда зоказчег зоказчека смонтировал фсё на объекте. Разобрать  T.Дocтoeвcкий(80 знак., 20.11.2009 00:54)
					- Дада, как всегда во всём виноваты эти бездельники -- программисты! - fk0(20.11.2009 12:53)
 
 
- И работающие тогда тоже придётся разобрать чтобы перешить. Фся проблема в корпусах из отечественного полистирола, он дал усадку, и зоказчег решил платы обточить. Выяснилось только через год, когда зоказчег зоказчека смонтировал фсё на объекте. Разобрать  T.Дocтoeвcкий(80 знак., 20.11.2009 00:54)