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

Daget
Offline
Зарегистрирован: 31.05.2017

Здравствуйте.

Подскажите пожалуйста, как освободить единственный таймер от функций arduino, чтобы работать с ним напрямую?

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Daget, а что мешает работать напрямую?

Daget
Offline
Зарегистрирован: 31.05.2017

unsigned int T=10;
unsigned long loopTime;
#define OUT1_ON  PORTB |= (1<<PB3)
#define OUT1_OFF PORTB &= ~(1<<PB3)

void setup() {
DDRB |= (1<<3);                 // устанавливаем вывод PB3 как выход
loopTime = micros();
}

void loop(){
  if((micros() - loopTime) >= T){   // прерывание каждые "T" микросекунд
OUT1_ON;                        //включаем выход
 }
    loopTime = micros();
OUT1_OFF;                      //выключаем выход
}
Мне нужно получить увеличение переменной каждые 10 микросекунд.
получаеться какой-то тупняк.
Для теста написал вот такой код:
Если "T"  ставлю 220 и более то "OUT1_OFF".

Если "T" ставлю менее 220, то на выходе меандр с периодом 400 микросекунд.

В коде кроме того что я написал ничего нет. Кто так тупит???

Как мне получить нужные 10 микросекунд?

Daget
Offline
Зарегистрирован: 31.05.2017

dimax пишет:

Daget, а что мешает работать напрямую?

Я так понимаю что функции "micros" и "millis" навязанны на этом таймере, и ставят свои делители.

Когда пытаюсь настроить таймер, нет никаких изменений при изменении предделителя таймера.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Похоже правильне код такой

unsigned int T = 10;
unsigned long loopTime;
#define OUT1_ON  PORTB |= (1<<PB3)
#define OUT1_OFF PORTB &= ~(1<<PB3)

void setup() {
  DDRB |= (1 << 3);               // устанавливаем вывод PB3 как выход
  loopTime = micros();
}

void loop() {
  static bool stat = 0;
  if ((micros() - loopTime) >= T) { // прерывание каждые "T" микросекунд
    loopTime = micros();
    stat = !stat; if (stat)OUT1_ON; //включаем выход
    else   OUT1_OFF;                //выключаем выход
  }
}

ПС: А еще лучше вместо ОN  и OFF организовать с помощью побитового исключающего ИЛИ [^] 

Daget
Offline
Зарегистрирован: 31.05.2017

Залил Ваш код (без изменений).

Меандр 800 микросекунд.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016
const uint16_t T = 5;
uint32_t loopTime;

void setup() {
  DDRB |= (1 << 3);
  PORTB |= (1 << 3); // устанавливаем вывод PB3 как выход
  loopTime = micros();
}

void loop() {
  if ((micros() - loopTime) >= T) { // прерывание каждые "T" микросекунд
    loopTime = micros();
    PORTB ^= (1 << 3);
  }
}

ПС:  у micros() шаг изменеия 4мкс. так что программно не выйдет 10мкс. Только аппаратно. 

Daget
Offline
Зарегистрирован: 31.05.2017

Тоже самое. Меандр 800 микросекунд.

Daget
Offline
Зарегистрирован: 31.05.2017

Я так понимаю что arduino вешает какой-то свой код на 0 таймер, чтобы работали "micros" и "millis".

Как выпилить этот код, чтобы только я управлял таймером?

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

Daget пишет:

Я так понимаю что arduino вешает какой-то свой код на 0 таймер, чтобы работали "micros" и "millis".

Как выпилить этот код, чтобы только я управлял таймером?

Вам написали выше,

берите и управляйте таймером как хотите.

Не нужно вызывать функцию micros().

В сетап настраиваете таймер и запускаете, loop остается пустой.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Вот код, который, как ты выразился "вешает" Ардуино.

TCCR0B |= _BV(CS00);
TCCR0A |= _BV(WGM00)|_BV(WGM01);
TIMSK0 |= 2;
TCNT0=0; 

По строкам:

