ATtiny13A 101 применение

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

По моим расчётам две параллельно cr2032 должны отработать минимум полгода, двое суток уже работает при минус 10, а дальше посмотрим

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Joiner пишет:

Просто интересно, батарейка сильный мороз выдерживает?

Сам мечтаю сделать внешний термометр без проводов, но вижу его немного иначе. Батарейка, МК и передатчик в помещении, а датчик на улице, соединенный коротким проводком.

я тут на другую проблему наткнулся - лежал у меня аналогичный собранный на коленке модуль, рабочий, но проверял только в тепле, вытащил на улицу - показывает отрицательную температуру сильно больше (т.е. теплее градуса на 3...4), разница в разных DS18B20 купленных у разных продавцов на AliExpress

сейчас буду перепаивать....

pittyalex
Offline
Зарегистрирован: 09.11.2016

Andy, а может это известная проблема с нагревом датчика из-за частого опроса?
По даташиту такого отклонения быть не должно. Брак?

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

pittyalex пишет:
Andy, а может это известная проблема с нагревом датчика из-за частого опроса? По даташиту такого отклонения быть не должно. Брак?

раз в 17 минут - это не частый опрос :)

скорее Китайские друзья некачественный продали.

ЗЫ. Кстати перепаял из другой поставки - оба модуля стали показывать одинаково и правильно.

pittyalex
Offline
Зарегистрирован: 09.11.2016

А из той партии где плохой был не пробовали другой взять? Просто интересно, это они брак скидывают или просто не повезло.

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Я сначала один ds взял в сборе как модуль вместе с другими деталями - вот он и оказался глюченным, а потом уже брал 5 шт россыпью, так что попробовать не получиться.

Сегодня утром честно показал минус 13, уже третьи сутки на улице.....посмотрим насколько хватит батарей....

Sok
Offline
Зарегистрирован: 05.01.2018

qwone пишет:

Sok пишет:
В общем всем спасибо! Тема закрыта.
Наглые новички попадаются.(сарказм) Не вы тему открыли, и не вам закрывать. Если хотите закрыть, то только ваш вопрос.

Ой простите я ляпнул! Конечно закрыт только мой вопрос!

sim31
sim31 аватар
Offline
Зарегистрирован: 26.07.2017

andycat пишет:

Я сначала один ds взял в сборе как модуль вместе с другими деталями - вот он и оказался глюченным, а потом уже брал 5 шт россыпью, так что попробовать не получиться.

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

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

sim31 пишет:

andycat пишет:

Я сначала один ds взял в сборе как модуль вместе с другими деталями - вот он и оказался глюченным, а потом уже брал 5 шт россыпью, так что попробовать не получиться.

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

от разных продавцов брал - однозначно из разных партий,

стабилизаторы стоят - напряжение отличное.

Vladimir72
Offline
Зарегистрирован: 04.02.2018

Доброе время суток! Подскажите может кто работал в arduino c millis() , что то криво считает на Attiny - 13A (1мГц)

время срабатывания таймера через 2 часа подается "1" заранее благодарю...

sim31
sim31 аватар
Offline
Зарегистрирован: 26.07.2017

Возможно загрузчик расчитан на другую частоту кварца, обычно 8 или 16 МГц. Проще всего иметь ввиду что показания внутренного таймера в 8 или 16 раз ниже реального времени.

Vladimir72
Offline
Зарегистрирован: 04.02.2018

Да придеться решить по другому, вспомнить программирование для AVR... давно это было.

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

У меня все проекты на attiny85 с millis, все считает корректно, загружал всегда через UNO и Arduino IDE командой записать загрузчик. Сейчас перешёл на USBASP, визуально тоже все хорошо, из любопытства сегодня сделаю таймер секунд на 40 - проверю секундомером.

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

sim31 пишет:

Возможно загрузчик расчитан на другую частоту кварца, обычно 8 или 16 МГц. Проще всего иметь ввиду что показания внутренного таймера в 8 или 16 раз ниже реального времени.

В attiny есть загрузчик?

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

попробовал millis - ровно 30 секунд отработало

#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif

