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

Глава 5. Подготовка к программированию МКАVR 103 ПОДРОБНОСТИ Процесс последовательного программирования начинается с того , что на вывод SCK подается напряжение уровня «земли» , далее на RESET - короткий положительный импульс, и затем последний также оставляют в состоянии низкого уровня не менее чем на 20 мс (можно предварительно подключить эти выводы к низкому уровню, а за­ тем включить питание контроллера) . При этом микросхема переходит в режим ожида­ ния команд программирования . Поэ т ому установка программирующего разъема может в некоторых случаях снижать помехоустойчивость схемы - такое сочетание уровней иногда может возникнуть в процессе эксплуатации из-за наводок. Однако на практике для этого нужно слишком невероятное сочетание условий при очень высоком уровне помех, так что вероятность возникновения такой ситуации можно не принимать во внимание. Но и добиться ее полного исключения тоже не очень сложно: на всякий случай стоит устанавливать по выводам программирования внешние подтягивающие резисторы (как это обсуждалось в главе 4) - они эффективно гасят возможные помехи . Надо также отметить , что использованию программирующих выводов в качестве обычных портов ничто, в общем, не мешает. Единственное, чего нельзя делать с вы­ водами программирования , если предполагается их использовать в таком качестве, - подсоединять их к выходам какой-то другой микросхемы (или , например, к коллектору открытого транзистора) , - тогда и программирования не получится , и вообще можно повредить и схему, и программатор. Можно защититься и от этого (установить по дио­ ду последовательно с резисторами 5 1 0 Ом - анодом к выводу МК и контактам разъ­ ема) , но смысла городить подобные сложности нет, - проще взять контроллер с б6льшим числом выводов или программировать его отдельно от схемы. Способы подключения ISР-программаторов к контроллеру стандартизированы, и их разнообразие сводится всего к двум разновидностям одного и тоже типа двух­ рядных игольчатых разъемов типа IDC : 6- или 1 О-контактной. На плате устанавли­ вают штырьковую часть, на плоском кабеле, идущем от программатора, - гнездо­ вую. Следует отметить, что название IDS относится к разъемам с корпусом, исклю­ чающим неверную ориентацию при подключении, но он занимает больше места, и его наличие усложняет разводку платы, потому в реальности на платах обычно ставят бескорпусной вариант того же типа разъема, более известный под названием PLD. Внешний вид штыревой части одной из разновидностей программирующего разъ­ ема - 6-контактной - можно увидеть на любой плате Arduino (рис . 5 .3) . При установке бескорпусного разъема PLD на плату следует всегда помечать вывод номер 1 , чтобы не перепутать ориентацию при подключении (на платах Arduino он обычно помечен точкой или цифрой 1 ). На кабельной части первый вывод всегда находится с той стороны разъема, куда подходит крайний проводник плоского ка­ беля, помеченный красным. Сразу разберемся с нумерацией выводов штырьковых разъемов и с двумя разно­ видностями стандартной разводки. Нумерация контактов разъемов типа PLD и IDC отличается от обычной и делается не в обход, как у микросхем, а следующим обра­ зом : если смотреть на штыри сверху (т. е. со стороны подсоединения ответной час­ ти), то вывод номер 1 , как и положено, находится слева внизу, вывод 2 - над ним, вывод 3 - следующий за первым в нижнем ряду и т. д., т. е . нижний (левый на рис. 5 .4) ряд - это все нечетные, а верхний (правый на рис. 5 .4) - все четные контакты. Это сделано потому, что такие разъемы могут иметь не строго фиксиро-

RkJQdWJsaXNoZXIy MTExODQxMg==