|
|
|
16601 8 2 0 |
|
Опции темы | Поиск в этой теме |
27.08.2010, 06:12 | 1 |
Регистрация: 22.08.2010 Последняя активность: 20.11.2016 05:29 Адрес: Хабаровск
Сообщений: 279
Сказал(а) спасибо: 6
Поблагодарили: 94 раз(а) в 22 сообщениях
|
Переделка Ultrafire UF-H3
Занавес - в сторону ! Переделываем Ultrafire UF-H3. На правах автора данной статьи - переношу её с мелкими изменениями Элетроника. Ядро Buck-Boost преобразователя уже довольно избито и затёрто. Это LTC3454. Имеется возможность работать драйверу как на 20ма, так и на 700ма при управлении от процессора. И так. Всё собрано из двух блоков. Силовая часть: И блок микроконтроллера. Я изначально питал надежду собрать всё при помощи PWM-управления (PWM + интегратор на RC-цепочке). Но потом мои надежды развалились. Я понял что невозможно будет задать нужный стабильный уровень напряжения. к этому моменту процессор уже стоял на печатной плате (неправильной печатной плате) и перепаивать его было кране нежелательно. Решено было спасать процессор и выполнить монтаж тонкими проводами в лаковой изоляции с последующим нанесением лака. Большая просьба в этом месте промолчать искателей перфекционизма (сделаете себе платы такие, какие захотите, и всё сделаете правильно и с первого сраза). В итоге, пошарив в панике по ящикам - я обнаружил MCP41050. Это электронно управляемый (SPI) потенциометр на 50 Ком. Он выпускается только в SO-8 и это была катастрофа. Место было только одно - на обратной стороне платы процессора. Там я резаком расчертил лужайку под MCP41050 и выполнил её монтаж. После пробного запуска я обнаружил что не могу выставить ток ниже 60ма. А хотелось - очень. Хотелось примерно 20ма. И так на свет появился резистор R2 на схеме CPU. Именно дёргая его то на землю, то в 3-е состояние (порт PA3) я смог сгладить ограниченые рамки своей элементной базы. Что интересно - мне даже это понравилось. Можно применять и иные электронные потенциометры. Более простые и с меньшим числом шагов. В той схеме что у меня приведена - запись меньшего значения в потенциометр обеспечивает протекание меньшего тока через LED. Что приятно совпадает с человеческой логикой. Немного об индуктивности. Это MURATA типоразмера 2525. Выполнена в закрытом виде. На вид как ящик. Очень удобно обпиливать её при изготовлении "бутербродных" плат. Другого у меня небыло, а мотать самому не очень хотелось. Хотя, я сделал попытку. Но КПД был достигнут такой же, и посему - я решил не дурить и оставил MURATA. При том что у меня есть КПД составил: При птании 4,068V и токе через LED 0,113А - 90% На малых токах 20ма - я не промерял КПД. Вернее, он был примерно 84% на токе в 61ма. На 20 ма - ещё меньше из-за работающего процессорного блока (и не только). Но даже эти показатели я считаю очень приемлимыми и приятными. Большего - не желаю (хотя нет.. соврал..). Я изготовил под себя прошивку:
Ругайте меня - пилите, что хотите.. но могу дать только "гостевой" исходник. Код:
#include <avr/io.h> #include <avr/sleep.h> #include <avr/interrupt.h> unsigned char OnOffState; unsigned char ModeNumber; unsigned char ButRead; //--------------------------------------------------------------------------------------- ISR(IO_PINS_vect) { GIMSK = GIMSK & 0b11101111; //запрещены прерывания от OnPinChange } //--------------------------------------------------------------------------------------- void Delay1(void) //264ms at 1MHz and -O0 (compiller option) { unsigned int i; unsigned int j; for(i=0; i<8000; i++) j = j + i; } //--------------------------------------------------------------------------------------- void SPI_MCP41xx(unsigned char TxCommand, unsigned char TxData) { unsigned char i, tData; //SPI_OUT PORTB1 //SPI_SCK PORTB2 //SPI_CS PORTA0 PORTA = PORTA | 0b00000001; //SPI_CS = 1 PORTA = PORTA & 0b11111110; //SPI_CS = 0 PORTB = PORTB & 0b11111011; //SPI_SCK = 0 tData = TxCommand; for (i=0; i<8; i++) { if (tData & 0b10000000) PORTB = PORTB | 0b00000010; //SPI_OUT = 1 else PORTB = PORTB & 0b11111101; //SPI_OUT = 0 PORTB = PORTB | 0b00000100; //SPI_SCK = 1 PORTB = PORTB | 0b00000100; //SPI_SCK = 1 PORTB = PORTB & 0b11111011; //SPI_SCK = 0 tData = tData << 1; } tData = TxData; for (i=0; i<8; i++) { if (tData & 0b10000000) PORTB = PORTB | 0b00000010; //SPI_OUT = 1 else PORTB = PORTB & 0b11111101; //SPI_OUT = 0 PORTB = PORTB | 0b00000100; //SPI_SCK = 1 PORTB = PORTB | 0b00000100; //SPI_SCK = 1 PORTB = PORTB & 0b11111011; //SPI_SCK = 0 tData = tData << 1; } //инициализация линий SPI в исходное состояние PORTB = PORTB & 0b11111011; //SPI_SCK = 0 PORTA = PORTA | 0b00000001; //SPI_CS = 1 } //--------------------------------------------------------------------------------------- void main() { OnOffState = 0; ModeNumber = 1; MCUCR = MCUCR | 0b00110000; //Set PowerDown Mode and Sleep Enable bit MCUCR = MCUCR & 0b11110111; //SM0 = 0 ACSR = ACSR | 0b10000000; //Analog comparator disable ADCSR = ADCSR & 0b01111111; //ADC disable PORTA = 0xFF; //подтягиваем всё к питанию, чтобы ложно не срабатывало OnPinChange PORTB = 0xFF; PORTA = PORTA & 0b11011111; // PA5 - вход резистивного делителя, подтягивание тут излишне PORTB = PORTB & 0b01111111; // Reset line pull up disable DDRB = 0b00000111; //PB1 PB2 - как выход (SPI interface) PB0 - как выход EN1 для LTC3454 DDRA = DDRA | (1<<DDA0); //PA0 - как выход CS для MCP41xxx DDRA = DDRA | (1<<DDA7); //PA2 - как выход (резистивный делитель) //PORTA = PORTA | (1<<PORTA7); //выключить резистивный делитель PORTB = PORTB & 0b11111110; //выключить EN1 для LTC3454 PORTA = PORTA & 0b01111111; //вЫключить тестовый светодиод //инициализация линий SPI PORTA = PORTA | 0b00000001; //SPI_CS = 1 PORTB = PORTB & 0b11111011; //SPI_SCK = 0 SPI_MCP41xx(0b00010001, 200); SREG = SREG | 0b10000000; //разрешены прерывания поднят флаг I // первичные инициализации завершены while (1) //общий цикл событий { if (OnOffState == 0) //надо впасть в спячку { GIMSK = GIMSK | (1<<PCIE0); //разрешены OnPinChange на аналоговых пинах sleep_cpu(); } //надо впасть в спячку ButRead = PINB & 0b00001000; //интересует PINB3 //посмотрим на кнопку, не нажали ли её if (ButRead == 0) //что-то случилось с кнопкой { Delay1(); //ждём if (OnOffState == 0) //PowerUp procedure { PORTB = PORTB | 0b00000001; //включить EN1 для LTC3454 OnOffState = 1; } //PowerUp procedure else //PowerDown procedure { OnOffState = 0; PORTB = PORTB & 0b11111110; //выключить EN1 для LTC3454 } //PowerDown procedure } //что-то случилось с кнопкой } //общий цикл событий } Если не будет R2 - то минимальный ток драйвера будет в районе 60ма. Т.е. это меня не устроило и я сделал ещё и управляемый R2. Но в "гостевой" прошивке R2 - не управляется и не предусмотрен. Посему - я написал что и куда необходимо закоротить (чтобы гостевая прошивка "ожила" по моему замыслу). Вот фьюзы: Вот опции компиляции: Это позволит не собрать фонарь, а сделать хороший старт и понять что и как при отладке своего драйвера. Хотя - я сильно сомневаюсь что есть желающие повторять тоже самое на процессоре AtTiny26L в корпусе MLF. Я и сам уже не в числе таких желающих. Хотя... Обратная сторона силовой платы: Две платы перед сборкой. Две платы бутербродом. Модификации теплонесущих частей. Как были срезаны резьбовые стойки. Дело в том, что места внутри для размещения индуктивности и плат - крайне мало. Для этого надо образать при помощи Dremel-я и бура резьбовые стойки в котрые вкручиваются винты фиксации кнопки. Всего три стойки. Я укоротил все три. Винты значительно короче чем длина резьбовых каналов. Хуже не станет точно. Утрамбовано внутрь. При вставке драйвера внутрь - я применил капельку разъёмного автомобильного анаэробного резьбового фиксатора. Т.к. я довольно много раз вставлял и извлекал латунное кольцо то оно ослабило хватку алюминия. Не сильно, но ослабило. Через это латунное колечко тепло от LTC3454 уходит прямо в корпус через намеренно утолщённые дорожки. Начинаем изобретать теплопровод. Это кусок водопроводной медной трубы 1мм толщиной. При изгибании использовал свёрла и небольшие пасатижики. Пропаиваем его. Заходим в примерочную... LED - снабжаем медным уголком и примеряемся. Тоже самое, но если перевернуть. Гайку я был вынужден припять намертво. Иначе - ничего не выйдет. Т.о. я получил разборный проводник-распределитель тепла. Если кто придумает (и зафотографирует) лучше - большой почёт тому и уважение ! У меня - идей нет более. Надо всё промазать теплопроводящим составом. LED в месте прохождения винта (М1,6) надо промазать пастой КПТ-8. Линза LED так же промазывается изнутри по контуру для влагостойкости. Находим по оглавлению и читаем тему: "Термоклеи, термоинтерфейсы в применении к охлаждению LED". Модификация пружины. Без этого мероприятия сильно ощущается падение напряжение на этой самой пружине. На токе в 680ма - это ощутимо проваливает питание. Поэтому - так проще, лучше и надёжнее. Ищем по оглавлению и читаем тему: "Модернизация пружин батарейных отсеков". Весть проект выполнен специально под незащищённые АКБ. Буду тестировать. Защита от переполюсовки не сделана. Особо невнимательные (и те кто меняет АКБ в темноте) могут Сделать защиту на ПТ. Надеюсь, господа - всем было очень интересно. Занавес закрывается...
__________________
Тантал без керамики - деньги на ветер. |
Поблагодарили: 3 раз(а) |
27.08.2010, 09:40 | 2 |
Администратор
Регистрация: 17.05.2010 Адрес: Москва
Сообщений: 18905
Сказал(а) спасибо: 4325
Поблагодарили: 10615 раз(а) в 2535 сообщениях
|
Re: Переделка Ultrafire UF-H3
Спасибо за инструкцию! Её я почему то упустил из виду...
|
27.08.2010, 10:21 | 3 |
Ветеран Фонарёвки
|
Re: Переделка Ultrafire UF-H3
Прикольно... Решпект за проделанную работу...
|
27.08.2010, 10:39 | 4 |
Увлеченный
Регистрация: 20.05.2010 Последняя активность: 02.08.2022 16:41 Адрес: Рига. Латвия
Сообщений: 373
Сказал(а) спасибо: 50
Поблагодарили: 44 раз(а) в 28 сообщениях
|
Re: Переделка Ultrafire UF-H3
Снимаю шляпу. Особенно плата и программирование.
|
27.08.2010, 11:08 | 5 |
Ветеран Фонарёвки
Регистрация: 21.06.2010 Последняя активность: 17.03.2024 18:09 Адрес: Ялта
Сообщений: 1401
Сказал(а) спасибо: 21
Поблагодарили: 166 раз(а) в 104 сообщениях
|
Re: Переделка Ultrafire UF-H3
Бимшоты и фонарь в сборе?
|
28.08.2010, 08:37 | 6 |
Регистрация: 22.08.2010 Последняя активность: 20.11.2016 05:29 Адрес: Хабаровск
Сообщений: 279
Сказал(а) спасибо: 6
Поблагодарили: 94 раз(а) в 22 сообщениях
|
Re: Переделка Ultrafire UF-H3
Да, простите за значимую техническую недоработку :-)
Внешний вид есть на сайте продавца, например Kaidomain. Вот мои фото если они буду лучше смотреться (я и сам с трудом терплю Kd и его тормозной сайт) Внешний вид 1 Внешний вид 2 Внешний вид 3 Внешний вид 4 Статью "Зебра" для бедных (или Ultrafire UF-H3) скоро перенесу на этот ресурс, т.к. я делал этот обзор. По поводу бим-шотов. Странно, что мне и в голову не приходило это фотографировать. И более странно, что никто их в течении многих месяцев не просил (хотя статья была давно опубликована). Т.к. "оптика" не переделывалась - то форма светового пятна не менялась и оставалась такой же как и у самого производителя. Восприятие бим-шота - это такое же субъективное, как например "рисунок объектива" в фото технике (мрак полный, если пытаться логически осознать это). Поймите меня правильно. Моя "болезнь" - делать руками, переделывать, разрабатывать. Я не испытываю неудобств, если "фокус внимания" на световом пятне не такой или не сякой. Я просто использую всё что есть. Т.е. форма пятна - это график распределения светового потока Cree Xlamp XR-E. Широкий конус света, практически ничем не срезаный. |
17.01.2011, 15:29 | 7 |
Новичок
Регистрация: 03.01.2011 Последняя активность: 20.08.2018 14:03
Сообщений: 1
Сказал(а) спасибо: 5
Поблагодарили: 0 раз(а) в 0 сообщениях
|
Re: Переделка Ultrafire UF-H3
2 MrHot:
А не возникало у вас желания доработать стандартный драйвер? Например, если я правильно понимаю, можно параллельно припаять еще 1 или 2 AMC 7135 (После переделывания теплоотвода, конечно)? Или может посоветуете что-нибудь. Просто создание своего драйвера мне точно не по силам, а несложная доработка этого была бы кстати. |
15.02.2014, 15:55 | 8 |
Hoвичёк фонарёвки.
Регистрация: 18.08.2012 Последняя активность: Сегодня 06:26 Адрес: Калуга
Сообщений: 4754
Сказал(а) спасибо: 1989
Поблагодарили: 1430 раз(а) в 717 сообщениях
|
Re: Переделка Ultrafire UF-H3
|
20.02.2014, 11:56 | 9 |
Увлеченный
Регистрация: 20.12.2013 Последняя активность: 06.04.2017 09:44 Адрес: МО Лыткарино
Сообщений: 97
Сказал(а) спасибо: 18
Поблагодарили: 10 раз(а) в 8 сообщениях
|
Re: Переделка Ultrafire UF-H3
Получил фонарь и хочу переделать охлаждение по приведенной выше методе.
На фото видно, что уголок, передающий тепло на "радиатор", припаян к подложке диода. Уголок достаточно массивен относительно подложки, поэтому прогревать придеться долго. Не перегреется ли диод? Может использован сплав Розе? |