1. нет прескелера, частота таймера равна частоте процессора;

2. режим 3, фаст ШИМ, счет от 0 до 255;

3. разрешить прерывание переполнения

4. 0 - в счетчик таймера

--------------------------

В setup() ты можешь написать все, что тебе угодно, оно перекроет эту инициализацию.

Чтобы указать тебе "волшебные строчки"  вместо 1,2,3, нужно знать:

1. на какой частоте ты запускаешь камень?

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

-------------------------------------------

Вот пример для 9600КГц, миллис, микрос  - недоступны.

TCCR0B |= (1<<CS00) | (1<<WGM02);
TCCR0A |= (1<<WGM00) | (1<<WGM01) | (1<<COM0B1);
//TIMSK0 |= 2;
OCR0A = 96;
OCR0B = 48;

TCNT0=0; 

96 - тактов в 10 мкс, при частоте 9600КГц;

48 - половина от 96, чтобы получить меандр;

WGM01, WGM02 и WGM03 - режим 7, счет от 0 до числа в OCR0A (96);

-----

Меандр с периодом 10 мкс на ноге №6 == пин1.

 

Daget
Offline
Зарегистрирован: 31.05.2017

Нашел проблему.

Не работает команда ISR(TIMER0_OVF_vect)

Прерывание по переполнению включенно.

В итоге сделал на прерывании по сравнению.

Ещё вопрос. Если я настроил таймеры, прерывания, векторы...   А потом в коде поставлю "millis", что произойдет?

Команда "millis" просто не сработает или перепашет все мои настройки?

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Daget пишет:

Ещё вопрос. Если я настроил таймеры, прерывания, векторы...   А потом в коде поставлю "millis", что произойдет?

Команда "millis" просто не сработает или перепашет все мои настройки?

Убивать нужно за такие вопросы. Я уже об этом писал где-то.

Ничего не произойдет. Миллис вернет всякую ерунду. В нашем случае - просто ноль.

откройте ../hardware/attiny13/avr/cores или каким ядром для тиньки пользуетесь и смотрите, что там написано. Ей б..гу не трудно прочитать пару строк кода. Все о чем писал я и спрашивали вы написано в файле wiring.c.

Daget
Offline
Зарегистрирован: 31.05.2017

А почему может не срабатывать прерывание по переполнению?

"ISR(TIM0_OVF_vect)"

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Откройте же код, наконец!!!!!!!!!

#include "wiring_private.h"
#include <avr/interrupt.h>
volatile unsigned long ovrf=0;
ISR(TIM0_OVF_vect){
	ovrf++; //Increment counter every 256 clock cycles
}

Там В ПЕРВЫХ СТРОЧКАХ уже определен вектор прерывания.

1.В тиньке 13 он назывется TIM0. Так сложилось. 

2. компилятор ругнется на переопределение вектора, если назовете правильно.

3. Если вам для чего-то нужен таймер0, то закоментируйте в wiring.c этот обработчик. Можете написать свой и переписать микрос и миллис. Это примитивно.

 

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

Не надо ничего комментировать. После установки чипа в систему в папке с файлами пакета появляются насколько папок с разными ядрами, в которых уже всё что надо закоментировано. Достаточно в папку CORE скопировать содержимое CORENOMILLIS. 

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

В продолжение темы работы ядра "операционной системы" на микроконтроллере. Когда увожу микроконтроллер в режим сна "Idle", он просыпается каждые 8 мс, это работа системного таймера 0? Вероятно при переполнении выполняется прерывание, примерно соответствует

256 * 256 / 8000000МГц - 8 мс

Получается встроенная система пробуждения. В моем случае вполне удобно. Если будет надо чаще, есть еще таймеры. А реже не получится, да и не нужно, микроконтроллер просыпается, смотрит на время и спит дальше, потребление почти не возрастает.

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

sim31

Пожалуйста, выложите этот код здесь.

Эта ветка многим помогает.

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

bodriy2014 пишет:

Эта ветка многим помогает.

