как не зафьюзить ни себя ни контроллер
|
|
trim | Дата: Четверг, 12.07.2012, 01:25 | Сообщение # 1 |
Группа: Проверенные
Сообщений: 105
Статус: Offline
| Гуру сайта ......,мы,Подростающее поколение (в делах программирования ) Хотим знать как ,и главное за что отвечают фьюз биты встречающиеся на всех типах контроллеров а также индивидуально на каждом .............и если можно в картинках (шутка))))))
там по кварцевым резонаторам не все ясно
например external clock я его разлочил просто очень
с помощью любого контроллера на любой порт загоняем прогу и вуаля
Config Portd.5 = Output Do Portd.5 = 0 Portd.5 = 1 Loop
затем с этой ноги подаем на залоченнный ,данным фьюзом контроллер,XTAL 1 и все видиться
Сообщение отредактировал trim - Четверг, 12.07.2012, 01:30 |
|
| |
trim | Дата: Четверг, 12.07.2012, 01:32 | Сообщение # 2 |
Группа: Проверенные
Сообщений: 105
Статус: Offline
| кто что знает пишите оцень важно
|
|
| |
Aleks8383 | Дата: Четверг, 12.07.2012, 07:47 | Сообщение # 3 |
Группа: Проверенные
Сообщений: 104
Статус: Offline
| Здесь описаны не все фьюзы – только основные. Подробнее (и правильнее) о фьюзах нужно смотреть в даташитах на каждый конкретный микроконтроллер.
CKSEL – выбор тактового генератора для микроконтроллера. Для работы микроконтроллера (как и для любого процессора) нужны тактовые импульсы. Источником тактового сигнала может быть: – внутренний RC генератор. Никаких дополнительных элементов не нужно. Удобно, но RC генератор имеет небольшую точность работы (вплоть до 10% погрешности) и, кроме того, «плывет» от температуры. Для некритичных по времени приложений вполне годиться. – внешний кварцевый (или керамический) резонатор. Нужен сам резонатор, плюс два конденсатора на 15-30пФ. Соответственно, будут заняты две ножки микроконтроллера – XLAT1 и XLAT2. Применяется там, где нужны точные замеры времени или частота работы микроконтроллера выше, чем может дать внутренний RC генератор. – еще можно тактировать микроконтроллер от внешнего источника тактового сигнала. Это может быть другой микроконтроллер (для синхронизации работы) или внешняя схема, дающая нужный сигнал. Тактовый сигнал подается на ножку XLAT1.
Источник тактового сигнала для микроконтроллера задается комбинацией битов CKSEL3…0. Это может быть (для ATTiny2313, выборочно): CKSEL3…0 = 0000 – Внешний тактовый сигнал; CKSEL3…0 = 0010 – Внутренний тактовый генератор – частота 4 МГц; CKSEL3…0 = 0100 – Внутренний тактовый генератор – частота 8 МГц; CKSEL3…0 = 1101 – Внешний тактовый генератор – кварц частотой от 3 до 8 МГц; CKSEL3…0 = 1111 – Внешний тактовый генератор – кварц частотой больше 8 МГц. CKOUT – разрешает вывод тактовой частоты на ножку CLKO микроконтроллера (для тактирования других устройств). CKOUT = 1 – ножка микроконтроллера работает как обычный порт ввода-вывода; CKOUT = 0 – на ножку микроконтроллера выдается сигнал тактового генератора.
CKOPT – задает размах тактового сигнала на внешнем генераторе. CKOPT = 1 – размах небольшой – генератор работает в экономном режиме. Нормально генератор может работать лишь при небольших частотах и в условиях близким к идеальным. При значительных помехах, большой тактовой частоте, перепадах (скачках) напряжения питания, микроконтроллер может работать нестабильно; CKOPT = 0 – задающий генератор работает на полную мощность, устойчив к помехам и может работать во всем диапазоне частот. Если нет особых требований к энергосбережению – советую всегда программировать этот бит.
SCKDIV8 – деление тактовой частоты на 8. Тут все просто: SCKDIV8= 1 – микроконтроллер работает на частоте задающего генератора; SCKDIV8= 0 – микроконтроллер работает на частоте в 8 раз меньше частоты задающего генератора;
SUT – задает скорость запуска микроконтроллера. После снятия «сброса» (или подачи питания) программа, записанная в микроконтроллер, начинает работать не мгновенно. Микроконтроллер выжидает некоторое время, для того, чтобы нормально запустился тактовый генератор, установилось напряжение питания и т.д. Время ожидания до запуска программы и задают биты SUT1…0. Чаще всего нам не критична скорость запуска, поэтому советую ставить на максимум. SUT1..0 = 11 – максимальное время запуска (чуть больше 65 mS). На время запуска еще влияет CKSEL0, но это уже детали …
RSTDISBL –разрешает использовать ножку Reset как еще один порт ввода-вывода. Иногда нужная вещь, но нужно знать - после программирования RSTDISBL микроконтроллер уже нельзя будет прошить последовательным программатором! Поэтому без особой надобности не трогайте его. RSTDISBL = 1 – ножка сброса работает как сброс; RSTDISBL = 0 – ножка сброса работает как еще один порт ввода-вывода, последовательное программирование отключено.
SPIEN – разрешение на последовательное программирование. По умолчанию запрограммирован (0) – разрешено последовательное программирование. SPIEN = 0 – разрешено последовательное программирование; SPIEN = 1 – запрещено последовательное программирование.
WDTON – включает Watch Dog Timer. Для ответственных приложений, там, где недопустимо зависание программы (будь то ошибка программы или злостная помеха), применяют Watch Dog Timer. Это внутренний таймер микроконтроллера, работающий от своего независимого генератора. При переполнении этого таймера микроконтроллер сбрасывается и начинает выполнять программу с начала. Программист должен в тесте программы (обычно в главном цикле) вставить специальную команду обнуления этого таймера (WDR). Команда периодически выполняется и обнуляет таймер, не давая ему переполнится. Если микроконтроллер «повис» перестают выполняться команды обнуления, таймер переполняется и сбрасывает микроконтроллер. WDTON = 1 – Watch Dog Timer – отключен (можно включить программно); WDTON = 0 – Watch Dog Timer – включен (программно выключить нельзя). В обычных приложениях не нужен.
BODLEVEL и BODEN – контроль напряжения питания микроконтроллера (Brown-out Detector). Если питание микроконтроллера опуститься к минимально допустимому или чуть ниже, то работа микроконтроллерабудет нестабильной. Возможны ошибочные действия, потеря данных, случайное стирание EEPROM. Микроконтроллер умеет следить за уровнем своего питания (BODEN=0) и когда оно достигает уровня, который задается битами BODLEVEL, сбрасывается и держится в ресете пока уровень не поднимется до рабочего уровня. В некритических приложениях можно не использовать.
JTAGEN – разрешает интерфейс JTAG (внутрисхемный отладчик). При активации некоторые линии микроконтроллера отдаются под интерфейс. Но зато можно подключать JTAG отладчик и с его помощью легко отладить любую программу прямо в схеме – удобно. JTAGEN = 1 – запрещен JTAG; JTAGEN = 0 – разрешен JTAG.
DWEN – бит, разрешающий работу DebugWire – еще одного отладочного интерфейса. DebugWire однопроводный отладочный интерфейс работающий через ножку сброса, поэтому «не отнимает» у микроконтроллера ножки портов ввода-вывода. DWEN= 1 – запрещен DebugWire ; DWEN= 0 – разрешен DebugWire .
AVR микроконтроллеры могут во время своей работы изменять содержимое области программ (программировать сам себя). SELFPRGEN – бит, разрешающей программе производить запись в память программ. SELFPRGEN = 1 – изменение области программ запрещено; SELFPRGEN = 0 – разрешено изменение области программ.
EESAVE – защита EEPROM от стирания. При подаче команды полного стирания микроконтроллера (обычно осуществляется при каждом программировании кристалла) стирается и EEPROM. Если Вы хотите чтобы EEPROM оставалось нетронутой – активируйте этот фьюз. Это актуально если в EEPROM хранятся важные данные. EESAVE = 1 – стирать EEPROM вместе с Flash; EESAVE = 0 – оставлять EEPROM при очистке нетронутым.
AVR микроконтроллеры могут иметь бутлоадер – это область в конце памяти, в которой можно разместить загрузчик, который предназначен для загрузки и запуска основной программы. BOOTRST – как раз и заставляет микроконтроллер запускаться с области бутлоадера. BOOTRST = 1 – микроконтроллер запускает программу с нулевого адреса; BOOTRST = 0 – микроконтроллер запускает программу с бутлоадера.
BOOTSZ0..1 – задает размер бут сектора (области памяти программ для бутлоадера).
Lock Bits – Это отдельный фьюз байт который предназначен для защиты области программ и/или EEPROM от копирования. Полное стирание восстанавливает эти биты в исходное состояние.
Еще раз повторюсь, это не полный перечень фьюз бит, для каждого конкретного микроконтроллера смотрите даташит.
|
|
| |
trim | Дата: Четверг, 12.07.2012, 11:36 | Сообщение # 4 |
Группа: Проверенные
Сообщений: 105
Статус: Offline
| спасибо огромное но есть что спросить .в баском ведь так не написано когда фьюзиш .вот вопрос .отчего танцевать то
|
|
| |
trim | Дата: Четверг, 12.07.2012, 11:37 | Сообщение # 5 |
Группа: Проверенные
Сообщений: 105
Статус: Offline
| всмысле обозначение фьюзов
|
|
| |
Aleks8383 | Дата: Четверг, 12.07.2012, 19:10 | Сообщение # 6 |
Группа: Проверенные
Сообщений: 104
Статус: Offline
| Ну вот для примера фьюзы для Атмега8,я обвёл какие фьюзы нужно выстывлять.Немног опишу и сравнишь с моим постом выше:BODLEVEL и BODEN контроль напряжения,далее идёт установка частоты тактирования контролера(на картинке 4 Мгц от внутреннего генератора),далее спрашивают как использовать вывод Reset как и положено или как обыкновенный ногу контролера,далее Watch Dog Timer,потом спрашивают разрешать впрограмирование микросхемы(его лучше некогда нетрогать и наче незапрограмируешь потом контроллер),далее идёт CKOPT,дальше спрашивают стирать EEprom при новой прошивке контроллера,потом уточняют размер памяти для бутлоадера,ну а далее спрашивают в какое место переходить после сброса контроллера(в начало програмы или в бутлоадер)Вроде всё.
Сообщение отредактировал Aleks8383 - Четверг, 12.07.2012, 19:14 |
|
| |
trim | Дата: Четверг, 12.07.2012, 22:46 | Сообщение # 7 |
Группа: Проверенные
Сообщений: 105
Статус: Offline
| здорово ,класс ,спасибо еще вопрос там очень много видов внешнего и внутреннего тактирования контроллера ,а в чем ссуть то разница то в чем они одни и теже попадаются ??????
|
|
| |
trim | Дата: Четверг, 12.07.2012, 22:47 | Сообщение # 8 |
Группа: Проверенные
Сообщений: 105
Статус: Offline
| я думаю что это самое главное в этом вопросе поэтому подробней разобраться хочется и еще одно это каким фьюзом подтягиваются конденцаторы на внутренний генератор или это заблуждение (я где то читал)
Сообщение отредактировал trim - Четверг, 12.07.2012, 22:51 |
|
| |
niko-lay | Дата: Пятница, 13.07.2012, 09:32 | Сообщение # 9 |
Группа: Проверенные
Сообщений: 19
Статус: Offline
| Кроме частоты тактирования фьюзами еще выбирается система запуска (сколько времени пройдет после подачи питания до запуска программы) и сброса (уровень напряжения при котором микроконтроллер автоматически заресетится) микроконтроллера.
|
|
| |
Aleks8383 | Дата: Пятница, 13.07.2012, 11:46 | Сообщение # 10 |
Группа: Проверенные
Сообщений: 104
Статус: Offline
| Quote (trim) еще одно это каким фьюзом подтягиваются конденцаторы на внутренний генератор или это заблуждение Заблуждение,некакими не подтягиваются.Самому на плате нужно ставить.Хотя к примеру у меня Мега16 запускается свободно от 16Мгц кварца безкондёров,но лучше всётаки ставить.
|
|
| |
trim | Дата: Суббота, 14.07.2012, 23:21 | Сообщение # 11 |
Группа: Проверенные
Сообщений: 105
Статус: Offline
| какой выбрать для тактирования от внешнего кварца 16 мегггаггерц
|
|
| |
Aleks8383 | Дата: Суббота, 14.07.2012, 23:45 | Сообщение # 12 |
Группа: Проверенные
Сообщений: 104
Статус: Offline
| 2 и 3 снизу
|
|
| |
trim | Дата: Воскресенье, 15.07.2012, 00:34 | Сообщение # 13 |
Группа: Проверенные
Сообщений: 105
Статус: Offline
| а ,то есть написано где хай фрекуанси так а если что внешним тактированием разлочу ????
|
|
| |
Aleks8383 | Дата: Воскресенье, 15.07.2012, 09:37 | Сообщение # 14 |
Группа: Проверенные
Сообщений: 104
Статус: Offline
| Да где написана"хай фрекуанси" ,а порусски высокая частота.Я вот такую штуку собрал давным давно,на начальных этапах освоения контроллеров требовалась ,щас уже надобность отпала.
Сообщение отредактировал Aleks8383 - Воскресенье, 15.07.2012, 09:37 |
|
| |