Прошивка ATtiny2313

Тема в разделе "Микроконтроллеры AVR", создана пользователем swetitel, 6 мар 2015.

  1. swetitel

    swetitel Нуб

    Добрый день!
    Подскажите, можно ли прошить микроконтроллер ATtyny2313 программатором AVRISP STK500?
     
  2. NR55RU

    NR55RU Гик

    Да это возможно.
    Буквально сегодня я как раз проводил с этим первые эксперименты и все удалось.
    Подключил тиньку по такой схеме:
    [​IMG]
    Скомпилировал Hex файл в Avr Stiduo 6.1. На тот момент у меня не было желания еще возится с возможными настройками avr компилятора и я доверил это студии.

    Залил hex файл на тиньку с помощью avrdude
    Команда выглядела так:
    avrdude -p t2313 -c stk500 -U flash:w:BlinkTest.hex -P COM8

    Проверил на простейшей программе моргания светодиодом, которую взял с инета что бы опять таки не разбираться с портами.

    Код (Text):
    #define F_CPU 4000000L
    #include <avr/io.h>
    #include <util/delay.h>
    int main(void)
    {
        DDRB=0xFF;
        while(1)
        {
            PORTB=0b00000001;
            _delay_ms(1000);
            PORTB=0b00000000;
            _delay_ms(1000);
        }
    }
    В целом все заработало, хотя кое какие моменты для проработать еще остались.
    Например диод мигал не раз в секунду а раз в 4 секунды примирено.
    И порт вывода оказался не 11 а 12 из за чего изначально я решил что ничего не работает.

    На выходных я планирую еще поковыряться а после планирую написать небольшую подробную статью на эту тему. :)
    Так же вот вам ссылочка на русский мануал по 2313 если нужно. :)
     
  3. Airbus

    Airbus Радиохулиган Модератор

    У Вас PORTB=0b00000001; счёт начинается с ноля а не с 1 поэтому PB0 тоесть вывод 12 а 11 вывод это
    PORTD=0b01000000; мигало реже потому что есть деление на 8. Фьюз по умолчанию установлен его надо снять.
    На Асме
    ;##########################################
    ;## Мигание светодиода ##
    ;##########################################
    .include "tn2313def.inc"
    .def temp=r16 ; Временный регистр
    ;********************************************************************
    ; Инициализация контроллера
    ;********************************************************************
    .org 0 ; Вектор сброса
    rjmp reset ; процессора
    ;********************************************************************
    reset:
    ldi temp, low(RAMEND) ; Установка указателя стека
    out SPL, Temp
    ;********************************************************************
    ; Настройка портов
    ;********************************************************************
    ldi temp, 0b11111111 ; Все порты PD
    out DDRD, temp ; на выход
    ;********************************************************************
    ; Основная программа
    ;********************************************************************
    main:
    ldi r17, 21 ;грузим длительность задержки
    ldi r18, 75
    ldi r19, 187
    Start: sbi PORTD,6 ; включить Led
    rcall delay ; пауза 0,5 сек
    cbi PORTD,6 ; выключить Led
    rcall delay ; пауза 0,5 сек
    rjmp Strat ; заново
    ;********************************************************************
    ; Пауза 0,5 сек
    ;********************************************************************
    delay:
    subi r19,1
    sbci r18,0
    sbci r17,0
    brcc delay
    ret
    ;********************************************************************
    Прошить можно всем http://tinyurl.com/qxv7mdp
     
    Последнее редактирование: 7 мар 2015