Да весь форум помогает, постоянно в поиске показывает множество полезных решений.

void  sleper(unsigned long timeout)
{
 //int timer0_millis;
 unsigned long time_sleeper;    
 unsigned long cc=0;    
 byte oldADC=ADCSRA;    //сохраняем настройки АЦП, не обязательно и результат не однозначный

//noInterrupts ();           // timed sequence follows
//interrupts ();             // guarantees next instruction executed
set_sleep_mode(SLEEP_MODE_IDLE); // выбор режима 
//set_sleep_mode(SLEEP_MODE_STANDBY); // выбор режима, просыпаться можно по WDT или внешнему сигналу
 
sleep_enable();
  
// ADC initialization
// ADC disabled
//ADCSRA=0;
//Serial.print(ADCSRA);
//Serial.flush();
ADCSRA=ADCSRA&B01111111; // очень странная работа, выключается не всегда, лучше отключить 1 раз при инициализации или не отключать если нужен АПЦ

//power_adc_disable(); // ADC converter помоему команда ничего не делает, снижение потребления не заметил
//power_spi_disable(); // SPI
//power_usart0_disable();// Serial (USART)
//power_timer0_disable();// Timer 0 если отключить таймер 0 не проснется уже, а так будет переполнение через 8 мс
power_timer1_disable();// Timer 1
power_timer2_disable();// Timer 2
power_twi_disable(); // TWI (I2C)    
// delay(1); не нужно
    
    //time_sleeper=millis()+timeout; // вариант для работы как с delay(timeout), но мне удобнее сразу указать время пробуждения
    
    byte tb_old=0; // старшая часть millis(), нужно чтобы отследить переполнение через 50 дней работы.    

    while(timeout >= millis())    
    { 
      sleep_mode(); // уходим в спячку на 8 мс, в спячке может произойти переполнение и вечный сон, нужно учесть это 
      cc++; // счетчик засыпаний, просто для удобства

      byte tb_new=millis() >> 24; // старший разряд времени, увеличивается каждые 4 часа, берем 1 байт старший для экономии памяти
      if (tb_new<tb_old) timeout=1000; // произошло переполнение таймера (50 дней работы!) отменяем паузу, однократное досрочное пробуждение (поставил 1000 мс, можно 0 поставить)
      tb_old==tb_new;
      
      // ...тут можно сделать опрос входов и прочий анализ почти в реальном времени (каждые 8 мс)
    }

// выходим из спящего режима    
//s=s+" tb="+String(tb_old,HEX)+"; ";    
power_adc_enable(); // ADC converter, тут не факт что корректно указал включение в комплекте с ADCSRA
//power_spi_enable(); // SPI
power_usart0_enable(); // Serial (USART)
//power_timer0_enable(); // Timer всегда включен и так
//power_timer1_enable(); // Timer 1
//power_timer2_enable(); // Timer 2
//power_twi_enable(); // TWI (I2C)

//Serial.print("c=");  // сколько было циклов сна
//Serial.println(cc);  
//Serial.flush();     

    
//ADCSRA=oldADC;    
ADCSRA=ADCSRA|B10000000; //enable
sleep_disable();
//    wdt_reset(); 
}
 

Все что связано с ADCSRA, POWER_xxx можно убрать, их влияние на потребление невелико.   ADCSRA=0 можно указать 1 раз в секции Setup, при частом переключении он ведет себя странно в плане потребления.

Есть еще вариант глубокого сна в режиме

set_sleep_mode(SLEEP_MODE_STANDBY);
 

Пробуждать можно по сигналу WDT для Atmega328, если WDT занят для защиты от зависания, или контроллер Atmega8, пробуждать можно про прерыванию на входе, которое формирует сам микроконтроллер через RC цепочку. Конденсатор 1 мкф, резистор 1 мегаом, дает время сна около 1 секунды. Потребление около 7 мкА. После пробуждения меняем на резисторе сигнал на обратный, с 1 на 0, засыпаем и снова микроконтролле некоторое время разряжается конденсатор и пробуждает его при переходе с 1 на 0, три строчки кода.

