Zheka

Начинающим О Фьюзах (Fuse Bits)

325 сообщений в этой теме

neonis    14

Andrejabramovich

65-Low FB-High или

69-Low FB-High- так время установления амплитуды внутреннего генератора немного увеличится.

http://www.engbedded.com/fusecalc/

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
djlex55    1

Доброй ночи! Собираю схемку на Atmega164 и заинтересовал вопрос: в режиме тактировки от внутреннего генератора (INTERNAL RC CALIBRATED OSCILLATOR 8MHz) генератор работает постоянно на 8 МГц и МК тактируется тоже от 8-ми Мгц при бите CKDIV=1...  И вот при включении бита CKDIV=0, понятно, МК тактируется от 1 МГц, а сам RC генератор работает на 8-ми или тоже на 1-ом МГЦ? Т.е. частота гены 8 МГц делится для МК на 8  или гена сразу работает на 1 МГЦ и ничего для МК не делится, где делитель......??

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
UTSource

Найдите миллионы труднодоступных

электронных компонентов

djlex55    1
10 часов назад, Геннадий сказал:

CKDIV8 активирует предделитель

ДА. Это я знаю, значит выходит частота остается генератора 8 МГц, а тактировка ядра МК о1 МГЦ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
DmitryS    28

Всем Привет ! Попал с фузами . ATmega16A , работала на 8МГц от внутреннего генератора , решил поставить кварц на 12МГц , выбрал в студии вот этот параметр 16A fuse.jpg

Студия , во всплывающей подсказке , говорит что это внешняя RC цепочка или внешний OSC (кварц) от 8 до 12МГЦ , задержка при старте 64mS ,  вроде выбрал правильно , прошиваю - всё ОК ,

Перезагружаю и МК не читается , Что я сделал не так ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
DmitryS    28

Тупанул , надо было выбирать вот это

16A fuse.jpg

Но это я так подумал не беда , ща засуну мегу в доктора - вылечу . И... фиг вам , доктор не лечит .

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Посмотрите на свою картинку. Все ли фьюзы выставлены как надо...

А что доктор "говорит"?

 

Изменено пользователем Геннадий

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
DmitryS    28

Геннадий , я больше ни чего не трогал , последняя картинка это я новую мегу16а проверял , но прошивать фузы боюсь , хотя думаю что сейчас я правильно определился , ну еще плюс убрать делитель на 8 .

А доктор вааще ни чего не показывает , терминал молчит , жму кнопку загорается красный светодиод и горит пока не выключишь питание  . Обнаружил интересную деталь - 40-ю панельку я впаивал где то летом , но работу доктора с ней не проверял , подумал , может я её вверх ногами впаял , и стал звонить землю - если 11 нога , то все правильно , щупом пошел по ножкам,  тестер у меня запищал на 7 ноге , дошел до 11 тоже пищит . Думал соплей навешал , проверил ни чего нет , вынул мегу , ни доктор , ни мега ( 7нога)  по отдельности не показывают замыкания , опять вставляю в доктора , тоже самое 7нога звонится на массу , вставил новую , новая не показывает замыкания , Вот такая фигня . По моем мега сдохла .

Изменено пользователем DmitryS

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
DmitryS    28

Геннадий , терминал заработал , дело было в переходнике , на нем неправильно нанесена маркировка пинов ,  соединил Тх-->Тх заработало

0:16:30.391> doctor (HVPP+HVSP) version 2.12
0:16:30.391> http://forum.cxem.net/
0:16:30.391>
0:16:30.453> HVPP MODE
0:16:30.453>
0:16:30.453> Init programming...  DONE
0:16:30.515> Read signature...    1E 94 03
0:16:30.578> Found...             Atmega 16   
0:16:30.578>
0:16:30.578> Read fusebits...     A8 99
0:16:30.640> Lock-bits...         BF (locked)
0:16:30.640> Should be...         E1 99
0:16:30.703> Chip erase...        DONE
0:16:30.703> Writing...           DONE
0:16:30.765> Verifying...         A8 99 - FAIL!
0:16:30.765>
0:16:30.765> Thank You

