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

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

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

Сообщение zero648 »

Вот кусок кода, здесь опрос кнопок находится в обработчике прерывания, переменная keyscanD передает состояние кнопок в основной цикл программы, а регистр keyledD передает состояние светодиодов из основного цикла программы. Все делается через маску, чтобы не нарушать конфигурацию остальных пинов порта.

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

 
            ...
            in      r16, DDRD
            andi    r16, 0b11000111    ; подключены кнопки на 3-5 пины, их и проверяем
            out     DDRD, r16
            in      r16, PORTD
            ori     r16, 0b00111000
            out     PORTD, r16
            in      r16, PIND
            std     keyscanD, r16          ; Сохраним скан-байт PORTD
            in      r16, DDRD
            or      r16, keyledD
            out     DDRD, r16
            in      r16, PORTD
            andi    r16, 0b11000111
            out     PORTD, r16
            ...
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

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

Сообщение zero648 »

Да, забыл сказать, на эти же пины 3-5 подключены светодиоды катодом к пинам, кнопки подключены к массе, минус такого подключения в том, что при нажатии кнопок будут зажигаться светодиоды, а может в каких то случаях и плюс, но можно этого избежать, если пожертвовать одним пином проца.
garthar
Родился
Сообщения: 7
Зарегистрирован: Сб июл 21, 2012 22:52:06

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

Сообщение garthar »

собрал "таймер с колесиком" http://radiokot.ru/circuit/digital/home/59/
Работает, но с частотой в 2а раза больше, чем в оригинале. программировал в CVAVR. Фьюзы поставил в 0 (т.е. галочки), те которые писал автор - "Включенные фьюзы: CKSEL0, CKSEL1, SUT1, CKDIV8. "
Кварц на 4МГц, емкости по 18 пик.

Что может быть? Первый раз атмел шью, как разобраться?
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Чудеса конечно случаются, но не в этом случае. Проверяйте фьюзы, номиналы деталей... Можете отключить кварц, чтобы убедиться в том, что МК действительно тактируется от кварца...

garthar писал(а):"Включенные фьюзы: CKSEL0, CKSEL1, SUT1, CKDIV8."


Только CKSEL3..0 - 1100 SUT1..0 - 01 - это керамический резонатор.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
garthar
Родился
Сообщения: 7
Зарегистрирован: Сб июл 21, 2012 22:52:06

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

Сообщение garthar »

edm2007 писал(а):Чудеса конечно случаются, но не в этом случае. Проверяйте фьюзы, номиналы деталей... Можете отключить кварц, чтобы убедиться в том, что МК действительно тактируется от кварца...

garthar писал(а):"Включенные фьюзы: CKSEL0, CKSEL1, SUT1, CKDIV8."


Только CKSEL3..0 - 1100 SUT1..0 - 01 - это керамический резонатор.


Спс, буду рыть. Мне тоже показалось, что в фьюзах минимум одна ошибка. Жаль, что комментарии к статье нельзя писать. С другой стороны, четыре кота написали, что схема "пошла сразу". :shock:
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

Сообщение Gudd-Head »

garthar писал(а):Жаль, что комментарии к статье нельзя писать.

Есть раздел форума "Статьи" viewforum.php?f=25 , в котором каждая тема посвящена отдельной статье.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
garthar
Родился
Сообщения: 7
Зарегистрирован: Сб июл 21, 2012 22:52:06

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

Сообщение garthar »

Попробовал отключить кварц. Работает по прежнему, в 2а раза быстрее. Получается , остались заводские фьюзы, 8МГц/8= 1 Мгц тактовой, по схеме должно быть 4МГц/8= 0.5 МГц. Получается программатор не прошил фьюзы. Кстати, программатор ВМ9010 мастеркитовский. После первой прошивки CVAVR не видит чип, бьет ошибку. Может , есть способ его "заставить"?
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Ну если МК работает и без кварца, то понятное дело на внутреннем генераторе молотит. Ошибка какая? У программатора есть возможность включить пониженную частоту SCK?
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
garthar
Родился
Сообщения: 7
Зарегистрирован: Сб июл 21, 2012 22:52:06

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

Сообщение garthar »

AVRprog error entering programming mode - вот такую ошибку. viewtopic.php?p=397902#p397902 здесь пишут что вроде можно снизить.
babtist
Родился
Сообщения: 1
Зарегистрирован: Пн июл 23, 2012 15:40:59

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

Сообщение babtist »

Сдраствуйте господа!
Помогите разобратся, не срабатывает прерывание по приходу байта от компа
Камень tiny2313 работает от внутреннего генератора

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

#include <avr/io.h>
#include <avr/iotn2313.h>
#include <avr/interrupt.h>//Библиотека прерываний


//Перечисляем прототипы функций
ISR (USART_RX_vect);
void USART_Init( unsigned int baudrate ); //Функция инициализации модуля USART
unsigned char USART_Receive( void ); //Функция приема данных по протоколу USART
void USART_Transmit( unsigned char data ); //Функция передачи данных по протоколу USART

