AVR микроконтроллеры
Re: AVR микроконтроллеры
За один такт выполняется от 1/3 до 1-й инструкции.
Точное значение зависит от того какая инструкция и какие обстоятельства сложились при её выполнении.
Раздел Instruction Set Summary даташита на любую AVR.
Точное значение зависит от того какая инструкция и какие обстоятельства сложились при её выполнении.
Раздел Instruction Set Summary даташита на любую AVR.
Re: AVR микроконтроллеры
Подскажите в каких пределах колеблется напряжение низкого уровня(логический 0) в микроконтроллерах Atmega8 и в среднем какие значения по микроконтроллерам AVR?
Все гениальное - просто
Re: AVR микроконтроллеры
Параметр VOL:CB1 писал(а):в каких пределах колеблется напряжение низкого уровня(логический 0) в микроконтро ллерах Atmega8
ATmega8 - стр.242: http://www.atmel.com/Images/Atmel-2486-8-bit-AVR-microcontroller-ATmega8_L_datasheet.pdf
ATmega48A/88A/168A/328P - стр.313: http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf
И т.д. - найти самому в datasheet существенно быстрее, чем ждать ответа на форуме.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Re: AVR микроконтроллеры
Спасибо! Даташит найти не сложно, сложнее в трех сотнях листов на английском языке найти нужную строчку
Жаль что нет даташитов на русском языке
Все гениальное - просто
-
PlagueDoctor
- Первый раз сказал Мяу!
- Сообщения: 28
- Зарегистрирован: Пн ноя 24, 2014 12:02:44
Re: AVR микроконтроллеры
СВ1. На http://gaw.ru/ почитайте, там есть на русском даташиты.
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: AVR микроконтроллеры
Когда ищешь в орфографическом словаре как пишется определенное слово, нет необходимости читать словарь полностью. Тоже самое и с даташитом. И еще есть такая вещь как содержание, а в электронных документах еще и интерактивный поиск.
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: AVR микроконтроллеры
Коты, добрый день!
Есть у меня вопросик, который всю голову мне сломал... Прошиваю Фьюзы АТТИНИ13А. Шить решил через ЮСБасп с помощью КОЗЫ (Хазама). Прекрасно все делает. И прошивку заливает и фьюзы исправляет.
Однако, выставляю внутреннюю частоту в 4,8 МГц. И убираю Делитель на 8. Заливаю прошивку тупое ногодрыганье включить и выключить в главном цикле. В итоге наблюдаю на осциллографе, что частота всего около 600 кГц...
Выставляю делитель на 8, в итоге частота падает еще ниже. И так на любом приделе!
Ничего понять не могу, может я чего не так делаю, может где чего не дочитал?
З.Ы. Тупо решил смотреть частоту, потому что программа отказалась делать то, что я хотел, пришлось проверять.
Есть у меня вопросик, который всю голову мне сломал... Прошиваю Фьюзы АТТИНИ13А. Шить решил через ЮСБасп с помощью КОЗЫ (Хазама). Прекрасно все делает. И прошивку заливает и фьюзы исправляет.
Однако, выставляю внутреннюю частоту в 4,8 МГц. И убираю Делитель на 8. Заливаю прошивку тупое ногодрыганье включить и выключить в главном цикле. В итоге наблюдаю на осциллографе, что частота всего около 600 кГц...
Выставляю делитель на 8, в итоге частота падает еще ниже. И так на любом приделе!
Ничего понять не могу, может я чего не так делаю, может где чего не дочитал?
З.Ы. Тупо решил смотреть частоту, потому что программа отказалась делать то, что я хотел, пришлось проверять.
Станислав
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: AVR микроконтроллеры
Вы фьюзы то покажите. В протеусе не пробовали частоту поглядеть, может дело не с фьюзами, а с кодом? И немного оффтопа, как там Ваши двести полочек?
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: AVR микроконтроллеры
Z_h_e писал(а):как там Ваши двести полочек?
Тупо стоят у стены...
Делать 200 плат ЛУТом - то еще удовольствие. В итоге сначала заказал знакомому, но он проволынил почти два месяца и нихрена не сделал. Я сделал сам 6 платок под светодиоды... Теперь думаю или заказать платы (примерно 5500 тысяч), либо купить кластеры светодиодные или что-то подобное, что не надо на платы паять... А так есть у меня 1000 РГБ светодиодов 5050, но пока лень паять. Однако, доделывать его буду все равно, когда руки на него поднимутся. Z_h_e писал(а):Вы фьюзы то покажите.
Вот такие показывает Хазама...
А программа вся вообще ни о чем:
Спойлер
Код: Выделить всё
; ******************************************************
; * Автор: СКАЗОЧНИК *
; * Дата: 31.05.2013 *
; * Версия: 130531 *
; * Имя файла: Управление датчиком температуры DS18B20 *
; * Для AVR: ATTiny13 *
; * Тактовая частота: 4,8 MHz (внутренняя RC) *
; * Среда разработки: AVR Studio 4.19 *
; * *
; * Выполняемые функции: Программа тест для управления *
; * датчиком температуры по 1-Ваер интерфейсу и *
; * семисегментными индикаторами (4 штуки) *
; ******************************************************
; ================
; ПОДКЛЮЧАЕМЫЕ БИБЛИОТЕКИ (.include)
; ================
.include "tn13Adef.inc"
; .include "1W.inc"
; ============
; ТИП МИКРОКОНТРОЛЛЕРА (.device)
; ============
.device ATtiny13A
; =================
; ОБЪЯВЛЕНИЯ И КОНСТАНТЫ (.def, .equ)
; =================
.def temp = R16
.def error = R17 ; Переменная ошибки
.def DATA = R18 ; Данные между датчиком температуры и МК
.def temp1 = R19
.def REGISTR = R20 ; Данные для отправки в регистр на вывод индикторов
.def RAZR = R21 ; Разряд индикатора (номер прерывания счетчик)
.def RAZ2 = R22
.def RAZ3 = R23
.def RAZ4 = R24
; .def RAZ4 = R25
.equ DQPORT = PORTB ; Указать порт, к которому подключен вывод DQ
.equ DQDDR = DDRB ; Указать регистр напраавления порта, к которому подключен вывод DQ
.equ DQPIN = PINB ; Указать регистр чтения порта, к которому подключен вывод DQ
.equ DQ = 1 ; Указать номер бита порта, к которому подключен DQ
.equ DSPORT = PORTB ; Указать порт, к которому подключен вывод DQ
.equ DSDDR = DDRB ; Указать регистр напраавления порта, к которому подключен вывод DQ
.equ DSPIN = PINB ; Указать регистр чтения порта, к которому подключен вывод DQ
.equ DS = 0 ; Указать номер бита порта, к которому подключен DQ
; .equ xtal = 4800000
; .equ DVAL = xtal/100000
; ====
; МАССИВЫ И Т.Д. (.eseg) EEPROM (.db, .dw)
; ====
.eseg
; ******************************
; НАЧАЛО ПРОГРАММЫ (.cseg) FLASH
; ******************************
.cseg
; ----------
; ВЕКТОРЫ ПРЕРЫВАНИЙ
; ----------
rjmp RESET ; Reset Handler
rjmp INT0add ; External Interrupt0 Handler
rjmp PCI0add
rjmp OVF0add
rjmp ERDYadd
rjmp ACIadd
rjmp OC0Aadd
rjmp OC0Badd
rjmp WDTadd
rjmp ADCCadd
;RESET: ; Reset Handler
INT0add: ; External Interrupt0 Handler
PCI0add:
OVF0add:
ERDYadd:
ACIadd:
OC0Aadd:
OC0Badd:
WDTadd:
ADCCadd:
reti ; Выход из прерываний, которые не используются
; ----------
; ОБРАБОТЧИКИ ПРЕРЫВАНИЙ
; ----------
; **************************************************************************************************
; ИНИЦИАЛИЗАЦИЯ МК (логическое начало основной программы) ******************************************
; **************************************************************************************************
; --------- конфигурация портов ----------
Reset: ldi temp, 0b00011101 ; Конфигурируем порт B
out DDRB, temp
ldi temp, 0b00011101 ; Выводим в порт В
out PORTB, temp
; ldi RAZR, 0b00001000
; ldi RAZ2, 1
; ldi RAZ3, 2
; ldi RAZ4, 3
; ---------- начальные значения переменных, массивы ----------
; 0 1 2 3 4 5 6 7 8 9 t E r o C -
; Cifri: .db 0xBF, 0xA1, 0xDB, 0xF3, 0xE5, 0x77, 0x7F, 0xA3, 0xFF, 0xF7;, 0x19, 0x18, 0x3B, 0x68, 0x1C, 0x7B, 0x7F
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
; ----- конфигурация прерываний, стека, аналогового компаратора, таймеров -----
ldi temp, 0xFF ; Сбросить флаги внешних прерываний
out GIFR, temp
ldi temp, RAMEND ; Загрузка указателя стека
out SPL, temp
; ldi temp, 1<<TOIE0 ; Разрешить прерывание при переполнении таймера
; out TIMSK0, temp
;
; ldi temp, 120 ; Закидываем в счетчик изначальное значение (приблизительно, чтобы получить 4 милисекунды)
; out TCNT0, temp
; ldi temp, (1<<CS02)|(0<<CS01)|(0<<CS00) ; Тактовый сигнал = CK/256 (Запустили таймер)
; out TCCR0B, temp
; ---------- разрешение прерываний ----------
; sei ; Разрешаем прерывания
; *******************************************************************************************************************
; ОСНОВНАЯ ПРОГРАММА (основной цикл) ********************************************************************************
; *******************************************************************************************************************
Start:
sbi DSPORT, DS
nop
nop
cbi DSPORT, DS
rjmp Start ; Конец программы, переход на началоБольше ничего нету, честно. ) Я все поубирал, чтобы именно проверить.
В Протеусе не проверял, ибо не дружу с ним, проверял раньше, но он начал почему-то очень медленно симуляцию делать.
А вот это показывает мой осциллограф (сохранял на флешку):
З.Ы. При этом, если поделить 4800 кГц на 8, то и получается 600 кГц, однако если поменять галочку на делителе на 8, то еще ниже частота падает...
4,8 МГц/8=600 кГц.
Серьезно. Несколько раз проверял, что если поменять галочку, то остается реально где-то 75 кГц.Станислав
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: AVR микроконтроллеры
Вот текст из даташит.
The signature area ofthe ATtiny13 contains two bytes of calibration data for the internal oscillator. The calibration data in the high byte of address 0x00 is for use with the oscillator set to 9.6
MHz operation. During reset, this byte is automatically written into the OSCCAL register to
ensure correct frequency of the oscillator.
There is a separate calibration byte for the internal oscillator in 4.8 MHz mode of operation but
this data is not loaded automatically. The hardware always loads the 9.6 MHz calibraiton data
during reset. To use separate calibration data for the oscillator in 4.8 MHz mode the OSCCAL
register must be updated by firmware. The calibration data for 4.8 MHz operation is located in
the high byte at address 0x01 of the signature area. Если я его правильно понял, то генератор 4,8 не калибруется на заводе, а Вам надо сделать это самому. Подберите значение OSCCAL чтобы на выходе была частота 800кГц. Если не ошибаюсь, значение OSCCAL можно менять после какого то действия в течение 4 тактов, защита от дурака глюков программы видать.
----------
Не правильно я понял. Контроллер сам всегда загружает калибровку для 9,6, но значение заводской калибровки для 4,8 в сигнатуре есть. Видимо надо это значение прочитать программатором и включить в прошивку.
Спойлер
17.3 Calibration BytesThe signature area ofthe ATtiny13 contains two bytes of calibration data for the internal oscillator. The calibration data in the high byte of address 0x00 is for use with the oscillator set to 9.6
MHz operation. During reset, this byte is automatically written into the OSCCAL register to
ensure correct frequency of the oscillator.
There is a separate calibration byte for the internal oscillator in 4.8 MHz mode of operation but
this data is not loaded automatically. The hardware always loads the 9.6 MHz calibraiton data
during reset. To use separate calibration data for the oscillator in 4.8 MHz mode the OSCCAL
register must be updated by firmware. The calibration data for 4.8 MHz operation is located in
the high byte at address 0x01 of the signature area.
----------
Не правильно я понял. Контроллер сам всегда загружает калибровку для 9,6, но значение заводской калибровки для 4,8 в сигнатуре есть. Видимо надо это значение прочитать программатором и включить в прошивку.
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: AVR микроконтроллеры
Упорно на любом значении тактового генератора RC (внутренний) более 1,024 МГц не поднимается частота... Чую, что где-то есть маленькая хитрость, но понять не могу.
Внешний кварц все же надежнее, но здесь мне его некуда поставить (планов на него не было).
Внешний кварц все же надежнее, но здесь мне его некуда поставить (планов на него не было).
Станислав
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: AVR микроконтроллеры
А Вы нашли заводскую калибровка OSCCAL для 4.8МГц ?
Кстати. При частоте 1,024 МГц, частота пина (согласно коду) должна 171кГц, а у Вас уже более 500.
Кстати. При частоте 1,024 МГц, частота пина (согласно коду) должна 171кГц, а у Вас уже более 500.
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: AVR микроконтроллеры
еЭкстирм Бернер показывает заводскую калибровку 0х73737371 вот такое число интересное показыват. Только я с ним ничего сделать не могу. Оне же прошить его не может. ДШ тоже смотрел, как в черную дыру.
От 9,6 МГц такта показывает всего 1,024 -1,028 МГц, плывет чуток...
От 9,6 МГц такта показывает всего 1,024 -1,028 МГц, плывет чуток...Станислав
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: AVR микроконтроллеры
Вы его можете "прошить" в коде программы изменяя регистр OSCCAL.
Код: Выделить всё
out OSCCAL, "нужное значение"- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: AVR микроконтроллеры
Да, я вот все думаю... Может ли регистр калибровки в 8 раз частоту изменять??? 

