реклама на сайте
подробности

 
 
> AVRdragon против CKDIV8 & DWEN :), Кто кого?
ReAl
сообщение May 4 2008, 10:43
Сообщение #1


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



На внутреннем 128кГц с CKDIV8 дракон не входит в обмен и не может блокировать DW

Подробности про две новости, плохую и хорошую


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SasaVitebsk
сообщение May 4 2008, 11:50
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Только что писал прогу. Микруха м48. В прошивке вывел частоту 10кГц на OC2 (совмещён с MOSI). После этого AVREAL и JTAG ICE MK2 в режиме ISP микруху не берут.
AVREALом проблему победить не смог, а вот JTAGом взял таким образом. Выставляешь частоту 100 Гц и выполняешь только операцию ERASE. После этого, естественно, всё работает.
Go to the top of the page
 
+Quote Post
ReAl
сообщение May 5 2008, 12:25
Сообщение #3


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(SasaVitebsk @ May 4 2008, 14:50) *
Только что писал прогу. Микруха м48. В прошивке вывел частоту 10кГц на OC2 (совмещён с MOSI). После этого AVREAL и JTAG ICE MK2 в режиме ISP микруху не берут. AVREALом проблему победить не смог

Мега48, внутренний RC 8MHz
Код
#include <avr/io.h>

#include "pin_macros.h"

#define SCK    B,5,H
#define MISO    B,4,H
#define MOSI    B,3,H


void main(void)
{
    PORTC = 0xFF;
    PORTB = 0xFF;
    DDRB = MASK(SCK) | MASK(MISO) | MASK(MOSI);
    PORTD = 0xFF;

    TCCR2A = (1 << COM2A1) | (1 << WGM20);
    TCCR2B = (1 << CS20);
    OCR2A = 0x7F;

    for(;;) {
        TOGGLE(SCK);
        TOGGLE(MISO);
    }
}
ШИМ, правда, 16кГц получается. Но и так, и без ШИМ - с внесением TOGGLE(MOSI) в цикл, и все ножки по одной, и в разных комбинациях - всё нормально перешивается на нормальной тактовой SPIЮ без занижения.
"Ну не знаю я".


Цитата(zhevak @ May 4 2008, 22:03) *
Первый раз, когда прошивал из CodeVision. Поднял фьюзы на внутренний RC-генератор на 128 кГц и сразу "потерял" кристал.
А там разве нет возможности изменить частоту SPI при программировании?

Цитата(zhevak @ May 4 2008, 22:03) *
Второй раз на грабли встал, когда установил предделитель частоты ядра на максимум (на 256) при частоте внутреннего RC-гернератора 4.8 МГц. При тактовой 4.8 МГц и предделителе на 8 все работало нормально. Стоило только увеличить коэфиициент предделителя, программатор потерял чип. Вылечил кристалл аналогично.
Аналогично - достаточно изменить частоту SPI.
4.8MHz / 256 ~ 19kHz
avreal32 с ключиком -o15khz и всё перешивается.
Надо снизить нижнюю границу допустимого значения ниже 1кГц, а то 32768/256 = 128Гц :-)

Гораздо интереснее - "а какого".
Даже из-за "безударного" переключения частот (в документации задержка переключения T1 + (1..2)*T2, где T1 - период до переключения) должно было бы успеть, период при 19кГц немогим больше 50мкс, по документации выдержка от сброса до подачи команды входа в программирование 20мс, в avreal все 100мс.
Значит сброс CLKPR производится после снятия сброса в те 14 тактов дополнительной задержки, которые есть даже при 0-вом SUT.
Вероятно, так же и у всех регистров, кроме связанных с IO-портами - не зря там постоянно повторяется, что у портов асинхронный сброс непосредственно по поступлению какого-либо сигнала reset.
Т.е. при подаче сброса только переводятся в hi-z все выводы, но CLKPR не сбрасывается, по снятию сброса отрабатывает SUT, потом в 14 тактов происходит сброс всех регистров, включая CLKPR.
Поэтому при программировании действует оставшееся от программы состояние предделителя.



