да и фиг с ним. analogwrite регулирует и норм. хотя мой друг перерыл бы все даташиты и либы и узнал как точно запускать, хоть и времени потратил бы много. упертый блин, никакой рациональности
Мне просто не понятно почему, если я тупо копирую код из CVAVR и запускаю его в среде ардуино, получаю совсем не ту частоту, а намного меньше, фьюзы не те?
Так мне надо, чтобы предделитель работал тк, он у меня воспринимает только одно состояние - 0x01, те без предделителя, и так не только на тини, на меге8 тоже самое. За это ведь и отвечает CKDIV8 - я правильно понимаю?
Посмотрел - такие фьюзы (-U lfuse:w:0x62:m-U hfuse:w:0xdf:m-U efuse:w:0xff:m) действительно у меня в боард есть для attiny45 1MHz, но я их получил тут http://www.engbedded.com/fusecalc/ для Int. RS Osc 8MHz; Start-up time PWRDWN/RESET:6 CK/14 CK +64ms; [CKSEL=0010 SUT=10]; default value
Запустил код, и попробовал менять предделитель, если 0x01, то PWM - 1.9kHz.
Я тут еще раз применил метод научного тыка, с фьюзами из #54 поста (которые у меня изначально были) и получил 32kHz вот так:
void setup() {
/*
TCCR0A = 2<<COM0A0 | 2<<COM0B0 | 3<<WGM00;
Control Register A for Timer/Counter-0 (Timer/Counter-0 is configured using two registers: A and B)
TCCR0A is 8 bits: [COM0A1:COM0A0:COM0B1:COM0B0:unused:unused:WGM01:WGM00]
2<<COM0A0: sets bits COM0A0 and COM0A1, which (in Fast PWM mode) clears OC0A on compare-match, and sets OC0A at BOTTOM
2<<COM0B0: sets bits COM0B0 and COM0B1, which (in Fast PWM mode) clears OC0B on compare-match, and sets OC0B at BOTTOM
3<<WGM00: sets bits WGM00 and WGM01, which (when combined with WGM02 from TCCR0B below) enables Fast PWM mode
TCCR0B = 0<<WGM02 | 1<<CS00;
Control Register B for Timer/Counter-0 (Timer/Counter-0 is configured using two registers: A and B)
TCCR0B is 8 bits: [FOC0A:FOC0B:unused:unused:WGM02:CS02:CS01:CS00]
0<<WGM02: bit WGM02 remains clear, which (when combined with WGM00 and WGM01 from TCCR0A above) enables Fast PWM mode
1<<CS00: sets bits CS01 (leaving CS01 and CS02 clear), which tells Timer/Counter-0 to not use a prescalar
*/
// attiny45 32 kHz PWM
DDRB = (1<<DDB0); // 5-ая нога как выход PWM
TCCR0A = (2<<COM0A0) | (2<<COM0B0) | (3<<tWGM00);
TCCR0B = (0<<WGM02) | (1<<CS00);
OCR0A=200; //0x00; Скважность
}
void loop() {
}
Надо только осцилом глянуть, точно там прямоугольник или нет... от дивана он далеко, только частоту и скважность вижу.
Вооот, ещё бы 64kHz получить и я был бы доволен пока.
Не получилось 32кГц сделать, посему пришлось использовать 15. Дроссель естественно пришлось воткнуть другой. Я его не считал, так на вскидку, поставил сейчас желто-зеленое кольцо:
Холостой ход скважность 50% затвор:
27 вольт на входе, зарядка 12 вольт, 2.5А, затвор:
Тоже, сток:
При 2.5-3А радиатор особо не нужен, можно флажок...
Тут при такой низкой частоте все размеры большие - посчитал ETD39 с зазорм (!5мм) для 10А например одних ёмкостей на выходе должно быть под ~16000мКф, 20 витков 3x1мм провод.
Гантельку попробую перемотать, ту которую ставил для этой частоты не подойдет, там витков малова-то.
Да я как могу так и копаю, кстати залил doper прошивку в avr910, прошил прямо из codevision, не трогая фьюзы - результат примерно тот же, так что нет пока идей по увеличению частоты тини.
ну тогда искать как перестоить частоту шима. можно даже наобум редактировать регистры отвечающие за шим, в смысле значения записывать, а можно и даташить полистать
VD4 как развязка. Вообще при использовании схемы как зарядки узел с защитой - перестраховка, и сильной нужды как показала практика - нет, но на вход и на акк - предохранители обязательно тогда. Можно и сапрессор вольт на 15 перед акк.
Сегодня попробовал с MCP6242, - ну что сказать, с LM358 при попытке выставить минимальный ток зарядки у меня начиналась какая-то необъяснимая ерунда, тут же пожалуйста от 1 до 1024 (макс пока не проверял) без проблем, ток конечно зависит от делителя, дросселя, но при значении тока 1 - 30ма у меня получилось.
Добрый день. интересует ваша схема, но немного в иных целях. Хочу собрать умное зарядное для свинцово-кислотных автомобильных АКБ с функцией тренеровки (сначала заряжаем, потом разряжаем). По схеме из 1 поста непонятно кто за зверь VD2 и параметры дросселя, а так же для чего они нужны.
В качестве второго варианта зарядного устройства рассматриваю регулировку через первичную обмотку трансформатора с использованием семистра. Есть ли в этом направлении какие-то наработки?
Кусок измерения тока можно заменить датчиком тока на основе ACS712. Бывают на 5А, 20А, 30А. по цене вроде как не шибко далеко от мощного резистора 0,1Ом.
И вопрос: Измерение напряжение через операционный усилитель имеет преимущества перед прямым подключением к ардуино через делитель напряжения? Если использовать ACS712, то тогда от операционного усилителя и обвязки можно б было отказаться
да не говори. привычка
да и фиг с ним. analogwrite регулирует и норм. хотя мой друг перерыл бы все даташиты и либы и узнал как точно запускать, хоть и времени потратил бы много. упертый блин, никакой рациональности
Мне просто не понятно почему, если я тупо копирую код из CVAVR и запускаю его в среде ардуино, получаю совсем не ту частоту, а намного меньше, фьюзы не те?
скорее всего. так через калькулятор прогнать чтобы точно узнать. какие фьюзы?
Ну так бутлоадер же и фьюзы шьёт.
Вот мой кусок boards для attiny45:
Как отсюда фьюзы с CVAVR сравнить я не знаю.
ты так говоришь как будто у каждого это есть в board.txt чтобы посмотреть)))
делитель на 8 отключен
бодлевел отключен
внутренный генератор на 8мгц
все))
Тихо, тихо, тихо, а тепрерь по-русски можно?
а что тут не по русски))
тинька работает на внутреннем генераторе 8мгц. без делителя значит частота работы 8мгц. нет защиты от снижения напряжения питания
И как это исправить?
что исправить?
Фьюзы из калькулятора переписать в boards, чтобы CKDIV8 был включен?
Например из калькулятора получил вот это:
В боард я их воткну, это будет работать?
работать будет. бутлоадер не факт. частота шима точно упадет
Так мне надо, чтобы предделитель работал тк, он у меня воспринимает только одно состояние - 0x01, те без предделителя, и так не только на тини, на меге8 тоже самое. За это ведь и отвечает CKDIV8 - я правильно понимаю?
так фьюзы правильно указал. должно все работать на 1мгц
Не, нифига, без пресклинга - 1.9kHz примерно.
Посмотрел - такие фьюзы (-U lfuse:w:0x62:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m) действительно у меня в боард есть для attiny45 1MHz, но я их получил тут http://www.engbedded.com/fusecalc/ для Int. RS Osc 8MHz; Start-up time PWRDWN/RESET:6 CK/14 CK +64ms; [CKSEL=0010 SUT=10]; default value
ну и? 8 мгц. делитель включен. запуск фиг с ним. получается 1 мгц. как определил что не 1 мгц?
Запустил код, и попробовал менять предделитель, если 0x01, то PWM - 1.9kHz.
Я тут еще раз применил метод научного тыка, с фьюзами из #54 поста (которые у меня изначально были) и получил 32kHz вот так:
Надо только осцилом глянуть, точно там прямоугольник или нет... от дивана он далеко, только частоту и скважность вижу.
Вооот, ещё бы 64kHz получить и я был бы доволен пока.
какой предделитель?
какой предделитель?
TCCR0B или прескалинг см #42
я уже сам запутался...
32kHz для attiny выдернул отсюда
TCCR0A = 2<<COM0A0 | 2<<COM0B0 | 3<<WGM00;
Control Register A for Timer/Counter-0 (Timer/Counter-0 is configured using two registers: A and B)
TCCR0A is 8 bits: [COM0A1:COM0A0:COM0B1:COM0B0:unused:unused:WGM01:WGM00]
2<<COM0A0: sets bits COM0A0 and COM0A1, which (in Fast PWM mode) clears OC0A on compare-match, and sets OC0A at BOTTOM
2<<COM0B0: sets bits COM0B0 and COM0B1, which (in Fast PWM mode) clears OC0B on compare-match, and sets OC0B at BOTTOM
3<<WGM00: sets bits WGM00 and WGM01, which (when combined with WGM02 from TCCR0B below) enables Fast PWM mode
TCCR0B = 0<<WGM02 | 1<<CS00;
Control Register B for Timer/Counter-0 (Timer/Counter-0 is configured using two registers: A and B)
TCCR0B is 8 bits: [FOC0A:FOC0B:unused:unused:WGM02:CS02:CS01:CS00]
0<<WGM02: bit WGM02 remains clear, which (when combined with WGM00 and WGM01 from TCCR0A above) enables Fast PWM mode
1<<CS00: sets bits CS01 (leaving CS01 and CS02 clear), which tells Timer/Counter-0 to not use a prescalar
Потихоньку почти собрал бесперебойник на базе сабжа:
везет же. а я плату развел, а изготовить времени нет)
Плата. Схему позже нарисую, хотя там вроде все понятно.
Кондесаторов излищек присутствует, разведено на всякий.
Не получилось 32кГц сделать, посему пришлось использовать 15. Дроссель естественно пришлось воткнуть другой. Я его не считал, так на вскидку, поставил сейчас желто-зеленое кольцо:
Холостой ход скважность 50% затвор:
27 вольт на входе, зарядка 12 вольт, 2.5А, затвор:
Тоже, сток:
При 2.5-3А радиатор особо не нужен, можно флажок...
фронты хорошие
,
Выброс мне не очень нравится, тут наверное либо ультрафаст попробовать поставить, или снаббер посчитать как-то так.
Хотя можно не обращать внимания.
Забыл сказать - сердечник из распыленки греется прилично, попробую подыскать еще что-нибудь, можно Ш с зазором например.
а гантельки не пробовал?
греется наверно изза низкой частоты, тут размер должен быть скорее всего побольше
Тут при такой низкой частоте все размеры большие - посчитал ETD39 с зазорм (!5мм) для 10А например одних ёмкостей на выходе должно быть под ~16000мКф, 20 витков 3x1мм провод.
Гантельку попробую перемотать, ту которую ставил для этой частоты не подойдет, там витков малова-то.
может лучше копать в сторону увеличения частоты шима чем железо переделывать
Да я как могу так и копаю, кстати залил doper прошивку в avr910, прошил прямо из codevision, не трогая фьюзы - результат примерно тот же, так что нет пока идей по увеличению частоты тини.
это результат упора работы на тиньке. может камень поменять? мега8 недорго стоит
Плата уже разведена, обидно, мега8 - не проблема, тут и десять 7219 пришли... Есть ещё парочка attiny2313.
Можно оставить этот вариант для токов не больше 2.5А.
Например для сухих 7Ач - Заряд до 13 вольт - 2-2.5А, дальше до 14.2 - 0.7А, потом качели 13.2-14.2 током до 0.01С.
ну тогда искать как перестоить частоту шима. можно даже наобум редактировать регистры отвечающие за шим, в смысле значения записывать, а можно и даташить полистать
Насколько сейчас понял тактовая частота распределяется между частотой шим и разрядностью скважности.
32kHz получилось:
Посмотрел меандр правильный.
Attiny85, boards:
с таким загрузчиком и кодом выше дают 64kHz.
ну а теперь как? не греется так сильно?
Получше стало.
Нагрузил спиралью, ток 2.5А, фронты:
Без радиаторов дальше нельзя.
Дроссель 16витков 2х0.64мм.
Пара узких мест - дорожка минусовая от шоттки до шунта нагревается, и диод 5408 слабоват тут (стоит в плюсе на нагрузку), переделывать буду.
3А макс. конечно диод слабоват
дорожки должна быть минимальной длины мосфет-диоды-дроссель-конденсатор. к сожалению в своей плате я такого сделать не смог. место ограничено
Схема на attinyXX, заряд + бесперебойник.
А тини13 никак в этот проект не вписать?
Сначала на ней делал, сейчас закончились просто.
На itmages довольно долго храниться, на всякий случай:
Кнопку сброс можно на мк повесить, если на IBAT = 0 -> раз в ..... её дёргать.
А зачем диод VD4? Ведь стабилитрон в обратном включении все равно зашунтирует Ibat.
VD4 как развязка. Вообще при использовании схемы как зарядки узел с защитой - перестраховка, и сильной нужды как показала практика - нет, но на вход и на акк - предохранители обязательно тогда. Можно и сапрессор вольт на 15 перед акк.
Сегодня попробовал с MCP6242, - ну что сказать, с LM358 при попытке выставить минимальный ток зарядки у меня начиналась какая-то необъяснимая ерунда, тут же пожалуйста от 1 до 1024 (макс пока не проверял) без проблем, ток конечно зависит от делителя, дросселя, но при значении тока 1 - 30ма у меня получилось.
Добрый день. интересует ваша схема, но немного в иных целях. Хочу собрать умное зарядное для свинцово-кислотных автомобильных АКБ с функцией тренеровки (сначала заряжаем, потом разряжаем). По схеме из 1 поста непонятно кто за зверь VD2 и параметры дросселя, а так же для чего они нужны.
В качестве второго варианта зарядного устройства рассматриваю регулировку через первичную обмотку трансформатора с использованием семистра. Есть ли в этом направлении какие-то наработки?
VD2 это сдвоенный диод шоттки. Что-то типа такого
Я бы не стал запитывать эту схему от напряжением сильно выше 20 вольт. VT5 умрет.
Кусок измерения тока можно заменить датчиком тока на основе ACS712. Бывают на 5А, 20А, 30А. по цене вроде как не шибко далеко от мощного резистора 0,1Ом.
И вопрос: Измерение напряжение через операционный усилитель имеет преимущества перед прямым подключением к ардуино через делитель напряжения? Если использовать ACS712, то тогда от операционного усилителя и обвязки можно б было отказаться
Мне кажется что преимуществ нет. Могу предположить что основная задача операционника мерить ток, а замер напряжение идет бонусом.
От этой схемы отказался, развитие ушло в сторону сетевого обратнохода, в итоге получился бесперебойник, кому интересно - тут.