Здесь для примера PD1 вход на котором висит прерывание, PD2 выход.

 

#include <avr/sleep.h>
#include <avr/wdt.h>
#include <avr/power.h>

/*
5 режимов энергосбережения:
SLEEP_MODE_IDLE
SLEEP_MODE_ADC
SLEEP_MODE_PWR_SAVE
SLEEP_MODE_STANDBY
SLEEP_MODE_PWR_DOWN
*/
int cc=0;

void setup() {

  pinMode(LED_BUILTIN, OUTPUT);
 
 byte i;
  for(i=0; i<20 ; i++)
  {
    pinMode(i, OUTPUT); // для снижения потребления все ноги отключаем, дает несколько микроампер экономии
    digitalWrite(i, LOW);
  }
//pinMode(interruptPin, INPUT_PULLUP);
//attachInterrupt(digitalPinToInterrupt(interruptPin), blink, RISING);

Serial.begin(19200);   
Serial.println("start");  
Serial.flush(); // а то может не успеть передать, в спящем режиме передача останавливается


set_sleep_mode(SLEEP_MODE_PWR_DOWN); // выбор режима


pinMode(2, INPUT); // RC висит тут
digitalWrite(2, LOW);
attachInterrupt(digitalPinToInterrupt(2), blink, CHANGE );

wdt_enable(WDTO_8S); // на всякий случай, если генерация сорвется

//WDTO_15MS      // 15 мс
//WDTO_30MS      // 30 мс
//WDTO_60MS      // 60 мс
//WDTO_120MS    // 120 мс
//WDTO_250MS    // 250 мс
//WDTO_500MS    // 500 мс
//WDTO_1S            // 1 сек
//WDTO_2S            // 2 сек
//WDTO_4S           // 4 сек
//WDTO_8S          // 8 сек

wdt_reset(); 

pinMode(8, OUTPUT);
blink();

}

void loop() {
   
  //digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  //sleep_mode();                      

  //digitalWrite(LED_BUILTIN, LOW);   // turn the LED on (HIGH is the voltage level)

   //noInterrupts (); 
   //byte adcsra_save = ADCSRA;
   //ADCSRA = 0;  // запрещаем работу АЦП
   power_all_disable ();   // выключаем все модули

 //set_sleep_mode (SLEEP_MODE_PWR_DOWN);   // устанавливаем режим сна
 //sleep_enable();
 
 //interrupts ();
// sleep_cpu ();            // переходим в сон и ожидаем прерывание
  sleep_mode(); 
 
 //ADCSRA = adcsra_save;  // восстанавливаем как было
 power_all_enable ();   // включаем все модули
 
 // sleep_mode();

  wdt_reset();


  cc++; // счетчик циклов сна, привязка к реальному времени, так как таймер отключен, период сна можно предварительно измерить по длительности далее меняться не будет
  if (cc>=25) {
    Serial.print(";");
    Serial.print(analogRead(0));
    Serial.flush();  
    cc=0;
    }
  
}


void blink()
{

  
  boolean in_my=digitalRead(2);
  
  digitalWrite(8, !in_my);  // на выход отправили обратное тому, что на входе
  digitalWrite(LED_BUILTIN, !in_my); // просто индикация работы
  //delay(1);
  //Serial.print(in_my);       
  //Serial.flush();

}


ISR (WDT_vect)  // пробуждение можно сделать по WDT таймеру, если он свободен
{

}

Ну понятно что в плате Arduino спящие режимы бесполезны. Тестировать надо на макетной плате, проще всего при работе от внутренного RC генератора на 8 МГц и с делением частоты до 1 МГц фьюзом. И напряжением питания около 3В, при 5В потребляет очень много.

 

Зачем это всё нужно. При питании от батарейки типа CR2032 микроконтроллер просыпается периодически, делает измерения и по радиоканалу отправляет данные. Фото не мое, но похоже:

http://mtdata.ru/u25/photoEDC1/20457957665-0/original.jpg

Одна из проблем здесь АЦП, оно потребляет около 0.3 мА и его нужно отключать после завершения измерений. Все работает, но это усложняет код и АЦП иногда странно себя ведет, вроде и отключен, а потребление не снижается некоторое время. Или это осбенность микроконтроллера (типа конфигурируем АЦП 1 раз и не дергаем далее), или Arduino компилятор добавляет что-то от себя в код для управления АЦП.

Serg-24
Offline
Зарегистрирован: 24.08.2017
 У Вас красиво и интересно снеято видео - это здорово, но Вы забыли показать ваше оборудование.
 Вы контроллер ATTINY13A - програмируете, а чем, каким устройством и какими програмтроами, Китайскими? Разясните пожалуйста - внесите ясность для тех кто хочет но не знает какое должно быть оборудование. У Китайцев ведь есть платы в которую можно установить контроллер, что бы потом (его) прошить и не использовать макетную плату и без неё программировать? Для тех кто начинает - это (согласитесь) очень важно!
 Если без макетной платы не обойтись (понимаю, что просто нет такой платы у Китайцев что бы подошла под данный контроллер), то значит есть и в её покупке нужда, что бы собрать полностью программатор. Ниже я пишу что вам понятно - прошу вас: объясните (подскажите) мне что нужно и что нет... 
Я не разу не прошивал контроллеры, но мне нужно запрограммировать контроллер 
ATTINY13A-PU DIP-8 и есть желание и возможность этим заняться.
Смотрел ролики, объясняют так (конечно) хорошо, но не достаточно для того что бы все было разложено по полочкам от самого начала для полного понимания какое должно быть оборудование.
Проблема возникла при покупке оборудования которым можно запрограммировать этот (
ATTINY13A-PU DIP-8) 8 ножковый контроллер. Нашел два устройства на Китайском сайте:
2) Pluggable развитию ATtiny13A/ATtiny25 (так переведено Китайцами)
 Прошу помощи, сообщите чем Вы програмируете - какими устройствами или объясните что из этих (приведенных выше) устройств понадобится и что еще нужно купить или собрать для варианта №1 (ссылки что я дал). По ссылке №2 - так же прошу подсказать что это за устройство - может быть оно будет полезно или вообще нет.
 Китайцы молодцы что дают возможность у них купить, вот только стесняются писать как их устройства применять.
Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

Они не стесняются, они просто не знают :)

Одной группе китайцев дали топологию и перечень элементов: "Сделать 300 тыс. плат".
Другой группе китайцев предложили эти изготовленные платы: "Купи оптом партию плат за XXX юаней. Продашь в розницу дороже - вся прибыль твоя."

Serg-24
Offline
Зарегистрирован: 24.08.2017

 По моему вопросу может кто знает что либо?

 Как собрать или из каких деталей собрать программатор - на Алиэкспресс есть кучи вариантов, а вот что из сего купить стоит, что бы это стало программатором для прошивки ATTINY13A-PU ?

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Serg-24, программатор можно сделать на коленке за 15 минут "из говна и палок", погуглите "программатор 5 проводков" , программатором может быть любая плата ардуино на мк мега 328 или мега 32U4 ,  программатор можно купить , -на том же Али в огромном ассортименте от 200р и выше. Тот, что у вас на первой картинке подойдёт, но может подадобится джампер JP3, который нужно будет припаять. На второй картинке не программатор, а отладочная плата для тини25-85.  