Цитата(galjoen @ May 5 2008, 00:13) *
Из PowerDown АВР выходит больно долго и энергию при этом потребляет. Не считая режима IDLE конечно.
Если работа от кварца - то кто угодно будет выходить долго и печально, так как надо раскачаться кварцу в генераторе и дождаться стабилизации его амплитуды. А от внутреннего RC - по документации старт за 6 тактов и я не замечал отклонений. Мерять время старта я не мерял, но у меня в одном месте контроллер просыпается из POWER DOWN по WDT interrupt с интервалом 250мс приблизительно на сотню тактов - ток укладывается в оценку по скважности исходя из потребления в непрерывном режиме и в POWER DOWN.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
galjoen
сообщение May 5 2008, 13:02
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(ReAl @ May 5 2008, 16:25) *
Если работа от кварца - то кто угодно будет выходить долго и печально, так как надо раскачаться кварцу в генераторе и дождаться стабилизации его амплитуды. А от внутреннего RC - по документации старт за 6 тактов и я не замечал отклонений. Мерять время старта я не мерял, но у меня в одном месте контроллер просыпается из POWER DOWN по WDT interrupt с интервалом 250мс приблизительно на сотню тактов - ток укладывается в оценку по скважности исходя из потребления в непрерывном режиме и в POWER DOWN.

При выходе из sleep происходит то-же, что и при запуске процессора. Т.е. если у вас SUT1..0=00, то действительно будет за 6 тактов просыпаться. А в других случаях добавляется 4 или 64 мс. Кстати 6 тактов это уже после делителя CLKPR. Если делитель = 128, то 768 тактов процессор будет просыпаться. А лишний ток при старте конечно только при работе от кварца потребляется.
Go to the top of the page
 
+Quote Post
ReAl
сообщение May 5 2008, 13:56
Сообщение #5


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(zhevak @ May 5 2008, 15:59) *
250 мс -- это очень редко. Мне нужно эдак разов в 250 чаще щелкать. smile.gif
Да я видел, что нужно 1мс. WDT меньше 16мс не умеет.
Это я о другом - если бы AVR просыпался из power down так, как об этом говорит galjoen, то при периоде 250мс и задержке просыпания с полноценной жрачкой 64мс потребление очень отличалось бы от того, которое выходит по рассчёту 100 циклов работа, 250мс сон. А оно не отличалось.

Цитата(galjoen @ May 5 2008, 16:02) *
При выходе из sleep происходит то-же, что и при запуске процессора. Т.е. если у вас SUT1..0=00, то действительно будет за 6 тактов просыпаться. А в других случаях добавляется 4 или 64 мс.
Это Вы где-то в документации прочли или личный опыт?

У меня стоит SUT=10, т.е. 64мс, так как BOD выключен из-за того, что жрёт, зараза, а питание нарастает не слишком быстро (по осциллографу - где-то за 30-40мс). И при этом процессор потребляет полный ток отнюдь не 64мс из 250мс.

В документации (мега48-168, tiny13, mega128) написано
Для RC-генератора и внешнего тактирования:
Start-up Time from Powerdown and Power-save - 6CK
Additional Delay from Reset (VCC = 5.0V) - 14CK / 14CK + 4.1 ms / 14CK + 65 ms в зависимости от SUT
Т.е. из power down стартует за 6 циклов. После сброса - дополнительная задержка.
Для кварца и кермаического резонатора там другие задержки, нужные для разгона. Дополнительная задержка по SUT та же, она не зависит от источника тактирования.


Цитата(galjoen @ May 5 2008, 16:02) *
Кстати 6 тактов это уже после делителя CLKPR. Если делитель = 128, то 768 тактов процессор будет просыпаться.
Меня до сих пор не интересовал предделитель, но считаю, что это не страшно. Он будет просыпаться шесть тех времён, на которые мы уже согласились как на длительность одного машинного цикла, длительность выполнения простой команды. Потом ещё четыре 128-тактовых таких цикла идёт на вход в прерывание, два - на rjmp с вектора на первую команду обработчика, ...
В любом случае это не те "SUT-овые" 64 мс, о которых Вы говорите.

Хотя странно.
У тини13 вообще на блок-схеме делитель не нарисован отдельно.
У меги48 - после мультиплексора тактирования сигнал идёт отдельно на логику сброса, отдельно на предделитель, с которого на clock control unit.
У тини25 - после мультиплексора сначала на предделитель, с него на логику сброса и clock control unit.

Интересно, из этих шести циклов четыре - те же самые, что и при выходе из IDLE (которые тоже отдельные, ещё четыре на вход в прерывание потом само собой), или "аж ещё" дополнительные?
Надо проверить.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
galjoen
сообщение May 5 2008, 14:29
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(ReAl @ May 5 2008, 17:56) *
WDT меньше 16мс не умеет.

Проверял, WDT вообще вместо типовых 2.1 секунды при максимальном делителе - от 1.5 до 1.8 имел. Нельзя к нему привязываться если хоть какая-то точность нужна.
Цитата(ReAl @ May 5 2008, 17:56) *
Это я о другом - если бы AVR просыпался из power down так, как об этом говорит galjoen, то при периоде 250мс и задержке просыпания с полноценной жрачкой 64мс потребление очень отличалось бы от того, которое выходит по рассчёту 100 циклов работа, 250мс сон. А оно не отличалось.

