Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру

344 Часть 111. Практическое программирование микроконтроллеров АVR Аппаратный UART за полвека своего существования в отношении простоты использо­ вания вылизан до предела - как вы уже видели (см . главу 1 1) , даже безо всяких пре­ рываний процедура отсылки байта состоит из трех команд, П отому применять его про­ граммную имитацию особого смысла не имеет. SPI достичь таких же высот мешает разве что некоторый разнобой в реализациях и отсутствие аппаратного порта в ряде случаев. А вот 1WI слишком различается нюансами в различных случаях применения протокола, из-за чего и приходится все время разбираться в результатах его деятель­ ности «вручную» . Нет, в каких-то особо сложных случаях имеет смысл использовать именно аппаратный порт 1WI - например, когда несколько «мастеров» и «ведомых» подключены к одной шине (см . [2] ) . Но у нас таких задач не встретится , и мы пойдем самым простым и удобным путем. Базовый протокол 12С Предположим, у нас есть несколько устройств, подключенных параллельно к двум линиям (не считая, естественно, «землю>) . По одной из них (SCL) всегда передают­ ся синхронизирующие импульсы, а по второй - собственно данные (SDA). Ин­ формация в каждый момент времени передается только одним устройством в одну сторону. С помощью I 2 c можно (теоретически) соединить до 1 28 устройств - как показано на рис. 1 3 . 1 . «Подтягивающие» резисторы R1 и R2 должны иметь номи­ нал порядка единиц, максимум десятков килоом (чем больше скорость обмена, тем меньше) . Точный расчет оптимальных номиналов этих резисторов достаточно сло­ жен (он учитывает емкость выхода, емкость шины, установленную скорость обмена и т. п.), и в реальности номиналы обычно устанавливаются подбором «по месту» так, чтобы получить «приличную» форму сигнала. Для скорости обмена 1 00 кГц и менее при напряжении 5 В можно принять «среднепотолочное» значение около 4,7-5 , 1 кОм . При этом стандарт диктует максимальное значение тока через выход шины около 3 мА, откуда минимально допустимое значение сопротивлений R l и R2 равно примерно 1 ,5 кОм при 5 вольтах питания . + Uп и т 1 R1 1 R2 устройство устройство устройство устройство 4,7 кОм 4,7 кОм 1 2 3 . . . . . . . . n SDA -- - - - - SCL Рис. 1 3. 1 . Соединение устройств по интерфейсу 1 2 С (общий провод не показан)

RkJQdWJsaXNoZXIy MTExODQxMg==