Serg-24
Offline
Зарегистрирован: 24.08.2017

 Вот спасибо, кое что теперь понятно. Значит что бы не паять (ставить, перепаивать с места на место) перемычку JP3 или другую (мало ли что нужно будет программировать), то нужно приобрести другой программатор например (этот что-то нравится больше, по описанию что он вообще может и с какими виндами он работает): USB ISP USBasp USBisp Программист 51 ATMEL AVR поддержка Win 7 64  - в этой модиф икации (пологаю, так как корпус не является разборным) уже не нужно перекидывать джампера выбирая нужное значение и скорости прошивки, все уже предусмотрено и согласованно.

 

  Остается вопрос - как теперь подключиться к МС которую нужно программировать. Можно:

  Макетной платой - её нет и нет необходимости её покупать, значит нужна переходная плата, которая ставится к выводу этого программатора? Что здесь можете мне посоветовать для прошивки 8 ножкового контроллера ATTINY13A - для него в плате нужна панелька (в которую его вставлять для прошивки) на 8 ножек, если на этой плате будет и другая панелька (с большим количеством - для других мс) это думаю будет тоже хорошо. Так же, можно проводками (РИНы их вроде кличат) один конец с папой в выходящий шнур разема - а другой его конец (что уже с мамой) в нужную ножку. Способ с "перетыкиванием" пользуется спросом у многих (если нет макетной платы и лень купить и макетную плату и как мне нужно плату для вставки её в шлейф) кто прошивает разные контроллеры. ПОСОВЕТУЙТЕ - возможно я не прав в том что написал выше - подкорректируйте (поправьте меня) и напишите какую плату мне нужно купить для избежания обезьянничества с перетыкиванием проводков на контакты МС (контроллера) которые нужно программировать. 

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Serg-24, я вам все варианты (кроме дорогих) написал. Просто запаяйте этот джампер. Можно впаять намертво перемычку и всё -снимать её нет необходимости. Как подсоединить МК к программатору -сто тыщ вариантов. Если не нужно отлаживать, перепрошивая множество раз -то просто припаяться к МК проводками.  Что вы вобще хотите прошить? Тини13 -старое говно из эпохи динозавров. 

Да, и тот программатор в корпусе  на последнем скрине - не совместим с USBAsp, о чём красноречиво говорит надпись USB ISP

Serg-24
Offline
Зарегистрирован: 24.08.2017

 Этому контроллеру можно задать питание низкое 1,2 - 1,6 вольт, если поставить конденсатор на 22 мкФ или более. Так как устройство автономное - то пока только есть вариант на ATTINY13A-PU DIP-8 с питанием от пальчиковой батарейки (LR 6, AA size). Есть альтернативные варианты контроллеров с низким питанием на 1,2 вольта? Подскажите о них.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Serg-24, от 1,2 вольта??? Это в даташите написано? Не припомню что-то. И тини, мега -минимум у них 1,8 вольта. Всё,что ниже -никакой гарантии.

Serg-24
Offline
Зарегистрирован: 24.08.2017

 На одном форуме - выставили схемку на этом контроллере - питание подняли танталовым конденсатором на 22 мкФ до 1,8 вольта и схема заработала. Питание шагового двигателя (движок часов). Можно поставить и большего номинала емкость - будет выше напряжение, что обеспечит нужное питание МС. Не знаю других контроллеров (не встречал пока) которые могут работать от питания 1,2 - 1,5 вольта. Если что известно = сообщите пожалуйста.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Serg-24, ссылка есть? Конденсатор ведь сам по себе питание не поднимает -он хранит заряд.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

USB-Asp - лучше брать те, что без корпуса. В них реально последняя прошивка от оригинального.

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

Макетка "втыкалка", она же "барборда", совершенно необходимая вещь. Любую, только не огрызок, нормальной длины.

С ней будет много проще все. Даже провода -соединители не обязательно покупать - можно от витой пары нарезать и облудить.

Например в програматоре, на ваший фотках, разъем не такой, как нужно для ардуиновских плат или для макетки с панелькой. Поэтому проще всего коммутировать через барборду. Любую мелочь проверить на практике - барборда быстрее, чем пайка.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Serg-24 пишет:

 На одном форуме - выставили схемку на этом контроллере - питание подняли танталовым конденсатором на 22 мкФ до 1,8 вольта и схема заработала.