Это Вы где-то в документации прочли или личный опыт?

Я эксперементировал с кварцем. У меня при SUT-овых 64mc потребление повышалось, но не так сильно, как в рабочем режиме. При работе от внутреннего генератора думаю, что потребление вообще не повысится.
Цитата(ReAl @ May 5 2008, 17:56) *
У меня стоит SUT=10, т.е. 64мс, так как BOD выключен из-за того, что жрёт, зараза, а питание нарастает не слишком быстро (по осциллографу - где-то за 30-40мс). И при этом процессор потребляет полный ток отнюдь не 64мс из 250мс.

Я об этом и не писал. Я имел ввиду, что при просыпании расходуется лишняя энергия (это уже из личного опыта). И если ЧАСТО просыпаться, то лучше вообще не засыпать, а использовать CLKPR. То, что время просыпания зависит от CLKPR это точно - проверял. И у меня получилось, что по потреблению энергии выгоднее использовать максимальный CLKPR, чем на 5 мс засыпать. Хотя это для кварца. Для внутреннего генератора времена видимо другие, но на 1 мс думаю засыпать и в этом случае не стоит.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ReAl   AVRdragon против CKDIV8 & DWEN :)   May 4 2008, 10:43
- - ILYAUL   Цитата(ReAl @ May 4 2008, 14:43) На внутр...   May 4 2008, 11:22
|- - ReAl   Цитата(ILYAUL @ May 4 2008, 14:22) Не отк...   May 4 2008, 17:46
|- - defunct   Цитата(SasaVitebsk @ May 4 2008, 14:50) Т...   May 4 2008, 14:05
||- - SasaVitebsk   Цитата(defunct @ May 4 2008, 18:05) Стран...   May 4 2008, 14:15
|- - zhevak   Цитата(ReAl @ May 5 2008, 18:25) А там ра...   May 5 2008, 12:59
||- - ReAl   Цитата(galjoen @ May 5 2008, 17:29) Я экс...   May 5 2008, 19:36
||- - galjoen   Цитата(ReAl @ May 5 2008, 23:36) А нельзя...   May 5 2008, 21:14
||- - ReAl   Цитата(galjoen @ May 6 2008, 00:14) При п...   May 5 2008, 21:32
||- - galjoen   Цитата(ReAl @ May 6 2008, 01:32) 1. С аси...   May 5 2008, 22:07
|- - defunct   Цитата(ReAl @ May 5 2008, 15:25) Значит с...   May 5 2008, 20:27
||- - ReAl   Цитата(defunct @ May 5 2008, 23:27) Дык, ...   May 5 2008, 21:10
||- - defunct   Цитата(ReAl @ May 6 2008, 00:10) Если эта...   May 6 2008, 00:09
|- - SasaVitebsk   Цитата(ReAl @ May 5 2008, 16:25) ШИМ, пра...   May 6 2008, 18:26
|- - ReAl   Цитата(SasaVitebsk @ May 6 2008, 21:26) Д...   May 7 2008, 07:55
|- - SasaVitebsk   Цитата(ReAl @ May 7 2008, 11:55) Я не виж...   May 7 2008, 21:15
|- - zhevak   как в старом анекдоте про золотую рыбку: -- Ящик в...   May 26 2008, 08:45
- - zhevak   Цитата(ReAl @ May 4 2008, 16:43) На внутр...   May 4 2008, 19:03
|- - ReAl   Цитата(zhevak @ May 4 2008, 22:03) Вчера ...   May 4 2008, 19:26
||- - zhevak   Цитата(ReAl @ May 5 2008, 01:26) Интересн...   May 4 2008, 19:46
||- - defunct   Цитата(zhevak @ May 4 2008, 22:46) (Моя ц...   May 4 2008, 20:56
||- - galjoen   Цитата(defunct @ May 5 2008, 00:56) Смысл...   May 4 2008, 21:13
||- - zhevak   Цитата(defunct @ May 5 2008, 02:56) Работ...   May 5 2008, 05:53
|- - ReAl   Цитата(galjoen @ May 6 2008, 01:07) 3. От...   May 6 2008, 17:21
|- - galjoen   Цитата(ReAl @ May 6 2008, 21:21) ... Вышл...   May 6 2008, 18:46
|- - zhevak   ЦитатаЯ сегодня погонял на 3.3В тини13... Спасибо...   May 6 2008, 18:57
- - zhevak   хочу добавить про MSP430. Может кому будут интерес...   May 26 2008, 14:27
- - smk   ЦитатаДа, чуть не забыл! У МСП внутренний DCO-...   May 28 2008, 17:47


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 13:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.22257 секунд с 7
ELECTRONIX ©2004-2016