// PB0 pin 5
#define PB0_OUT sbi(DDRB,PB0)
#define PB0_IN cbi(DDRB,PB0)
#define PB0_HIGH sbi(PORTB,PB0)
#define PB0_LOW cbi(PORTB,PB0)
// PB1 pin 6 - relay pump
#define PB1_OUT sbi(DDRB,PB1)
#define PB1_IN cbi(DDRB,PB1)
#define PB1_HIGH sbi(PORTB,PB1)
#define PB1_LOW cbi(PORTB,PB1)
// PB2 pin 7
#define PB2_OUT sbi(DDRB,PB2)
#define PB2_IN cbi(DDRB,PB2)
#define PB2_HIGH sbi(PORTB,PB2)
#define PB2_LOW cbi(PORTB,PB2)
// PB3 pin 2 - key 1
#define PB3_OUT sbi(DDRB,PB3)
#define PB3_IN cbi(DDRB,PB3)
#define PB3_HIGH sbi(PORTB,PB3)
#define PB3_LOW cbi(PORTB,PB3)
#define PB3_READ bitRead(PINB,PB3)
// PB4 pin 3 - key 2
#define PB4_OUT sbi(DDRB,PB4)
#define PB4_IN cbi(DDRB,PB4)
#define PB4_HIGH sbi(PORTB,PB4)
#define PB4_LOW cbi(PORTB,PB4)
#define PB4_READ bitRead(PINB,PB4)

void setup() {
  // put your setup code here, to run once:
  PB3_IN; PB3_HIGH; // key 1
  PB4_IN; PB4_HIGH; // key 2
  PB1_OUT; PB1_LOW; // relay OFF
  // load conf from eeprom
  // test
  PB1_HIGH; delay(2000); PB1_LOW;
  unsigned long delp = millis();
  while ((millis() - delp) <= 30000);
  PB1_HIGH;
  // end test
}

void loop() {
  // put your main code here, to run repeatedly:
}

 

Vladimir72
Offline
Зарегистрирован: 04.02.2018

30 секунд работает +-2, с каждой минутой +4  растет а через 2 часа натикает вагон с тележкой). нужно кварц внешний на 16 или 8 МГц ставить, ардуино тикает как часы секунда в секунду... в UNO стоит кварц на 16МГц...

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Vladimir72 пишет:

30 секунд работает +-2, с каждой минутой +4  растет а через 2 часа натикает вагон с тележкой). нужно кварц внешний на 16 или 8 МГц ставить, ардуино тикает как часы секунда в секунду... в UNO стоит кварц на 16МГц...

+- процент другой это понятно - даже в ДШ написано, для точности в любом случае кварц нужен,

наверное я не правильно понял вашу фразу

"время срабатывания таймера через 2 часа подается "1" заранее благодарю..."

думал что разница в 2 раза - это конечно не правильно

 

 

rfkr
Offline
Зарегистрирован: 05.03.2018