Светодиод горит красный .

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Viktor26    307
В 15.01.2017 в 18:08, DmitryS сказал:

Студия , во всплывающей подсказке , говорит что это внешняя RC цепочка или внешний OSC (кварц) от 8 до 12МГЦ , задержка при старте 64mS , 

Про кварц на картинке ничего не написано. Для кварца есть пункты в конце списка. Прокрутите скролом в том меню, сами все увидите. А тут вам нужно на хтал1 гену из 555 повесить. Должно помочь. Кстати не заметил вторую вашу картинку, на ней вы правильно показываете, можете шить.

  • Одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Viktor26    307

@DmitryS кстати вы писали про делитель на 8, в мегах его нет, он только в тиньках есть

  • Одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
DmitryS    28

Да , нет делителя , это я в запарке погаречился немного :D Когда понял , хотел исправить пост , но время уже для редактирования вышло .

Изменено пользователем DmitryS

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Berg    17
13 часа назад, Viktor26 сказал:

кстати вы писали про делитель на 8, в мегах его нет, он только в тиньках есть

не не, ATMega328, ATMega168, ATMega88 и ряд других "мег" имеет CLKDIV8 (Divide clock by 8) , при чем установленный по умолчанию.

  • Одобряю 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Доброго дня в мене така проблема коли натискаєш кнопку тест без нічого то вибиває що підключений мосфен транзістор в чому може бути причина???? Резистора бачить но показує не точно а кондисатора ни!

IMG_20170205_151319.jpg

IMG_20170205_151337.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
jn79    4

59061174589ce_.thumb.jpg.48cb9f6f6d2fcabe38a347e006cf4ae2.jpg

что я делаю не так ? программатор контроллер видит но устройство после прошивки  не работает :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Всем привет

я начинающий необходима помощь решил собрать доску дляя токарника на атмега8

вот ссылка  https://www.vbesmens.de/de/dro-fuer-magnetbaender.html

автор пишет что фьюзы надо смотреть в файле "main.c" сам файл и фото прилагаю

проштваю программой  AVRDude Prog 3.3

подскажите пожалуйста

заранее благодарен

 

20170616_203031.jpg

main.c

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
skorpio777    0

 Без прошивки фъюзов работает устройство на контроллере Atmega 16, но с маленькой скоростью. Кварц стоит на 8 MHz. После прошивки фююзов, устройство молчит. Фююзы прошивал так как указано в статье устройства, прикреплю файл. Пытался посмотреть по калькулятору, не могу найти чтобы установить кварц с определенной частотой. Вот не пойму с прошивкой у меня проблемы или гдето еще...

ATmega16_TelegraphKey_фьюзы_запрограммировать_так!.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
goodbye    21

Народ подскажите в чем косяк. Уже всё забыл))

прошиваю optiboot для ардуино фьюзы для atmega328p такие в boards.txt:

extfuse: 0x05

hi fuse: 0xDE

low fuse: 0xFF

прошиваю из линукса командой avrdude:

avrdude -c stk200 -p m328p -P /dev/parport0 -U efuse:w:0x05:m -U hfuse:w:0xDE:m -U lfuse:w:0xFF:m

после этого atmega не отвечает, осциллографом смотрю генерацию внешнего резонатора - тишина. кварц на 16мгц ставлю питание 5в.

кварц запаиваю малюсенький smd  типа такого:

F138-06-%D0%B1%D0%B5%D1%81%D0%BF%D0%BB%D

сам кварц проверял, рабочий, но с атмегой не хочет стартовать ? или фьюзы не правильно прописал ?

конденсаторы по 26пФ запаял с обоих ног на землю, пробовал без них - тоже самое.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
goodbye    21

разобрался...

фьюзы нужно было маленьким регистром писать, а я заглавными написал %) это ж ... линукс блин :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
COKPOWEHEU    257

