ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Ghost in shell
Держит паяльник хвостом
Сообщения: 931
Зарегистрирован: Пн июн 15, 2009 06:01:38
Откуда: USSR

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение Ghost in shell »

smd я не использую. Вот те, которые нормально работают. Дорожки к МК должны быть минимальной длинны.
Вложения
P7300004.JPG
(247.86 КБ) 366 скачиваний
Кот гуляет сам по себе, но вблизи холодильника.
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение edm2007 »

Да прекрасно работают и SMD, какая разница-то...
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
Ghost in shell
Держит паяльник хвостом
Сообщения: 931
Зарегистрирован: Пн июн 15, 2009 06:01:38
Откуда: USSR

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение Ghost in shell »

А я не говорил, что cmd не работает. Просто я по ряду причин их не использую.

Вопрос по С для 2313, правильно ли я понимаю:

Код: Выделить всё

DDRA = 0b00000000 // все линии порта А - выходы, а TRICA = 0b00000000 будет работать?
int main (void) // главная функция, а void main () будет работать?

как включить для некоторых линий порта подтягивающие резисторы?
Кот гуляет сам по себе, но вблизи холодильника.
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение Jack_A »

Просто - в PORTX записать 1 в этот бит. ( Х - имя порта А...D)

MOV R16,0
OUT DDRA,R16
MOV R16,3
OUT PORTA,R16 - у порта А, настроенного на вход, 2 младших бита с подтяжкой.
Аватара пользователя
Димон
Опытный кот
Сообщения: 871
Зарегистрирован: Вс апр 13, 2008 15:09:58
Откуда: Приднестровье

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение Димон »

Ув. коты, подскажите пожалуйста, как правильно выставить фюзы для данной схемки (лучше в картинке для пони или CVAVR)?
B меняется ли в этой схемке на прямую AT90S2313 на ATTiny2313 без изменений в программе?
Вложения
схема.pdf
(26.76 КБ) 257 скачиваний
Ковчег сделал обычный человек, а "Титаник" - учёные...
ShymaN
Родился
Сообщения: 2
Зарегистрирован: Вт июл 31, 2012 23:03:27

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение ShymaN »

Здравствуйте, у меня проблема с фьюзами attiny231320-pu, после удачной записи прошивки мк прочитал фьюзы и выставил sut0 и spien но после нажатия write сразу выбило окно с 24 ошибкой, в результате ponyprog не видит мк, програматор "5 проводков", повредил уже 2 тиньки
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение edm2007 »

Димон писал(а):как правильно выставить фюзы для данной схемки


Как правило, одной схемки недостаточно, фьюзы автор указывает. :) Можно конечно и просто на внешний кварц настроить, но вдруг там деление на 8 нужно, или еще что... А, это же AT90S2313...

ShymaN писал(а):прочитал фьюзы и выставил sut0 и spien


SPIEN Вы не смогли бы ни выставить, ни убрать. Его даже ради интереса потыкать нельзя, он неактивен и включен всегда.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
vas455
Говорящий с текстолитом
Сообщения: 1640
Зарегистрирован: Сб авг 13, 2011 12:56:34
Откуда: Рязань
Контактная информация:

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение vas455 »

дайте пожалуйста какртинку с фьюзами для работы от внешнего кварца 8 мегагерц
Нет таких вещей, которые нельзя было бы доказать, но есть люди, которым ничего нельзя доказать.
Аватара пользователя
Plant
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Пт май 26, 2006 21:36:59
Откуда: Крым
Контактная информация:

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение Plant »

edm2007 писал(а):SPIEN Вы не смогли бы ни выставить, ни убрать. Его даже ради интереса потыкать нельзя, он неактивен и включен всегда.

По ходу у кого-то получается :shock:
ShymaN
Родился
Сообщения: 2
Зарегистрирован: Вт июл 31, 2012 23:03:27

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение ShymaN »

Plant писал(а):
edm2007 писал(а):SPIEN Вы не смогли бы ни выставить, ни убрать. Его даже ради интереса потыкать нельзя, он неактивен и включен всегда.

По ходу у кого-то получается :shock:

Я имел ввиду фьюзы которые должны быть запрограмированны, сути проблемы это не меняет
x8973
Встал на лапы
Сообщения: 99
Зарегистрирован: Чт мар 08, 2012 18:05:49
Откуда: Пермь

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение x8973 »

Всем доброго времени суток!
Пытаюсь разобраться с ШИМ на контроллере ATTiny2313 - управлять RGB-светодиодом. До этого работал только с MSP430, да и то немного. Проблема - не могу правильно инициализировать ногу OCR0A как выход ШИМ-генератора. Делаю так:

Код: Выделить всё

TCCR0A = (1<<WGM01)|(1<<WGM00); //Режим FastPWM
TCCR0A = (1<<COM0A1); //Не инвертированный выход
TCCR0A = (1<<CS00); //Делитель 1
OCR0A = 0x00; //Начальная яркость нулевая