Привет всем я совсем недавно открил для себе мир ардуино. И конечно сразу решил попробовать собрать симулятор двигателя. Импульсы из шкифа коленвала (вот как выглядит шкиф 60-2 http://secu-3.org/ustanovka-dpkv/?lang=RU ) симулирую с тиньку и етого скетча:

int potPin = 3;
int izhodenPin = 4;
void setup ()
{
pinMode(potPin, INPUT);
pinMode (izhodenPin, OUTPUT);
}
void loop ()
{
int vreme=analogRead(potPin);
long vre=vreme*4+40;
for (int i = 0; i < 58; i++)
{
digitalWrite (izhodenPin, HIGH);
delayMicroseconds (vre);
digitalWrite (izhodenPin, LOW);
delayMicroseconds (vre);
}
delayMicroseconds (vre*4);
}

Все сразу заработало и крутя потенциометр я меню обороты но сколько они поднимаютса столько сильнее скакает оборотомер при 5000 об./мин. стрелка скакает 300 об. в верх и 300 об. вниз даже если потенциометр не трогать .Поставил конденсатор на вход тиньку от потенциометра но ничего не поменялось. Думаю проблема в моего "софта" подскажите пожалуйста как стабилизировать обороты ?

pittyalex
Offline
Зарегистрирован: 09.11.2016

rfkr пишет:

int potPin = 3;
int izhodenPin = 4;
void setup ()
{
pinMode(potPin, INPUT);
pinMode (izhodenPin, OUTPUT);
}
void loop ()
{
int vreme=analogRead(potPin);
long vre=vreme*4+40;
for (int i = 0; i < 58; i++)
{
digitalWrite (izhodenPin, HIGH);
delayMicroseconds (vre);
digitalWrite (izhodenPin, LOW);
delayMicroseconds (vre);
}
delayMicroseconds (vre*4);
}

Смотрите. При 6000 об/мин (для круглости, думаю не принципиально) время цикла for должно быть 10 мс.

Скорость работы операций digitalwrite примерно DigitalWrite() — 1800мкс (это для кварца 16 МГц, в нашем случае ещё больше должно быть... если кто-нибудь не оптимизировал под аттини13 библиотеки ардуино).

Таким образом, основное время у Вас уже не выдержки времени, а сами операции ввода/вывода (я так понял переменная vre минимум может быть 40 мкс). Т.к. они несколько стохастичны, поэтому у вас наблюдается плавание частоты.

Также к этому эффекту может приводить:

1. нестабильно напряжения питания при включении/выключении выходных ног, что приводит к нестабильным измерениям аналогового сигнала. 

2. Шум аналогового сигнала (чем меньше сопротивление, т.е. чем меньше входное число и выше частота - тем выше относительная величина шума (сравните: +-2 единицы при 600 единицах входного это всего 0.3%, а те же +-2 единицы при 6 единицах входного - это уже +-30%). Выход - фильтровать как "физически", так и в цифровой форме. Простейший способ - усреднение. Вводите переменную аккумулятор А. Допустим, постоянная времени фильтра будет 64 единицы. При каждом новом значении АЦП Ц вычиатете из аккумулятора А=А-А/64 и прибавляете считанное значение АЦП: А=А+Ц/64. С помощью школьной математики эту формулу можно значительно упростить. Но так проще для понимания. Варьируя величину постоянной времени фильтра можно делать фильтр "шустрым" или "тупым". Надо попробовать и сами поймёте.

В общем, переходите от диджиталврайт к нормальной работе с портами, как это сделать, уже в этой теме не раз писалось, либо можно подсмотреть тут https://geektimes.ru/post/255744/

там же и об ускорении диджитал реад.

Насчёт диджитал реад. Можно не ждать сиего замечательного момента, когда произойдёт окончание преобразования АЦП. Просто нужно запутстить АЦП в режим Freerun и как только есть необходимость в аналоговых данных - считывать их из регистра АЦП. Да. это будет предыдущее преобрвазоние, но какая нам в данном случае разница?

tytar
Offline
Зарегистрирован: 23.03.2016

Доброго времени суток!

Помогите разобраться с проблемой. 

тини13 + сенсорная кнопка + серво + транзисторный ключ

Тини в повердаун режиме, если коснуться сенсорной кнопки на 6 ногу (PB1) приходит сигнал 0, что бы тинька вышла из сна.

Дальше на это все дело повешано прерывание INT0, в функции которая его обрабатывает пытаюсь ключить транзисторный ключ (нога 3 PB4), потом после этого со значения 150 сервой повернуться до 200 и назад 150, выключить ключ, и заснуть 

Если с просыпанием и засыпанием все ок, то с сервой полный треш - серва живет своей жиснь. Никак не могу разобраться как шим и прерывание собрать вместе.

 

Скорее всего я не до конца понимаю как настраивать и работать с шим для сервы.

Серва Tower ProSG90

 
include <avr/io.h>         // инициализация портов ввода-вывода МК
#include <avr/sleep.h>      // здесь описаны режимы сна
#include <avr/interrupt.h>   // работа с прерываниями
#include <avr/delay.h>      // описание программных задержек
#define F_CPU 1200000UL

#define SERVO PB0


// Обработчик прерываний
ISR(INT0_vect)  // Прерывание по низкому уровню на PB1
{           

   
   while ((PINB & (1 << PB1)) == 0) {}
PORTB |= (1<<PB4);   // Выставить на PB4 - "1"
_delay_ms(50);
   do // Нарастание яркости
    {
      OCR0A = OCR0A + 20;
      _delay_ms(5);
    }
    while(OCR0A!=200);
//    _delay_ms(1000); // Пауза 1 сек.
    do // Затухание
    {
      OCR0A = OCR0A - 20;
      _delay_ms(5);
    }
    while(OCR0A!=100);
//    _delay_ms(1000); // Пауза 1 сек.
   _delay_ms(50);
   PORTB &= ~(1<<PB4); // Выставить на PB4 - "0"
}       


// Основная программа
int main()
{
//
//   PORTB &= ~ (1<<PB4);   // Выставить на PB4 - "0"
//   DDRB |= (1<<PB4);    // Указатель пина
////
   PORTB = 0b11101111;  // Выставить на PB4 - "0"
   DDRB = 0b00010000;  // Указатель пина

   DDRB |= (1 << SERVO);// выходы = 1
   PORTB &= ~(1 << SERVO); // по умолчанию отключены = 0
   
  // Таймер для ШИМ:
  TCCR0A = 0xB1; // режим ШИМ, неинверсный сигнал на выходе OC0A, инверсный - на выходе OC0B
  TCCR0B = 0x02; // предделитель тактовой частоты CLK/8
  TCNT0=100; // начальное значение счётчика
  OCR0A=100; // регистр совпадения A

   // Инициализация прерываний по INT0   
   GIMSK = 0b01000000; // Разрешение прерываний INT0 на входе PB1
   MCUCR = 0b00000000; // при перепаде низком уровне на PB1
   sei(); // Общее разрешение прерываний
      
   // Инициализация режима сна
   set_sleep_mode (SLEEP_MODE_PWR_DOWN);
   while(1)
   {
      sleep_enable();   // разрешение режима сна
      sleep_cpu();   // активация режима сна
   }
}

 

 

rfkr
Offline
Зарегистрирован: 05.03.2018

     pittyalex

   Спасибо за помощ. Подсказки помогли и если сделаю так :

int vreme=0;
int vre=0;
void setup ()
{
DDRB |= (0 << 3);     // устанавливаем вывод PB3 как вход
DDRB |= (1 << 4);     // устанавливаем вывод PB4 как выход
}
void loop ()
{
//vreme=analogRead(PB3); //не читаем значение
vre=80;
for (int i = 0; i < 58; i++)
{
PORTB |= (1 << 4);  // устанавливаем hi уровень на выводе PB4
delayMicroseconds (vre);
PORTB &= ~(1 << 4); // устанавливаем низкий уровень на выводе PB4
delayMicroseconds (vre);
}
delayMicroseconds (vre*4);
}

Работает и скакание оборотов при ~6900об. примерно 10вверх и 10 в низ ето вполне достаточно, но если уберем "//" перед vreme=analogRead(PB3); хотя его и не пользуем. Сразу скакание получается около 150об. вверх и 150об. вниз (наполовину из первого ардуинского скетча) Думаю проблема в "analogRead(PB3);" команду но незнаю как ей заменить, если ето вообще возможно.

pittyalex
Offline
Зарегистрирован: 09.11.2016

rfkr пишет:

     pittyalex

   Спасибо за помощ. Подсказки помогли и если сделаю так :

int vreme=0;


1. Нарисуйте вашу электронную. Схему.
2. Нарисуйте график, который вы хотите получить.
3. Пределы регулирования частоты?
4. Почему бы не использовать таймер?
5 какая частота самой тиньки13?

rfkr
Offline
Зарегистрирован: 05.03.2018

1./2. Вот схемка и то что должно выходить из тиньку.
3. Самая низкая частота будет 60hz. max 7khz.
4. Если под таймер имеете в виду чтото вроде 555 он не умеет представлять 59 и 60 зуб которые отсуствуют. Я делал такое устройство с лм555 и две цд4017 работает как положено но оно слишком большое и сложное.
5. Встроенны кварц на 9,6 Mhz.

Как писал и ранше если задаю статичная частота ~7кхз и не читаю вход из потенциометра на выходе тиньки все стабильно. Плавание на выход появляется если добавлю analogRead в скетч.
Спасибо за внимание :)

Zahar
Zahar аватар
Offline
Зарегистрирован: 16.11.2013

Не могу не спросить, что такое ЕБУ?

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Zahar пишет:
ЕБУ?

Не, не то. Правильно - ЭБУ (электронный блок управления)

rfkr
Offline
Зарегистрирован: 05.03.2018

  Хахах ну да время плохо отражается на памяти :) я не русский и жил в СССР 32 года назад.Жил там три года два в детсад и один в школе. Так что простите мои ошибки они невольные :)

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