Странно, не помню чтобы были такие проблемы. Но в любом случае при ошибке дудка сообщит, если прочитанные фузы не совпадают с записанными - тоже.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: Alexey104
      Всем привет!
      Возникла следующая проблема:
       
      Есть две ардуины 'Mega2560'. По несчастливому стечению обстоятельств данные платы попали в руки одному чуваку, который, вернув их, заявил, что они перестали работать после того, как он "чисто ради интереса" поковырял на обеих некоторые фьюзы. Есть у меня такой китайский usbasp v2 программатор:
      Подключив данный девайс к ICSP-пинам первой платы, удалось без проблем восстановить на ней загрузчик через стандартную Arduino-IDE, после чего работоспособность платы полностью восстановилась. Но вот при попытке сделать то же самое со второй платой, получаю это:
      Такое же сообщение получаю при попытке зашить загрузчик в неподключенную к программатору ардуину, то есть программатор вообще не видит МК. Плата прекрасно работала до того, как вышеупомянутый товарищ покрутил настройки фьюзов.
       
      Что я пытался предпринять:
      Замыкал пины JP3 программатора, отвечающие за понижение скорости, подключал к ардуине 5V от внешнего источника при прошивке загрузчика, - не помогло.
       
      Поиском пользоваться умею, аналогичную тему тут находил, но там проблема была в том, что парень неверно подключал программатор к контроллеру. В моём же случае всё подключено верно, повторюсь, что загрузчик первой платы этим же программатором был восстановлен успешно.
      Буду рад любым советам касательно того, как восстановить работоспособность платы.
       
       
       
    • Автор: Ru_s
      Здравствуйте. Подскажите пожалуйста, возможно ли на attiny13 реализовать такую штуку. Мне в процессе работы программы нужно поменять режим работы таймера/счетчика с fast PWM на обычный счёт, отсчитать длительный промежуток времени и опять вернутся в режим ШИМ. Т.е. я подаю на ногу сигнал ШИМ и когда он в максимальном значении, я его отключаю, и тупо подаю на ногу высокий лог. уровень. В это время Т/С по идее свободен, и мне надо посчитать время работы выхода на максимальном лог. уровне, при достижении какого-то значения времени нужно перевести т/с обратно в ШИМ. Возможно ли это? И как приблизительно это реализовать
    • Автор: ShimkoMax
      Здравствуйте. Требуется вывести данные температуры и влажности на экран. С LCD дисплеем разобрался, осталось разобраться с SHT21. Постоянно выводит 0 на дисплей:
      Main.c:
      #define F_CPU 8000000UL #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <stdio.h> #include <stdlib.h> #include "globals.h" #include "LCD_lib.h" #include "twi.h" // I2C #include "sht21.h" int main(void) { I2C_Init(); _delay_ms(100); LCD_init(); char buffer[20]; roomAdrInit(); SHT21_reset(); while(1) { SHT21_reset(); LCD_sendString(itoa((int)get_temperature(), buffer, 10), 4, 0, 0); _delay_ms(1000); } } twi.c:
      #include <avr/io.h> #include "twi.h" void I2C_Init(void) { TWSR = 0; TWBR = 0x20; TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN); } void I2C_StartCondition(void) { TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN); while(!(TWCR & (1<<TWINT))); } void I2C_StopCondition(void) { TWCR = (1<<TWINT)|(1<<TWSTO)|(1<<TWEN); } void I2C_SendByte(uint8_t data) { TWDR = data; TWCR = (1<<TWINT) | (1<<TWEN); while(!(TWCR & (1<<TWINT))); } unsigned char I2C_ReadByteAck(void) { TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWEA); while(!(TWCR & (1<<TWINT))); return TWDR; } unsigned char I2C_ReadByteNak(void) { TWCR = (1<<TWINT) | (1<<TWEN); while(!(TWCR & (1<<TWINT))); return TWDR; } sht21.c:
      #define F_CPU 8000000UL #include <avr/io.h> #include <util/delay.h> #include <stdlib.h> #include <stdio.h> #include "twi.h" #include "sht21.h" void SHT21_reset() { unsigned char reg[1]; reg[0]=SHT21_reset_cmd; I2C_StartCondition(); I2C_SendByte(SHT21_i2c_write); I2C_SendByte(*reg); I2C_StopCondition(); _delay_ms(100); } uint16_t checksum(unsigned char data[],uint8_t byte, uint8_t check) { uint8_t crc=0; uint8_t bytectr,bit; for (bytectr=0; bytectr<byte;bytectr++) { crc^=(data[bytectr]); for (bit=8;bit>0;bit--) { if(crc&0x80) { crc=(crc<<1)^polynomial; } else { crc=crc<<1; } } } if (crc!=check) { return 0; } else { return data; } } void write_user_register() { unsigned char reg[3]; reg[0]=user_register_write; reg[1]=0x44; I2C_StartCondition(); I2C_SendByte(SHT21_i2c_write); I2C_SendByte(*reg); I2C_StopCondition(); } uint16_t read_value(uint8_t reg) { char data[4],crc; uint16_t result; data[0]=reg; I2C_StartCondition(); I2C_SendByte(SHT21_i2c_write); I2C_SendByte(reg); I2C_StartCondition(); I2C_SendByte(SHT21_i2c_read); data[1] = I2C_ReadByteAck(); data[2] = I2C_ReadByteAck(); crc=I2C_ReadByteNak(); I2C_StopCondition(); result=(data[1]<<8) | data[2]; checksum(result,4,crc); result &= 0xFFFC; return result; } float get_humidity() { //char buffer2[4]; uint16_t hum_value = read_value(humidity_hold_mode); return -6 + 125.0 / 65536.0 * hum_value; //dtostrf(rh,5,2,buffer2); _delay_ms(100); } float get_temperature() { //char buffer1[4]; uint16_t temp_value = read_value(temperature_hold_mode); return -46.85 + 175.72 / 65536.0 * temp_value; //dtostrf(tc,5,2,buffer1); _delay_ms(100); }  
    • Автор: GeloMik
       
      Я новичок в программировании AVR контроллеров, хотя знаю +/- C++.
      Проблема заключается в том, что я не могу написать прошивку к своему маленькому проекту. Используемый мною контроллер - ATTiny45. У него на борту имеется 1 АЦП с выходом на 4 ноги. Нужно, чтобы фактически одновременно брался замер с 3, 4 и 5 порта по АЦП, и при появлении 1 на одном из них МК должен подать 5В на 1 или 2 порты. Источник АЦП AREF. 
      Сюда прикреплю схему самого робота, если кого не затруднит помочь написать прошивку, буду очень благодарен 

    • Автор: Stratix
      Здравствуйте, у меня проблема с прошивкой разных устройств из-за программаторов. Дело в том что у меня есть некоторое количество китайских и самодельных программаторов для разных производителей, с ними постоянно какие-то проблемы, некоторые отказываются нормально работать на windows 10(другие версии ПО не устраивают), другие не работают с последними версиями сред разработки и т.д. Так же нужно прошивать схемы памяти. Хочу прошивать устройства без постоянной сборки программаторов и неудобств. Думаю о двух вариантах: взять оригинальные программаторы для всех производителей: altera, xlinx, arm, pic, avr(некоторые найти сложно, например оригинальный usb-blaster и высокая стоимость в сумме), второй вариант: взять универсальный программатор, который бы поддерживал все новые микросхемы, а вот с этим проблема, большинство универсальных программаторов не шьют stm, плис. Есть ли вообще реально универсальные программаторы? Мне было бы намного удобнее если на столе б лежал один программатор, а не куча. Смотрел список микросхем chipprog-48, пока что самый большой, к сожалению не поддерживает новые fpga, например: cyclone IV. Связывался, сказали что поддержки не будет и в будущем. Стоит ли взять chipprog-48 в 2018 году или есть программаторы лучше, с большим списком микросхем?