Трёхфазный генератор на ATtiny13A

Необходимость тестирования одного из устройств сподвигла на создание простого трёхфазного генератора. Для этого был выбран распространённый микроконтроллер ATTINY13A. Схема данного устройства представлена на рисунке 1.

Рисунок 1. Трёхфазный генератор на ATtiny 13A

Программная часть написана в среде AtmelStudio, код представлен ниже.

/*
* Created: 28/08/18 
* Author : Aleksey Tarasov

* bitenegy.ru
*/

#include <avr/io.h>

//мк ATtiny13A

#define F_CPU 1168000L
#include <avr/io.h>
#include <util/delay.h>
#include <avr/sfr_defs.h>

int main(void)
{

PORTB = 0b00000000;
DDRB = 0b00010011;


float delta = 3.33;// константа задержки
while (1)
{

PORTB = 0b00010001;
_delay_ms(delta);//delay_ms(3.33)
PORTB = 0b00000001;
_delay_ms(delta);
PORTB = 0b00000011;
_delay_ms(delta);
PORTB = 0b00000010;
_delay_ms(delta);
PORTB = 0b00010010;
_delay_ms(delta);
PORTB = 0b00010000;
_delay_ms(delta);

}
}

Рисунок 2. Fuse bits (программатор Тритон)

Fuse биты (6AFF). Светодиоды служат индикацией переключения фаз, для видимого варианта можно кратно уменьшить частоту, установив другое значение константы задержки, например (333). В данном же варианте частота достаточно стабильная, около 50гц. Микроконтроллер прошивался с помощью программатора Тритон, рис.2. Подключён внутренний генератор контроллера. Выбран бесконечный цикл, как наиболее стабильный по частоте переключения.

Copyright © Aleksey Tarasov 2020