Главное, конденсатор - танталовый! Это вам не керамика сраная! ;) ;) ;), Военные модели поднимают до 220 Вольт 50Гц! Но их достать трудно ...со старых, еще советских, военных складов только. :(

Serg-24
Offline
Зарегистрирован: 24.08.2017

 Вот что хочу сделать: Пример - что нужно сделать. Кто Вам сказал что емкостями не поднять напряжение - не верьте этому человеку...

wdrakula - Вы пишите "Но лучше ардуинкой" - можете ссылку дать на этот программатор?

 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

1.Гы! После того, как на схема По Вашей ссылке написано +1.5В и -1.5В, дальше можно не читать. Только "изпоцтола" вылезти надо.

2. Какая,  к Б..гу, ссылка? ArduinoISP - скетч, в стандартных примерах Ардуино IDE. Про него и подключение  в начале той темы, в которой Вы пишите.

3. Если еще раз повторите херню, про поднятие напряжения конденсаторами - отправитесь нахер, учить физику по школьным учебникам.

Serg-24
Offline
Зарегистрирован: 24.08.2017

wdrakula пишет:

1.Гы! После того, как на схема По Вашей ссылке написано +1.5В и -1.5В, дальше можно не читать. Только "изпоцтола" вылезти надо.

2. Какая,  к Б..гу, ссылка? ArduinoISP - скетч, в стандартных примерах Ардуино IDE. Про него и подключение  в начале той темы, в которой Вы пишите.

3. Если еще раз повторите херню, про поднятие напряжения конденсаторами - отправитесь нахер, учить физику по школьным учебникам.

1) Автор в схеме указал куда подключать питание от батарейки, к каким контактам - об этом написано наже.

2) Спасибо, еще раз просмотрю тему.

3) В далекие 90-е я, как и многие другие радиолюбители собирали УНЧ, такие как Сухова (например, крутой УНЧ с кг = 0,006), собирали и БП (Блоки Питания) в которые ставили емкости приличных значений, от 2000 до 4000 микофорад. Таким образом и поднимали напряжение питания НУЧ. Вы находите странным, что из 40 вольт постоянного напряжения, можно емкостями вытянуть напряжение 45-50 вольт? Кто радиолюбитель - тот знает, обьяснять и тратить время на обучение не собираюсь - это знают все кто брал в руки паяльник и собирал схемы, в данном случае БП (Блоки Питания). 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Serg-24 пишет:

 Вы находите странным, что из 40 вольт постоянного напряжения, можно емкостями вытянуть напряжение 45-50 вольт?

Хотел нахер послать, но подумал, что таких жалеть нужно.

Просто интересно, ты родился дебилом, или таблетки какие-то пил? Может диета специальная?

Раз уж клоуном заделался - нарисуй схему, чтобы из 40В постоянки, только на конденсаторах, пусть еще резисторы будут ;), поднять напряжение до 45В. Тебя не вылечить, так хоть народ поржет.

 

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Serg-24 пишет:

что из 40 вольт постоянного напряжения, можно емкостями вытянуть напряжение 45-50 вольт?

Из 40 вольт пульсирующего. Не стадись уже, если вы что-то и знали, то всё позабыли уже. Постоянное напрядение невозможно увеличить не преобразовав его сперва в переменное или импульсное.

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

Не иначе как Клапа разрешил. Тантал это сила. 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

dimax пишет:

Serg-24 пишет:

что из 40 вольт постоянного напряжения, можно емкостями вытянуть напряжение 45-50 вольт?

Из 40 вольт пульсирующего. Не стадись уже, если вы что-то и знали, то всё позабыли уже. Постоянное напрядение невозможно увеличить не преобразовав его сперва в переменное или импульсное.

Дима! Конечно всем ясно, что изначально имелось ввиду. Но автор столь безапелляционен, что не поглумиться нельзя!

 

Serg-24
Offline
Зарегистрирован: 24.08.2017