Станислав
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: AVR микроконтроллеры
Да где она изменена то в 8 раз? У вас на выходе 530кГц, что означает тактовую частоту 3,180 МГц
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: AVR микроконтроллеры
не понятно... Я же пишу, что Делитель на 8 во фъюзах отключен, следовательно должно выдавать чистую частоту тактовую, а он выдает заниженную в 8 раз...
Еще туплю по поводу задержек с нопами и переходами.
Еще туплю по поводу задержек с нопами и переходами.
Станислав
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: AVR микроконтроллеры
Ваш цикл выполняется за 8 тактов, при этом частота на выходе 530кГц. Соответственно частота генератора 530*8=4240кГц. Очень даже близко к 4.8 учитавая что калибровочное значение загружено для 9,6.
З.Ы.
З.Ы.
Тут я ошибся в расчетах и еще кое где . Я почему то посчитал что у Вас цикл за 6 тактов выполняется (пора в первый класс обратно)Z_h_e писал(а):У вас на выходе 530кГц, что означает тактовую частоту 3,180 МГц
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: AVR микроконтроллеры
Ну а я как считаю? ТАкже. ))))
Старт и перевая команда - один такт.
Потом два нопа. - два такта.
Потом еще команда - еще такт.
Потом команда перехода на старт - два такта. ...
Также -6 тактов... Что не так?
З.Ы. при этом первый такт и команда перехода - 3 такта.
и вторая команда с двумя нопами - еще 3 такта. Т.е. все ровно. Но выполняется за три такта каждая. Т.е. на сколько снижает частоту?
Старт и перевая команда - один такт.
Потом два нопа. - два такта.
Потом еще команда - еще такт.
Потом команда перехода на старт - два такта. ...
Также -6 тактов... Что не так?
З.Ы. при этом первый такт и команда перехода - 3 такта.
и вторая команда с двумя нопами - еще 3 такта. Т.е. все ровно. Но выполняется за три такта каждая. Т.е. на сколько снижает частоту?
Станислав
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: AVR микроконтроллеры
Ну поглядите ж даташит уже.
команды sbi cbi rjmp каждая 2 такта =6 плюс два nop итого 8 тактов.
8 тактов это как раз ваш период выходной частоты. 4800000/8=600000Гц.
Итак 600кГц это расчтетная выходная частота. Настройте генератор (еще раз говорю про регистр OSCCAL) и вы выйдете на расчетную.
----------
Нет такой команды старт. Этого всего лишь метка.
команды sbi cbi rjmp каждая 2 такта =6 плюс два nop итого 8 тактов.
8 тактов это как раз ваш период выходной частоты. 4800000/8=600000Гц.
Итак 600кГц это расчтетная выходная частота. Настройте генератор (еще раз говорю про регистр OSCCAL) и вы выйдете на расчетную.
----------
Нет такой команды старт. Этого всего лишь метка.