rfkr пишет:

1./2. Вот схемка и то что должно выходить из тиньку.
3. Самая низкая частота будет 60hz. max 7khz.
4. Если под таймер имеете в виду чтото вроде 555 он не умеет представлять 59 и 60 зуб которые отсуствуют. Я делал такое устройство с лм555 и две цд4017 работает как положено но оно слишком большое и сложное.
5. Встроенны кварц на 9,6 Mhz.

Как писал и ранше если задаю статичная частота ~7кхз и не читаю вход из потенциометра на выходе тиньки все стабильно. Плавание на выход появляется если добавлю analogRead в скетч.
Спасибо за внимание :)

С АЦП на tiny не пробовал, а вот убрать 58 59 "зуб" я думаю сделать через таймер а не через ШИМ, буквально вчера типа программный таймер, постараюсь скинуть утром завтра.

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Вот здесь в передающей части счётчик на 60 поставить и пропускать нужные пики цикла

http://arduino.ru/forum/programmirovanie/attiny13a-101-primenenie?page=2...

Останется АЦП прикрутить

rfkr
Offline
Зарегистрирован: 05.03.2018

  Наверное я очень трудно учусь :) но уже три дня смотрю на та передающая часть и ничего немогу понять :)))

 Но сегодня поискал как заменить "analogRead" и после ~30 опытов и провалов наконец вот так заработало :)

