Проблемы с микроконтроллерами AVR

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
Volgol_555
Потрогал лапой паяльник
Сообщения: 301
Зарегистрирован: Пт сен 23, 2011 13:13:51
Откуда: Минск
Контактная информация:

Проблемы с микроконтроллерами AVR

Сообщение Volgol_555 »

Я как любитель, но ещё не эксперт при программировании МК столкнулся с рядом проблем:
1) Когда на attiny13 пытаюсь сделать часы реального времени в CodevisionAVR выставляю деление кварцевого генератора на 256: в итоге у меня появляется возможность на 8-битном таймере сделать частоту 1Гц. Появляется вот такие строчки:

/ Crystal Oscillator division factor: 256
#pragma optsize-
CLKPR=0x80;
CLKPR=0x08;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

И всякий раз, когда записываю прогу с этими строками микроконтроллеры Attiny13 перестают читаться вообще!!! Хотя прога поначалу работает. Пробовал восстанавливать на самодельном реаниматоре - он выдает, что все восстановил, но чтение при этом не могу произвести. Система просто его не видит. (в качестве программатора использовал 5 проводков от LPT соединненных резисторами по 150 Ом). Я специально проверил и загнал второй attiny13 - походу дело все в этом Crystal Oscillator Divider??? Вопрос: что стало с моим МК????

2) Писал программный ШИМ на Atmega8, после 5-й записи он перестал читаться, но при этом программа работала. При команде Reset начиналось мерцание светодиода (очень быстрое), но МК не читался. Затем я вырубил питание и снова включил - прога на МК уже не работала. Вопрос: фьюзы я не менял, заливал только прогу - что случилось с Atmega 8?
Для нее я использовал программатор в точности собранный по схеме:http://yl2gl.ucoz.net/news/programmirovanie_avr/2011-02-25-70.
только не стал ставить резистор на 10к идущий от Reset'a к питанию. Питание ставил от USB компа! И ещё...при включении COM порта, и выкл. питании на ногах VCC и GND почему-то появляется напряжение в 2V. Это как такое возможно?

3)При написании таймера на attiny13 обнаружил, что время прохождения первого "якобы часа", второго, третьего и последующих часов сильно отличается - 17, 5, 13 секунд и т.д. Вопрос: это нормально? Что кварц неточный это ясно, но неужели он ещё и с разной скоростью работает в течение всего времени?

4) На сайте вычитал, что обязательно нужно при программировании ноги Reset и Vc ссянуть резистором в 10к, Reset и GND кондером в 0,01-0,15мкФ. Вопрос: Зачем такое делать? Я все время программировал и без этого! Может это есть причина всех моих вопросов выше????
Последний раз редактировалось Volgol_555 Пт сен 23, 2011 15:08:36, всего редактировалось 1 раз.
Самое гениальное - всегда самое простое
Реклама
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Re: Проблемы с микроконтроллерами AVR

Сообщение GP1 »

Ёще одна жертва СV :)))
вопрос, шьете из CV?
какие фьюзы выставлены? вероятно при прошивке сбрасываются CKSEL биты и проц перестает отвечать.
Чем дальше, тем больше становлюсь занудой...
Изображение
Реклама
Аватара пользователя
avreal
Опытный кот
Сообщения: 842
Зарегистрирован: Чт дек 31, 2009 19:27:45
Откуда: Бровари, Україна
Контактная информация:

Re: Проблемы с микроконтроллерами AVR

Сообщение avreal »

Упс!

При кварце 32768 деление CLKPR на 256 даёт тактовую контроллера 128 Гц.

Там одна фигня у AVR-ок, как я понял.
CLKPR заносится начением по умолчанию (без деления либо деление на 8, по фьюзу CKDIV8) в момент снятия сброса. Т.е. при подче сброса контроллер по-прежнему молотит на той частоте, которую установила программа. При снятии сброса на короткое время устанавливается частота по фьюзам, а потом программа снова сваливает на низкую.

А при тактовой 128 герц частота SPI для программирования должна быть не выше 32 герц.

Большинство программаторов не выставляют аж такую низкую частоту (avreal может поставить до где-то 250 Гц, я до сих пор на такое не нарывался и просто лень было лимит поменять).

Так что пока «ой».
Доберусь до дому, поправлю avreal-у нижний предел и попробую какую-то тиньку помучать.
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Аватара пользователя
avreal
Опытный кот
Сообщения: 842
Зарегистрирован: Чт дек 31, 2009 19:27:45
Откуда: Бровари, Україна
Контактная информация:

Re: Проблемы с микроконтроллерами AVR

Сообщение avreal »

