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

 
 
> 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
SasaVitebsk
сообщение May 6 2008, 18:26
Сообщение #4


Гуру
******

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



Цитата(ReAl @ May 5 2008, 16:25) *
ШИМ, правда, 16кГц получается. Но и так, и без ШИМ - с внесением TOGGLE(MOSI) в цикл, и все ножки по одной, и в разных комбинациях - всё нормально перешивается на нормальной тактовой SPIЮ без занижения.
"Ну не знаю я".

Код
__task void    main( void )
{
  uint8_t    i;
  int8_t    j;

// Инициализация портов и переменных

//==== Таймер 2 =====
#ifdef __PORT88__
  TCCR2A=0x42;                                            // Таймер 2 инициализация FCLK/8 Режим СТС
  TCCR2B=0x2;                                            // с выводом на порт
  OCR2A=50;                                                // частота около 10 кГц
#else
  TCCR2=0x1a;                                            // Таймер 2 инициализация FCLK/8 Режим СТС
  OCR2=50;                                                // частота около 10 кГц
#endif


Давайте может прошивку вышлю готовую?
Go to the top of the page
 
+Quote Post
ReAl
сообщение May 7 2008, 07:55
Сообщение #5


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

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



Цитата(SasaVitebsk @ May 6 2008, 21:26) *
Давайте может прошивку вышлю готовую?
Я не вижу причин, по которым именно 10кГц должны мешать (в силу того, что avreal можно запускать с всякими разными частотами), поэтому и поленился что-то выписывать - написал OCR2A = 0x7F;, включил "точный" ШИМ и всё.
У меня есть макетка с кучей панелек, где на каждую разведен только разъём программирования и возле каждой персональные гнёзда для кварца. Т.е. не важно, что прошивка может молотить ещё какими-то ногами, конфликтов не будет.
Есть мега 48 и 168 (и мега8, и 90s4433 smile.gif ). Давайте Ваш hex и перечень fuses, скажите, в какой кристалл шить (если скомпилируете и под 48, и под 168 - будет тольео интереснее). Впереди выходные, чай есть, осциллограф есть - попробую.
Но что-то странное, не должно это влиять...



Цитата(galjoen @ May 6 2008, 21:46) *
Т.е. получается, что в случае использования внутреннего генератора эффективнее уходить в слип, чем использовать деление тактовой частоты. У меня, при использовании кварца, получилось наоборот. Видимо это объясняется тем, что пока кварц долго-долго раскачивается энергия-то потребляется, и, в период раскачки, потребление (генератором) даже БОЛЬШЕ, чем при нормальной работе кварца.
Ну да, я же об этом сразу и сказал
Цитата(ReAl @ May 5 2008, 15:25) *
Если работа от кварца - то кто угодно будет выходить долго и печально, так как надо раскачаться кварцу в генераторе и дождаться стабилизации его амплитуды. А от внутреннего RC - по документации старт за 6 тактов и я не замечал отклонений. Мерять время старта я не мерял,
...
Больше потребление во время раскачки или нет - это надо смотреть, но что при CLK/XXX все 100% времени работы используются, а при просыпании на полезное время, равное времени раскачки кварца - выходит что 50% времени генератор лупит зря, да и ядро при этом потребляет, хоть и на месте топчется.
Ну а время я таки замерял, в предыдущем сообщении грубо указал, а точнее так:
При 9,6МГц (замер дал время одного цикла около 105нс, т.е. 9,52МГц) время старта из IDLE - 1,36мкс от спада на входной ножке до перепада на выходной, т.е. 13 тактов. Из них (обратным ходом от выходной ножки к входному воздействию)
а) 2 - сама команда SBI, которая состояние ножки поменяла
б) 2 - rjmp из вектора на обработчик
в) 4 - обычный вход в прерывание
г) 4 - указанная в документации доп. задержка при просыпании.
Итого 12, а ещё один где-то на подсинхронизациях набрался.