int vreme=0;
int vre=0;
void setup ()
{
 ADMUX |= (1 << MUX0);
    ADMUX |= (1 << MUX1);
    ADMUX |= (0 << ADLAR);
    // Set the prescaler to clock/64 & enable ADC
    ADCSRA |= (1 << ADPS1) | (0 << ADPS0) | (1 << ADEN);
    DDRB |= (1 << 4);     // устанавливаем вывод PB4 как выход
}
void loop ()
{
 // Start the conversion
    ADCSRA |= (1 << ADSC);

    vreme=ADC;
vre=vreme*2+70;
for (int i = 0; i < 58; i++)
{
PORTB |= (1 << 4);  // устанавливаем hi уровень на выводе PB4
delayMicroseconds (vre);
PORTB &= ~(1 << 4); // устанавливаем низкий уровень на выводе PB4
delayMicroseconds (vre);
}
delayMicroseconds (vre*4);
}

Если комуто понадовается симулятор движка ваза опеля или уаза и другие инжекторные модели с шкива 60-2 вот етот пашет прилично :)

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

С 71 по 80 строки моего кода выкидываете и пишите то что вам нужно выполнить каждый такт таймера, функцию отправки uart выкидываете, при частоте МК 8мгц получается что обработчик прерывания срабатывает 9600 раз в секунду (если я правильно помню расчёт - давно это делал) соответственно скорость крутит как вам надо, но плавного регулирования в ваших пределах частоты мне кажется не получиться

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

В пн буду к обеду у компа брошу пример мигания светодиода на основе этого кода

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

rfkr пишет:

  Наверное я очень трудно учусь :) но уже три дня смотрю на та передающая часть и ничего немогу понять :)))

 

вот пример переделанного кода на ATtiny85, при частоте МК 1Мгц, светодиод переключается 10 раз в секунду.

#include <avr/io.h>
#include <util/delay.h>

#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif

// PB0 pin 5 - relay 1 - on/off AC 220 V - minimal light
#define PB0_OUT sbi(DDRB,PB0)
#define PB0_IN cbi(DDRB,PB0)
#define PB0_HIGH sbi(PORTB,PB0)
#define PB0_LOW cbi(PORTB,PB0)
// PB1 pin 6 - relay 2 - on/off DC 12 V - main light
#define PB1_OUT sbi(DDRB,PB1)
#define PB1_IN cbi(DDRB,PB1)
#define PB1_HIGH sbi(PORTB,PB1)
#define PB1_LOW cbi(PORTB,PB1)
// PB2 pin 7 - heart led
#define PB2_OUT sbi(DDRB,PB2)
#define PB2_IN cbi(DDRB,PB2)
#define PB2_HIGH sbi(PORTB,PB2)
#define PB2_LOW cbi(PORTB,PB2)
// PB3 pin 2 - PIR device
#define PB3_OUT sbi(DDRB,PB3)
#define PB3_IN cbi(DDRB,PB3)
#define PB3_HIGH sbi(PORTB,PB3)
#define PB3_LOW cbi(PORTB,PB3)
#define PB3_READ bitRead(PINB,PB3)
// PB4 pin 3 - not use
#define PB4_OUT sbi(DDRB,PB4)
#define PB4_IN cbi(DDRB,PB4)
#define PB4_HIGH sbi(PORTB,PB4)
#define PB4_LOW cbi(PORTB,PB4)

byte stled = 0;