Хотя реаниматор должен же сбросить фьюзы на заводские.
Тогда тактовая контроллера при делении на 256 будет немного ниже 40 килогерц, при программировании надо частоту SPI дать немного ниже 10 килогерц.
Это уже почти все программаторы должны брать, нужно только выставить скорость на достаточно низкую и стереть контроллер с той программой.
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Volgol_555
Потрогал лапой паяльник
Сообщения: 301
Зарегистрирован: Пт сен 23, 2011 13:13:51
Откуда: Минск
Контактная информация:

Re: Проблемы с микроконтроллерами AVR

Сообщение Volgol_555 »

avreal писал(а):Хотя реаниматор должен же сбросить фьюзы на заводские.
Тогда тактовая контроллера при делении на 256 будет немного ниже 40 килогерц, при программировании надо частоту SPI дать немного ниже 10 килогерц.
Это уже почти все программаторы должны брать, нужно только выставить скорость на достаточно низкую и стереть контроллер с той программой.
Хорошая идея. Только тогда подскажите какой прогой мне шить МК. И как там настроить частоту ниже 10кГц. Я пользовался прогой CodevisionAVr и ponyprog200 (у них вроде нету настройки частоты). Пробовал avrealshell, но она во-первых у меня и к нормальным МК не коннектиться, а во вторых там ниже 10кГц не ставиться((
Самое гениальное - всегда самое простое
Реклама
Аватара пользователя
Volgol_555
Потрогал лапой паяльник
Сообщения: 301
Зарегистрирован: Пт сен 23, 2011 13:13:51
Откуда: Минск
Контактная информация:

Re: Проблемы с микроконтроллерами AVR

Сообщение Volgol_555 »

GP1 писал(а):Ёще одна жертва СV :)))
вопрос, шьете из CV?
какие фьюзы выставлены? вероятно при прошивке сбрасываются CKSEL биты и проц перестает отвечать.
Шью attiny13 через CV. Фьюзы все в 1 - как были так я их и не трогал вообще! Тем более что мой реаниматор восстанавливает фьюзы к заводским настройкам. Я его на рабочей tiny13 проверил (там все фьюзы ставил в 0) - он ее восстановил. И эти tiny пробовал, но он что-то не может их восстановить(

Ещё вопросик параллельно! В CV есть кроме erase BLANK CHECK. Она тоже вроде стирает (я ею пользовался при стирании, когда после erase запись была с ошибкой?!) Что же это все таки за функция?
Самое гениальное - всегда самое простое
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15589
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Проблемы с микроконтроллерами AVR

Сообщение BOB51 »

че-то весьма запутано... часы реального времени ? а на кой там часовой кварц - достаточно основного кварца из набора доступных (до20МГц), да и поточнее тогда будет
для tiny13 внешний кварц вроде и не применяется, там лучше tiny2313 или pic16f683/684
на асме - подскажу, с-не мое
пишу под avrstudio4 программирование ponyprog+stk200m никаких проблем не наблюдается :beer:
кстати, не мешало бы на схемку глянуть :)
Аватара пользователя
avreal
Опытный кот
Сообщения: 842
Зарегистрирован: Чт дек 31, 2009 19:27:45
Откуда: Бровари, Україна
Контактная информация:

Re: Проблемы с микроконтроллерами AVR

Сообщение avreal »

Ну не знаю, что там с avrealshell.
Реально с котроллерами работает avreal, shell только команду форимрует.
В чём была проблема издали не видно -- мог драйвер криво стать, могла быть какая-то не та версия avreal, могло что-то не так из shell передаться в сам avreal.
Я с avrealshell дела не имею и могу только гадать.

avreal работает, если всё настроено правильно :-)
Для него в ключе -o можно указать вниз до -o1khz (это частота тактирования контроллера).
Ну или просто -o1 , так как частота по умолчанию в килогерцах.

У PonyProg, может, где-то в ini-шках.

BLANK CHECK должен только читать и сравнивать с FF
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Аватара пользователя
Volgol_555
Потрогал лапой паяльник
Сообщения: 301
Зарегистрирован: Пт сен 23, 2011 13:13:51
Откуда: Минск
Контактная информация:

Re: Проблемы с микроконтроллерами AVR

Сообщение Volgol_555 »