А вот из POWER DOWN - 5,68мкс (54 такта). Если считать, что к 13 при IDLE должно добавиться 6 раскачки генератора, то это 19, выходит, 35 тактов генератор стартовал до того уровня, когда его сигнала стало достаточно для работы счётчика start-up?
Что-то много для RC-генератора. Пары тактов достаточно, да и то - период первых может быть не тот, но амплитуда-то сразу нормальная должна быть. Ну, как сделано, так сделано. В любом случае 35 тактов не многие тысячи, как для кварца.
О, интересно (продолжаю расшифровывать вчерашние заметки).
При CLK/8 выход из IDLE, как положено, удлиннился в 8 раз до ~10.8мкс, а выход из POWER DOWN - до 19,8мкс, около 3,5раз.
Так, если добавить к задержке IDLE "те 6 тактов", то разница между полученным и задержкой POWER DOWN в микросекундах меняется очень мало при изменении делителя от /1 до /64.
А если добавить ещё такт, то она равна приблизительно 3.5мкс независимо от делителя.
Т.е. при выходе из POWER DOWN сначала идёт фиксированная задержка около 3,5мкс (включение источников тока генератора?), потом отрабатывается 7 CK (с учётом CLKPR) и дальше идёт то, что идёт при просыпании из IDLE. Куда делся ещё такт - лень выяснять, вечно на какие-то подсинхронизации/конвейеризации они уходит, в уставновившемся режиме всё на месте, а при переходных режимах куда-то пропадают. Был бы это мой проект в ПЛИС - обязательно искал бы biggrin.gif

Цитата(galjoen @ May 6 2008, 21:46) *
Аналоговый компаратор по умолчанию включен. М.б. вы хотели сказать, что не выключали его?
Нет, именно не включал. Я его выключил на старте программы, а при просыпаниях не включал, так как всё равно не знаю, на какое время его включение нужно zhevak. На время POWER DOWN, насколько я помню, компаратор выключается автоматически, но я во всех тестовых программках (и с непрерывной работой с делителем, и с уходом в IDLE с побудкой по таймеру, ...) компаратор выключал сразу для равенства условий.

Кстати, из тех 110мкА где-то 8-10 ушло на "генератор побудки". Может даже немного больше.


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


Гуру
******

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



Цитата(ReAl @ May 7 2008, 11:55) *
Я не вижу причин, по которым именно 10кГц должны мешать (в силу того, что avreal можно запускать с всякими разными частотами), поэтому и поленился что-то выписывать - написал OCR2A = 0x7F;, включил "точный" ШИМ и всё.
У меня есть макетка с кучей панелек, где на каждую разведен только разъём программирования и возле каждой персональные гнёзда для кварца. Т.е. не важно, что прошивка может молотить ещё какими-то ногами, конфликтов не будет.
Есть мега 48 и 168 (и мега8, и 90s4433 smile.gif ). Давайте Ваш hex и перечень fuses, скажите, в какой кристалл шить (если скомпилируете и под 48, и под 168 - будет тольео интереснее). Впереди выходные, чай есть, осциллограф есть - попробую.
Но что-то странное, не должно это влиять...


К счастью у меня нет претензий к AVREALу. Одни благодарности. beer.gif beer.gif beer.gif
Я его и не мучил сильно. Я сразу в студию полез ч/з ICE2. И там - те же хомуты. HEX в личку.
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
|- - galjoen   Цитата(ReAl @ May 5 2008, 16:25) Если раб...   May 5 2008, 13:02
||- - ReAl   Цитата(zhevak @ May 5 2008, 15:59) 250 мс...   May 5 2008, 13:56
||- - galjoen   Цитата(ReAl @ May 5 2008, 17:56) WDT мень...   May 5 2008, 14:29
||- - 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
|- - 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 Текстовая версия Сейчас: 19th July 2025 - 02:48
Рейтинг@Mail.ru


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