void setup() {
  // put your setup code here, to run once:
  // init pins
  PB0_OUT; PB0_HIGH; // use high level for test led, in real need PB0_LOW for relay
  PB1_OUT; PB1_HIGH; // use high level for test led, in real need PB1_LOW for relay
  PB2_OUT; PB2_HIGH; // led off
  PB3_IN; PB3_HIGH; // use low level key for test, in real PIR device use HIGH level need PB3_LOW
  PB4_OUT; PB4_LOW;
  // hard pwm
  // Normal port operation, OC0A disconnected.
  cbi(TCCR0A, COM0A1); cbi(TCCR0A, COM0A0); cbi(TCCR0A, COM0B1); cbi(TCCR0A, COM0B0);
  // CTC mode
  sbi(TCCR0A, WGM01); cbi(TCCR0A, WGM01);
  // N=1024
  sbi(TCCR0B, CS02); cbi(TCCR0B, CS01); sbi(TCCR0B, CS00);
  // if need 9600 bod = count clock/N/9600-1  = 8000000/8/9600-1 = 103
  // if  need 10 bod = 1000000/1024/10-1 = 96
  OCR0A = 96; 
  // enable interrupt
  sbi(TIMSK, OCF0A);
  // -
}

void loop() {
  // put your main code here, to run repeatedly:
}

ISR(TIM0_COMPA_vect) {
  TCNT0 = 0;
  if (stled == 0) {
    PB2_LOW; stled = 1;
  } else {
    PB2_HIGH; stled = 0;
  }
}

 

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

строка 54 - основной делитель 1/8/64/256/1024

строка 57 - делитель от 0 (не уверен, надо ДШ перечитать) до 255 по формуле из строки 56

 

ggarry
Offline
Зарегистрирован: 21.01.2016

Подскажите, кто пользовал, функция  analogReference(INTERNAL); корректно работает на тиньке13? Какое опорное в таком случае имеем?

Сорри, нашел ответ в #336.

 

Дим
Offline
Зарегистрирован: 05.05.2017

Здравствуйте, подскажите можно attiny13 программировать через st-link или USB2.0 к TTL 6pin ch340g

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Дим пишет:

Здравствуйте, подскажите можно attiny13 программировать через st-link или USB2.0 к TTL 6pin ch340g

Теоретически наверное можно написать загрузчик, а зачем?

Дим
Offline
Зарегистрирован: 05.05.2017

Думал может будет проще чем через  arduino.

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Usbasp за 100 рублей купите - проще некуда

Дим
Offline
Зарегистрирован: 05.05.2017

Вот такой?

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Дим пишет:

Вот такой?


Да

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Цитата:

подскажите можно attiny13 программировать через st-link или USB2.0 к TTL 6pin ch340g

Нет, для прошивки нужен ISP программатор.

В догонку про USBasp - после покупки сразу запаяй на нём джампер JP3, т.к. новые микроконтроллеры с магазина без него прошиваться не будут. 

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Jeka_M пишет:

Цитата:

подскажите можно attiny13 программировать через st-link или USB2.0 к TTL 6pin ch340g

Нет, для прошивки нужен ISP программатор.

В догонку про USBasp - после покупки сразу запаяй на нём джампер JP3, т.к. новые микроконтроллеры с магазина без него прошиваться не будут. 

Мои новые работают без запаек jp3 - что я делаю не так?

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Ну Х/З... Обычно МК с тактовой 1МГц не считываются программатором, пока ему не понизишь чатсоту SCK. По крайней мере с Atmega8A так было.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Jeka_M пишет:

Ну Х/З... Обычно МК с тактовой 1МГц не считываются программатором, пока ему не понизишь чатсоту SCK. По крайней мере с Atmega8A так было.

Паттверждаю

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Atmega8 не пробовал, а attiny85 на 1мгц шьются прекрасно

Vladimir72
Offline
Зарегистрирован: 04.02.2018

Все зависит от версии программатора... покупал года 3 назад USbasp... работает как часы...8 мегу шьет без вопросов... тиньку 13A...

Vladimir72
Offline
Зарегистрирован: 04.02.2018

Новая версия USbasp китайские... там прошивки кривые многие жалуются...

Дим
Offline
Зарегистрирован: 05.05.2017

А можно как ко сделать отладку, типа COM порта?

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Vladimir72 пишет:

Новая версия USbasp китайские... там прошивки кривые многие жалуются...


Прошить нормальной никак не получается?
Жаловаться конечно попроще будет....

nik182
Offline
Зарегистрирован: 04.05.2015

Дим пишет:

А можно как ко сделать отладку, типа COM порта?

Тему почитать. Страниц 5 назад были функции выдачи как в ком порт.