Светодиод на этой ноге молчит. Пробовал заливать уже готовый hex-файл другого проекта, который не подходит мне по ряду причин - все три канала цвета работают.
Помогите встать на путь истинный! Или ткните носом, где это уже обсуждалось, ибо поиск по форуму ничего не дал (может, искал плохо).
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение zero648 »

Код: Выделить всё

TCCR0A = (1<<WGM01)|(1<<WGM00); //Режим FastPWM
TCCR0A = TCCR0A | (1<<COM0A1); //Не инвертированный выход

TCCR0A = (1<<CS00); //Делитель 1   ;  А тут счетчик совсем стоит, прескалер в TCCR0B

OCR0A = 0x00; //Начальная яркость нулевая
x8973
Встал на лапы
Сообщения: 99
Зарегистрирован: Чт мар 08, 2012 18:05:49
Откуда: Пермь

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение x8973 »

zero648, то есть ошибка только во второй строке?
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение zero648 »

И в третьей, я ж докоментировал, внимательней гляди :))
x8973
Встал на лапы
Сообщения: 99
Зарегистрирован: Чт мар 08, 2012 18:05:49
Откуда: Пермь

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение x8973 »

Ну... Насчет третьей я подумал, что раз Вы ее не убрали вовсе, значит, она все-таки для чего-то нужна)
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение zero648 »

Прескалер в регистре TCCR0B, а не в TCCR0A, т.е. третья строка должна выглядеть так:

TCCR0B = (1<<CS00); //Делитель 1
x8973
Встал на лапы
Сообщения: 99
Зарегистрирован: Чт мар 08, 2012 18:05:49
Откуда: Пермь

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение x8973 »

Ничего не понимаю. При включении питания на мгновение мигает один из цветов, а потом тупо включается зеленый (OC1A).
Спойлер

Код: Выделить всё

//Подпрограмма инициализации ШИМ
void pwm_init(void)
{
   TCCR0A = (1<<WGM01)|(1<<WGM00); //Режим FastPWM
   TCCR1A = (1<<WGM12)|(1<<WGM10);
   TCCR1B = (1<<WGM12)|(1<<WGM10);

   TCCR0A = TCCR0A|(1<<COM0A1)|(1<<COM0A0); //Инвертированный выход
   TCCR1A = TCCR0B|(1<<COM1A1)|(1<<COM1A0);
   TCCR1B = TCCR1B|(1<<COM1B1)|(1<<COM1B0);
   
   TCCR0B = TCCR0B|(1<<CS00);   //Предделители
   TCCR1B = TCCR1B|(1<<CS10);

   OCR0A = 0x00; //Начальная яркость нулевая
   OCR1A = 0x00;
   OCR1B = 0x00;
}

//Основная подпрограмма
int main(void)
{
   unsigned char i;

   DDRB=PB2+PB3+PB4; //Инициализация порта B

        ...
}

Изменение состояния регистра OCR0A в коде ни к чему не приводит.
Может, я порт инициализирую неправильно? Инициализация ШИМ по книжке Евстифеева...
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение zero648 »

Всё было проинициализировано по аналогии, в этом и ошибка, смотрите по даташиту.
Попробуйте вот этот код:

Спойлер

Код: Выделить всё

//Подпрограмма инициализации ШИМ
void pwm_init(void)
{
   TCCR0A = (1<<WGM01)|(1<<WGM00); //Режим FastPWM
   TCCR1A = (1<<WGM10);//Режим FastPWM 8 bit
   TCCR1B = (1<<WGM12);//Режим FastPWM 8 bit

   TCCR0A = TCCR0A|(1<<COM0A1)|(1<<COM0A0); //Инвертированный выход
   TCCR1A = TCCR1A|(1<<COM1A1)|(1<<COM1A0);
   TCCR1A = TCCR1A|(1<<COM1B1)|(1<<COM1B0);
   
   TCCR0B = TCCR0B|(1<<CS00);   //Предделители
   TCCR1B = TCCR1B|(1<<CS10);

   OCR0A = 0x00; //Начальная яркость нулевая
   OCR1AL = 0x00;
   OCR1BL = 0x00;
}

//Основная подпрограмма
int main(void)
{
   unsigned char i;

   DDRB=PB2+PB3+PB4; //Инициализация порта B

        ...
}
x8973
Встал на лапы
Сообщения: 99
Зарегистрирован: Чт мар 08, 2012 18:05:49
Откуда: Пермь

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение x8973 »

Абсолютно тот же самый результат.
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение zero648 »

x8973 писал(а):Абсолютно тот же самый результат.

Странно :dont_know: , гонял код в протеусе, работает, все таймеры отрабатывают импульсы как надо.
Выложи прошивку, попробую с твоей прошивкой проверить
Ответить

Вернуться в «AVR»