М---да. Вы о чем вообще? Блоки питания в период 1985 по 1995 года на самодельные УНЧ собирались не как не импульсные - об импульсных БП многие мечтали но то ферита нормального в магазинах и на развалах не было, то др. деталей, по этому собирали БП взяв в основу троидального вида сердечники и сами мотали и первичную обмотку и вторичные тоже, сами, своими рученьками...

 Знаний ради - возьмите БП на обычном (железном) сердечнике (лучше троидальный трансформатор) а не на ферите (не как не импульсный) - подключите питание, повесте допустимую небольшую нагрузку = замерь-те питание (НАПРЯЖЕНИЕ) на выхое в месте где подключена нагрузка. Далее, подключите емкость к примеру на 1000 микрофорад = опять замерьте напряжение. Сравните что получается в итоге. И давайте по теме вести беседы, а то складывается мнение что кого-то нужно обучать прежде чем давать возможность чатится.

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

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

wdrakula, вы правы. Автор песец как безнадёжен :)

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

Афтар, ты примерно хоть знаешь чотакое действующее напряжение? 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Serg-24 пишет:

 идите в песочницу с детишками играйте - все просто и спокойнее от этого будет всем от охинеи которую Вы тут несете ведя себя как даун...

Родное серце! Ты папе своему советы давай, если с ним знаком, хорошо?

Ты сам то понял, что написал выше? Что ты измерял до и после подключения конденсатора? Слова "амплитудное", "среднее" и "действующее" слышал, недоумок?

Иди уже в школу, дебил. Или двор мести, а то уволят.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

Serg-24 пишет:

 Знаний ради - возьмите БП на обычном (железном) сердечнике (лучше троидальный трансформатор) а не на ферите (не как не импульсный) - подключите питание, повесте допустимую небольшую нагрузку = замерь-те питание (НАПРЯЖЕНИЕ) на выхое в месте где подключена нагрузка. Далее, подключите емкость к примеру на 1000 микрофорад = опять замерьте напряжение. Сравните что получается в итоге. 

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

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

Serg-24
Offline
Зарегистрирован: 24.08.2017

 Нашлась информация по заданному вопросу: Чем програмировать - Простейщий программатор Attiny13а

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

 Да и не будет лишним на сайте поставить такую тему - заодно можно и программаторы реализовывать, надеюсь, что даже и есть кому их прошивать если будет заказ от тех (кто как и я) сталкивается в первые с программированием а прошитые на заказ контроллеры (имею в виду под разные для прошивки ЧИПы и МС контроллеров). Желаю всем прекрасного дня!

Baks
Baks аватар
Offline
Зарегистрирован: 11.01.2016

заказал тинек13, программатор usbisp и отладочную плату https://cloud.mail.ru/public/8PUm/a6ysmairi

а вот что с отладочной платой делать не знаю)))

у кого она есть и кто как ее использует?  можно ли эту плату использовать как держатель для Attini13 для программирования, соответственно подключив программато к ней ?

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Baks, прогрмматор не то ли говно, что на картинке #1174 ? Отладочную плату для тини85  можно использовать как сокет для программирования тини13.

Baks
Baks аватар
Offline
Зарегистрирован: 11.01.2016

Вот этот попался мне на глаза))) его и заказал)))
1 шт. Новый samiore робот USBASP USBISP AVR программист USB ISP USB ASP ATMEGA8 ATMEGA128 Поддержка Win7 64 К
http://s.aliexpress.com/B7FnEreY
(from AliExpress Android)

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

этот нормальный должен быть.

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

==========================

Добавлю при редактировании:

А чем вас не устраивает Ардуина как программатор? Я понимаю, мне по профилю положено программатор иметь, хотя бы для ответов на глупые вопросы... ;). А по делу он вам зачем нужен?

Ардуиной тиньку проще всего прошивать на барборде, как описано в сотне мест в сети... зачем какие-то извращения?

Baks
Baks аватар
Offline
Зарегистрирован: 11.01.2016

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

да и 70 р не такая уж и большая сумма)))

wdrakula а вы сами что используете? программатор или ардуинку для прошивки?

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

я - чаще ардуину. Программатор нужен для студии.