Страница 105 из 132
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Пт июл 20, 2012 16:07:53
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
...
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Пт июл 20, 2012 16:16:02
zero648
Да, забыл сказать, на эти же пины 3-5 подключены светодиоды катодом к пинам, кнопки подключены к массе, минус такого подключения в том, что при нажатии кнопок будут зажигаться светодиоды, а может в каких то случаях и плюс, но можно этого избежать, если пожертвовать одним пином проца.
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Сб июл 21, 2012 23:14:41
garthar
собрал "таймер с колесиком"
http://radiokot.ru/circuit/digital/home/59/
Работает, но с частотой в 2а раза больше, чем в оригинале. программировал в CVAVR. Фьюзы поставил в 0 (т.е. галочки), те которые писал автор - "Включенные фьюзы: CKSEL0, CKSEL1, SUT1, CKDIV8. "
Кварц на 4МГц, емкости по 18 пик.
Что может быть? Первый раз атмел шью, как разобраться?
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Вс июл 22, 2012 13:41:49
edm2007
Чудеса конечно случаются, но не в этом случае. Проверяйте фьюзы, номиналы деталей... Можете отключить кварц, чтобы убедиться в том, что МК действительно тактируется от кварца...
garthar писал(а):"Включенные фьюзы: CKSEL0, CKSEL1, SUT1, CKDIV8."
Только CKSEL3..0 - 1100 SUT1..0 - 01 - это керамический резонатор.
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Вс июл 22, 2012 18:05:58
garthar
edm2007 писал(а):Чудеса конечно случаются, но не в этом случае. Проверяйте фьюзы, номиналы деталей... Можете отключить кварц, чтобы убедиться в том, что МК действительно тактируется от кварца...
garthar писал(а):"Включенные фьюзы: CKSEL0, CKSEL1, SUT1, CKDIV8."
Только CKSEL3..0 - 1100 SUT1..0 - 01 - это керамический резонатор.
Спс, буду рыть. Мне тоже показалось, что в фьюзах минимум одна ошибка. Жаль, что комментарии к статье нельзя писать. С другой стороны, четыре кота написали, что схема "пошла сразу".

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Вс июл 22, 2012 20:24:41
Gudd-Head
garthar писал(а):Жаль, что комментарии к статье нельзя писать.
Есть раздел форума "Статьи"
http://radiokot.ru/forum/viewforum.php?f=25 , в котором каждая тема посвящена отдельной статье.
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Вс июл 22, 2012 23:35:44
garthar
Попробовал отключить кварц. Работает по прежнему, в 2а раза быстрее. Получается , остались заводские фьюзы, 8МГц/8= 1 Мгц тактовой, по схеме должно быть 4МГц/8= 0.5 МГц. Получается программатор не прошил фьюзы. Кстати, программатор ВМ9010 мастеркитовский. После первой прошивки CVAVR не видит чип, бьет ошибку. Может , есть способ его "заставить"?
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Вс июл 22, 2012 23:41:03
edm2007
Ну если МК работает и без кварца, то понятное дело на внутреннем генераторе молотит. Ошибка какая? У программатора есть возможность включить пониженную частоту SCK?
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Пн июл 23, 2012 00:07:14
garthar
AVRprog error entering programming mode - вот такую ошибку.
http://radiokot.ru/forum/viewtopic.php?p=397902#p397902 здесь пишут что вроде можно снизить.
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Пн июл 23, 2012 15:57:01
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) не срабатывает в чем дело не пойму неделю парюсь ответа не могу найти
не определяется attiny2313
Добавлено: Вс июл 29, 2012 06:32:15
vas455
я прошил attiny2313 кхазамой, и выставил фюзы наоборот как на картинке(инверсно) и она теперь не отзывается, кварц есть, что делать, а фюза spmen.я в казаме не нашел
http://upwap.ru/2671725
Re: не определяется attiny2313
Добавлено: Вс июл 29, 2012 08:23:49
edm2007
То что тактирование было выставлено инверсно - не страшно. CKSEL3..0 - 0010 это внутренний тактовый генератор на 4 МГц. А вот зашитый RSTDISBL не сулит ничего хорошего, вывод RESET теперь работает как еще один вывод порта. МК теперь недоступен для последовательного программирования по SPI, так как вывод RESET как раз для программирования и нужен.
Решение: Либо использовать параллельный программатор, либо
«Atmega fusebit doctor».
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Вс июл 29, 2012 09:38:09
vas455
бит отвечающий за ногу resset я не трогал, также как и spein
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Вс июл 29, 2012 09:42:06
edm2007
SPIEN (а не spein, SPI ENable) Вы бы и не смогли изменить, он при последовательном программировании недоступен.
vas455 писал(а):выставил фюзы наоборот как на картинке(инверсно)
Из этой фразы я понял, что Вы полностью все фьюзы скопировали в Khazama. Видимо, неправильно понял. То бишь вы инвертировали значения фьюзов, и только потом выставили в Khazama? Тогда это внешний кварц 3.0 - 8.0 С ним все работать должно.
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Вс июл 29, 2012 10:26:28
vas455
ты правильно понял кварц 3-8 , но с ним не работает, попробывал выстпвить в алгоритм билдер (а там фьюзы ставятся также как и в кхазаме) он тоже показывает 3.00-8
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Вс июл 29, 2012 10:33:22
edm2007
Номиналы кондеров на кварце какие?
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Вс июл 29, 2012 17:30:28
Ghost in shell
У кого-нить есть рабочий исходник на С для ATTiny2313? С комментариями и строкой установки фузов.
Хочу проверить линии портов PD6 и PD0, передав на них состояние. Например, из PD4.
Работать собираюсь в AVR Studio 4.19.
Нашел описание ATTiny2313, на русском:
http://c2.at.ua/3m/F_arx/attiny2313_dok ... olnaja.pdf
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Вс июл 29, 2012 20:19:33
vas455
edm2007 писал(а):Номиналы кондеров на кварце какие?
22pf
пробывал и без них
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Вс июл 29, 2012 22:32:03
Ghost in shell
vas455 писал(а):edm2007 писал(а):Номиналы кондеров на кварце какие?
22pf
пробывал и без них
Какая марка кондеров? Некоторые в принципе не пригодны.
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Пн июл 30, 2012 07:36:47
vas455
какие то smd