Путаница с перемычками (fuses) |
![]() |
Добавил(а) microsin |
Перемычки или фьюзы (fuses), как известно, в чипах ATtinyXX и ATmegaXX управляют режимами работы, программирования, отладки и т. д. В даташитах эти перемычки подробно описаны, а с помощью программатора из можно записать в чип. Однако часто в интерпретации значений этих перемычек возникает путаница. Происходит это по нескольким причинам. Во-первых, из-за того, что биты перемычек - "инвертированные". Т. е., запрограммированный фьюз означает, что в него записан ноль, и этот факт означает включение функции бита фьюза (эта функция отражается мнемоническим именем фьюза, например CKDIV8 включает встроенный делитель тактовой частоты на 8. Делитель на 8 включается, когда фьюз CKDIV8 запрограммирован, т. е. в его бит записан 0). Во-вторых, разные программаторы предоставляют разный интерфейс к управлению перемычками, к тому же часто неудобный и неочевидный. Приведу для примера интерфейс трех программаторов и одного калькулятора перемычек, отображающих одно и то же значение перемычек чипа ATtiny45 - 0xС1 low fuse byte, 0xDF high fuse byte, 0xFF ext fuse byte. [ChipProg+, версия 4.38.00, производитель Фитон] [AVR Studio, Version 4.14 Build 589, железо - JTAGICE mkII] [avrdude, консольный программатор] [AVR Fuse Calculator ··· Version 0.3.5.1] |