BOB51 писал(а):че-то весьма запутано... часы реального времени ? а на кой там часовой кварц - достаточно основного кварца из набора доступных (до20МГц), да и поточнее тогда будет
для tiny13 внешний кварц вроде и не применяется, там лучше tiny2313 или pic16f683/684
на асме - подскажу, с-не мое
пишу под avrstudio4 программирование ponyprog+stk200m никаких проблем не наблюдается :beer:
кстати, не мешало бы на схемку глянуть :)
Да смысл прост! Мне нужны часики которые скажем включают реле в 19:00 и выключают в 24:00.
Для теста я делал это все со светодиодом, но чтобы мне убедиться в точности внутреннего кварца, пришлось писать прогу где через час диод выключался. Так вот исходя из того, как обычно пишутся часы: обычно это на 16-битном таймере выставляется частота 7,813кГц и делиться на 7813 - т.е. прерывание), я сделал то же на attiny13. Но там таймер только 8-битный, а следовательно нужно было снизить частоту системного генератора на 256, после чего для таймера появлялись в окне настроек более низкие частоты, что позволило выставить прерывание соответсвующее 1Гц, т.е. 1 тик=1сек. Вот и все. Только вот эта строка на счет снижения системного генератора на 256, присутствувю только у Attiny13 почему-то...
Самое гениальное - всегда самое простое
Аватара пользователя
Volgol_555
Потрогал лапой паяльник
Сообщения: 301
Зарегистрирован: Пт сен 23, 2011 13:13:51
Откуда: Минск
Контактная информация:

Re: Проблемы с микроконтроллерами AVR

Сообщение Volgol_555 »

Скачал я avreal, запустил. Какие команды мне нужно прописать чтобы задать частоту обращения к МК ниже 10кГц и восстановить его? Может поможет...Подскажи пожалуйста. А то с я консольными приложениями туговат.
Самое гениальное - всегда самое простое
Аватара пользователя
avreal
Опытный кот
Сообщения: 842
Зарегистрирован: Чт дек 31, 2009 19:27:45
Откуда: Бровари, Україна
Контактная информация:

Re: Проблемы с микроконтроллерами AVR

Сообщение avreal »

Лучше пониже, там и номинально меньше сорока килогерц, и разброс генераторов есть.
avreal-у можно указываеть частота тактирования контроллера, дальше он пересчитывает сам (впрочем, разница есть только для AT90s1200 и AT86RF401).
Думаю, 20 кГц будет нормально. Достаточно просто стереть.
avreal -as -p1 -o20 +tiny13 -e
-as для STK200-совместимого адаптера (5 проводков нескольких видов бывают)
-p1 для LPT1
-e чтобы стереть

______
Ладно, побёг я домой, сегодня младшему ребёнку 15 :-)
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Аватара пользователя
Volgol_555
Потрогал лапой паяльник
Сообщения: 301
Зарегистрирован: Пт сен 23, 2011 13:13:51
Откуда: Минск
Контактная информация:

Re: Проблемы с микроконтроллерами AVR

Сообщение Volgol_555 »

Спасибо большое! Сегодня же попробую - потом все расскажу!
Поздравляю с этим чудным праздником!
Самое гениальное - всегда самое простое
Аватара пользователя
Volgol_555
Потрогал лапой паяльник
Сообщения: 301
Зарегистрирован: Пт сен 23, 2011 13:13:51
Откуда: Минск
Контактная информация:

Re: Проблемы с микроконтроллерами AVR

Сообщение Volgol_555 »

Попробовал я выставить в avreal - та же фигня. Ниже 10кГц нельзя!!! А выше ставлю - не видит(
Самое гениальное - всегда самое простое
Аватара пользователя
avreal
Опытный кот
Сообщения: 842
Зарегистрирован: Чт дек 31, 2009 19:27:45
Откуда: Бровари, Україна
Контактная информация:

Re: Проблемы с микроконтроллерами AVR

Сообщение avreal »

Да ну, как это...
avreal-у допустимо давать -o1, т.е. 1кГц тактирование кристалла. В SPI пойдет герц так 220 (там ещё небольшой запас делается).

Странно, что не видит. Там точно на 256 деление поставлено?
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: Проблемы с микроконтроллерами AVR

Сообщение Мастер Ломастер »

вы вот мне только расскажите: куда в тини13 внешний кварц цепляется?! фантастика какая-то...
битва с дураками проиграна, победители торжествуют. слава победителям!
Аватара пользователя
avreal
Опытный кот
Сообщения: 842
Зарегистрирован: Чт дек 31, 2009 19:27:45
Откуда: Бровари, Україна
Контактная информация:

Re: Проблемы с микроконтроллерами AVR

Сообщение avreal »

ТЬХУ!!!

Пора таки вернуться к хотя бы 6-часовому сну :cry:

А из автора надо вытащить таки конкретные условия -- схему платы, программатора, что куда писал из фьюзов и вааще.

Но у меня подобная ситуация именно с тини13-той была.
Перешив CKSEL на «128 кГц» WDT-шный генератор без стирания заводского CKDIV8 получал 16 кГц тактирования ядра с соответствующей необходимостью потом сильно снижать частоту для следующей перешивки. И так много раз :-)
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15589
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Проблемы с микроконтроллерами AVR