//Подпрограмма обработки прерывания
ISR (USART_RX_vect)
{
 PORTB = 0b0000000;
 
unsigned char b;
b = UDR;
//b = USART_Receive();
// Выполняем обработку принятого байта
if (b==0xAA)//Если приняли "1"
 {
 USART_Transmit(b);//Отправляем букву
 //PORTB = 0b1111111;
 }
}
 
int main(void) //Главная функция
{

   cli();
   USART_Init( 51 ); //Скорость соединения 19200 бит/с для микроконтроллера ATtiny2313
    unsigned char komanda;
   DDRB = 0xff;
   PORTB = 0b1111111;
   sei();//разрешаем глобально прерывания
      for (;;) //Вечный цикл
      {
       komanda = USART_Receive();
      // USART_Transmit(komanda);
      
      if (komanda == 0xAF)
      {
       USART_Transmit(0xBB);
       USART_Transmit(0xFF);
       PORTB = 0b0000000;
      }
      if (komanda == 'q')
      {
       USART_Transmit(0xDD);
       PORTB = 0b1111111;
      }
      }
}
 
void USART_Init( unsigned int baudrate ) //Функция инициализации USART
{

   UBRRH = (unsigned char) (baudrate>>8);                 
   UBRRL = (unsigned char) baudrate;
   UCSRA = ( 1<<U2X); //Устанавливаем удвоение скорости
   UCSRB = (( 1<<RXEN)|(1<<TXEN)); //Разрешение на прием и на передачу через USART
   UCSRC = (1<<USBS)|(3<<UCSZ0);
}
unsigned char USART_Receive( void ) //Функция приема данных
{
   while (!(UCSRA & (1<<RXC))); //Ожидание приема символа
   return UDR; //Возврат содержимого буфера приема символа
}
 
void USART_Transmit( unsigned char data ) //Функция отправки данных
{
   while (!(UCSRA & (1<<UDRE)) ); //Ожидание опустошения буфера приема
 
   UDR = data; //Начало передачи данных                
}



в функции main в цикле for(;;) по приходу байтов все условия срабатывают, а функция прерывания ISR (USART_RX_vect) не срабатывает в чем дело не пойму неделю парюсь ответа не могу найти
Аватара пользователя
vas455
Говорящий с текстолитом
Сообщения: 1640
Зарегистрирован: Сб авг 13, 2011 12:56:34
Откуда: Рязань
Контактная информация:

не определяется attiny2313

Сообщение vas455 »

я прошил attiny2313 кхазамой, и выставил фюзы наоборот как на картинке(инверсно) и она теперь не отзывается, кварц есть, что делать, а фюза spmen.я в казаме не нашел

http://upwap.ru/2671725
Нет таких вещей, которые нельзя было бы доказать, но есть люди, которым ничего нельзя доказать.
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

Re: не определяется attiny2313

Сообщение edm2007 »

То что тактирование было выставлено инверсно - не страшно. CKSEL3..0 - 0010 это внутренний тактовый генератор на 4 МГц. А вот зашитый RSTDISBL не сулит ничего хорошего, вывод RESET теперь работает как еще один вывод порта. МК теперь недоступен для последовательного программирования по SPI, так как вывод RESET как раз для программирования и нужен.

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

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

Сообщение vas455 »

бит отвечающий за ногу resset я не трогал, также как и spein
Нет таких вещей, которые нельзя было бы доказать, но есть люди, которым ничего нельзя доказать.
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

SPIEN (а не spein, SPI ENable) Вы бы и не смогли изменить, он при последовательном программировании недоступен.

vas455 писал(а):выставил фюзы наоборот как на картинке(инверсно)


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

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

Сообщение vas455 »

ты правильно понял кварц 3-8 , но с ним не работает, попробывал выстпвить в алгоритм билдер (а там фьюзы ставятся также как и в кхазаме) он тоже показывает 3.00-8
Нет таких вещей, которые нельзя было бы доказать, но есть люди, которым ничего нельзя доказать.
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

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

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

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

У кого-нить есть рабочий исходник на С для ATTiny2313? С комментариями и строкой установки фузов.
Хочу проверить линии портов PD6 и PD0, передав на них состояние. Например, из PD4.
Работать собираюсь в AVR Studio 4.19.
Нашел описание ATTiny2313, на русском:
http://c2.at.ua/3m/F_arx/attiny2313_dok ... olnaja.pdf
Кот гуляет сам по себе, но вблизи холодильника.
Аватара пользователя
vas455
Говорящий с текстолитом
Сообщения: 1640
Зарегистрирован: Сб авг 13, 2011 12:56:34
Откуда: Рязань
Контактная информация:

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

Сообщение vas455 »

edm2007 писал(а):Номиналы кондеров на кварце какие?

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

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

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

vas455 писал(а):
edm2007 писал(а):Номиналы кондеров на кварце какие?

22pf
пробывал и без них

Какая марка кондеров? Некоторые в принципе не пригодны.
Кот гуляет сам по себе, но вблизи холодильника.
Аватара пользователя
vas455
Говорящий с текстолитом
Сообщения: 1640
Зарегистрирован: Сб авг 13, 2011 12:56:34
Откуда: Рязань
Контактная информация:

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

Сообщение vas455 »

какие то smd
Нет таких вещей, которые нельзя было бы доказать, но есть люди, которым ничего нельзя доказать.
Ответить

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