Сообщение BOB51 »

Volgol_555, где-то я уже такую релюху корректировал...
http://radiokot.ru/forum/viewtopic.php?f=20&t=49256
там проект вроде как gensek назывался
мож чем поможет :beer:
Аватара пользователя
john_rise
Встал на лапы
Сообщения: 136
Зарегистрирован: Пн дек 17, 2007 13:15:43

Re: Проблемы с микроконтроллерами AVR

Сообщение john_rise »

Давненько уже нашел выход из ситуации "CLKPR". Садите Reset на Gnd и только потом подаёте питание на МК. Теперь можно спокойно шить.
Боишся - не делай. Делаешь - не бойся.
Аватара пользователя
Volgol_555
Потрогал лапой паяльник
Сообщения: 301
Зарегистрирован: Пт сен 23, 2011 13:13:51
Откуда: Минск
Контактная информация:

Re: Проблемы с микроконтроллерами AVR

Сообщение Volgol_555 »

Отвечаю на выше заданные мне вопросы. Внешнего кварца нету - есть только внутренний, который я и понизил в частоте!
Фьюзы я вообще не трогал - оставил заводские!!! Что касательно схемы соединения просто attiny13, питание и диод к нему
через резистор, а ещё кнопка одна. Что касательно программатора - тупые пять проводов, на LPT!

Avreal не позволяет задать частоту ниже 10КГц. При прописывании о1, он пишет, что можно задать в диапазоне
от 10кГц и выше либо 0, если это внешний кварц!!!

И если не сложно параллельно ответьте пожалуйста на ещё и другие вопросы, заданные выше!
Вот программа написанная на Codevision - основные настройки выставил в CodeWizard

/*****************************************************
Chip type : ATtiny13A
AVR Core Clock frequency: 0,031250 MHz
Memory model : Tiny
External RAM size : 0
Data Stack size : 16
*****************************************************/

#include <tiny13a.h>
#include <delay.h>

unsigned int msec, sec, min, hour;
unsigned int stat;

// Timer 0 output compare A interrupt service routine
interrupt [TIM0_COMPA] void timer0_compa_isr(void)
{
TCNT0=0;
if (stat==1) {sec++;}
if (sec==60) {sec=0; min++;}
}

void main(void)
{

// Crystal Oscillator division factor: 256 \\ здесь и понижается частота кварца!!! Именно после этих строк МК не читается
#pragma optsize-
CLKPR=0x80;
CLKPR=0x08;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

// Input/Output Ports initialization
// Port B initialization
// Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x08;
DDRB=0x10;

// Timer/Counter 0 initialization\\\ставлю таймер на 0,122 кГц и соответственно прерывание по достижению 122 тиков = 1 секунда/тик
// Clock source: System Clock
// Clock value: 0,122 kHz
// Mode: Normal top=FFh
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A=0x00;
TCCR0B=0x04;
TCNT0=0x00;
OCR0A=0x7A;
OCR0B=0x00;

// External Interrupt(s) initialization
// INT0: Off
// Interrupt on any change on pins PCINT0-5: Off
GIMSK=0x00;
MCUCR=0x00;

// Timer/Counter 0 Interrupt(s) initialization
TIMSK0=0x04;

// Analog Comparator initialization
// Analog Comparator: Off
ACSR=0x80;
ADCSRB=0x00;

// Global enable interrupts
#asm("sei")

PORTB.4=1; \ ниже тупой код программы, где мы включаем и выключаем согласно пройденному временни!!!
while (1) {
if (sec==60) {min++; sec=0;}
if (min==60) {hour++; min=0;}
if (hour==24) {hour=0;}
if (min==1) {PORTB.4=1;}
if (min==2) {PORTB.4=0;}
if (hour==1) {PORTB.4=1;}
if (hour==2) {PORTB.4=0; stat=0;}

if (PINB.3==0) {delay_us(250); stat=1; PORTB.4=0;
msec=0; sec=0; min=0; hour=0; }

}
}

Конец Кода


На счет
john_rise писал(а):Давненько уже нашел выход из ситуации "CLKPR". Садите Reset на Gnd и только потом подаёте питание на МК. Теперь можно спокойно шить.
Я попробую
Самое гениальное - всегда самое простое
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15589
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Проблемы с микроконтроллерами AVR

Сообщение BOB51 »

внутренний rc генератор 9,6Мгц по умолчанию (если не менять фузы)
см. файлик http://radiokot.ru/forum/download/file.php?id=68911 :beer:
как это можно сделать на Сиии ни в зуб... :cry:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»