Открытый проект универсального зарядника
В схеме ошибка в подключении PWM1 к IR4426. Все PWM-ы надо в нейтраль утянуть резисторами подтяжки. Vref в схеме отсутствует, но по-прежнему подключено на входы ОУ.
А что за схемка-то? Что-то новенькое, да еще на Пике.
Хотел убрать не удалось.
Это очень сырая схема. Замечания учтем. Это идея PSW криво воплощенная.
Пик который управляет совмещенным понижающим и повышающим преобразователем.
Все оформлено как еще одна силовая к v1.1
Выбран пик потому что у него можно поставить частоту счетчика шим 48мгц и есть 4 канала шим и он более менее доступен.
Исправил:
Не подключены к Пику CH_ON, DCH_ON. R20 не нужен - есть встроенный в Пике. PWM1 надо не на 1, а на 2 вывод драйвера.
Про PWM3 забыли - его тоже на землю резистором подтяжки.
Подтяжку PWM1 и PWM2 надо не к +9В, а к +5В - зачем защитные диоды Пика мучать?
Спасибо исправил.
Как измерить действительную емкость конденсатора на частоте 250 кГц?
Измерить - никак. Нужно просто скачать даташит на необходимую серию конденсаторов и там узнать все нужные данные.
Как измерить действительную емкость конденсатора на частоте 250 кГц?
Для этого потребуется перестраиваемый генератор с нужной частотой и небольшим выходным сопротивлением, частотомер, осциллограф или вольтметр переменного тока, который может работать на требуемой частоте, резистор сопротивлением где нибудь Ом 10-50, и катушку с индуктивностью L=1/(4*Pi*Pi*F0*F0*C0), где С0 - ёмкость кондёра, написанная на корпусе. Дальше собираем последовательный колебательный контур, одна нога резисторы - на общий. Подключаем генератор и, меняя частоту, ловим резонанс по максимальной амплитуде напряжения на резисторе. Меряем частоту Fr. Считаем ёмкость на этой частоте Cf=1/(4*Pi*Pi*Fr*Fr*L). Всё просто, за исключением катушки и измерения её индуктивности. Нужен LC-метр.
Для этого потребуется перестраиваемый генератор с нужной частотой и небольшим выходным сопротивлением, частотомер, осциллограф или вольтметр переменного тока, который может работать на требуемой частоте, резистор сопротивлением где нибудь Ом 10-50, и катушку с индуктивностью L=1/(4*Pi*Pi*F0*F0*C0), где С0 - ёмкость кондёра, написанная на корпусе. Дальше собираем последовательный колебательный контур, одна нога резисторы - на общий. Подключаем генератор и, меняя частоту, ловим резонанс по максимальной амплитуде напряжения на резисторе. Меряем частоту Fr. Считаем ёмкость на этой частоте Cf=1/(4*Pi*Pi*Fr*Fr*L). Всё просто, за исключением катушки и измерения её индуктивности. Нужен LC-метр.
Здравстуйте! Перемотал, наконец-то (в смысле не на конец, но перемотал) и заработало правильно, как в теории! КПД на малых напряжениях сильно “душит” выпрямитель, несмотря ни на что. Правда жизни, как говорит автор темы. В остальном всё вполне живуче, но при малой нагрузке “звенит” транс и дроссель - с совсем малой скважностью работать не получилось, преобразователь работает в режиме “старт-стоп”, может виновата большая индуктивность дросселя, или неважнецкая разводка платы - не знаю. Но напругу и ток держит, транзюки почти не греются, вот только звук бесит. Если вариант для зарядника автор считает перспективным, можно направить усилия в сторону уменьшения габаритов и оптимизации моточных данных. Сейчас транс и дроссель на кольцах 6000 транс 2х5 + 2х12, кольцо К42х35х7 (примерно, девайс остался на работе), провод ПЭВ2 0.4х14. Дроссель на таком же кольце и тем же проводом - 40 витков.
V1.1 заработала (пока только цифровая). В програматоре есть глюк r11 надо прицепить к X2:3, а не X2:9.
Чуть с ума не сошел пока выловил. Теперь знаю - проверять нужно все!!!
Дроссель SEPIC тоже пищит в старой схеме зараза. Может есть какая прормышленная теплопроводная смола с нормальным температурным коэффициентом.
Конечно интересно в смысле схемы. Постараюсь ее тоже приделать чуть позже.
Больше всего времени в проекте сожрали интерфейс пользователя и алгоритмы с химией.
А заделать еще одну силовую легко.
При человеческом прописывании меню и всех настроек подстроек, деже без учета двухканальности (которая в основном отъела только ОЗУ) в 16кБ проги уместиться не возможно (как мне кажется).
Очень я озаботился лицензиозностью и доступностью проекта.
Bulder стоит ~$2000 с возможностью распостронять прогу.
IAR AVR стоит ~$3000
Ну вот для программеров одиночек любителей разве такая политика принесет доход?
Посему хочу “макро” прогу переписать на жабе jdk это займет время на изучение. Мне и по работе надо заодно.
Искал ченить бесплатное чтобы в КОМ лазить и график нарисовать. Visual Studio Express тормозючий… на моем ноуте.
Ява тоже тормозючая, но там с переносом на разные платформы говорят хорошо??? да и вообще интересно.
Да вот узнал - ява и яваскрипт что в браузере это совершенно разные языки.
Ява может все!!!, но медленнее чем Си. Яваскрипт это так - “по мелочи”.
И микро прогу хочу переписать на АВРовском вин-си. Тоже время на изучение оболочки по часу в день.
В остальное время правлю микропрограмму по старому с учетом новых особенностей и выбросом аттавизмов.
Ну, можно Mono попробовать (открытая реализация .NET), я правда не знаю на сколько он завершен
www.mono-project.com/Main_Page
Кажется для него был plug-in для Eclipse
www.eclipse.org
Очень я озаботился лицензиозностью и доступностью проекта.
Bulder стоит ~$2000 с возможностью распостронять прогу.
IAR AVR стоит ~$3000
Ну вот для программеров одиночек любителей разве такая политика принесет доход?
WinAvr (это gcc сборка под виндовс - все в комплекте, включая простенькую иде)
бесплатный, хорошо документированный, в дистрибутиве есть примеры, куча примеров в инете. куча библиотек.
я на нем последние года 4 под авр пишу, проблем нет (были мелкие в ранних версиях, но легко обходились)
при необходимости могу подсказать по переходу с иара (хотя все и так просто, может только строковые константы во флеше описываются своеобразно). код получается весьма приличный.
Ага!
Нужны примеры по WinAvr (с прерываниями и всякими строковыми структурами). Где почитать?
Из полезного нашел вот: www.myrobot.ru/stepbystep/mc_winavr.php
Кто-нибудь знает можно ли AVRDUDE - программатор (из комплекта winavr) настроить на PoniProg(овское) железо?
Говорят компилятор winavr слабее оптимизирует код чем IAR, т.е. неиспользуемое включает.
Заранее спасибо!
Ага!
Нужны примеры по WinAvr (с прерываниями). Где почитать?Из полезного нашел вот: www.myrobot.ru/stepbystep/mc_winavr.php
Кто-нибудь знает можно ли AVRDUDE - программатор настроить на PoniProg(овское) железо?
Можно, причем в конфигурационном файле (avrdude.conf) уже есть вот такой:
programmer
id = “pony-stk200”;
desc = “Pony Prog STK200”;
type = par;
buff = 4, 5;
sck = 6;
mosi = 7;
reset = 9;
miso = 10;
pgmled = 8;
;
Ага!
Нужны примеры по WinAvr (с прерываниями и всякими строковыми структурами). Где почитать?
Говорят компилятор winavr слабее оптимизирует код чем IAR, т.е. неиспользуемое включает.
по прерываниям: как битики в регистрах конфигурить - это у любого компилятора одинаково, пример кода обработчика:
откуда брать подобное SIG_OVERFLOW0 и SIG_INPUT_CAPTURE1, чтоб не нибивать руками и не ошибаться - смотрим соответствующий процу h-файл в (например для меги8 iom8.h)
звездочки “*” куда попало движок форума вставил, я не виноват 😃
#incl*ude <type.h>
#incl*ude <avr/io.h>
#incl*ude <avr/interrupt.h>
SIGNAL (SIG_INPUT_CAPTURE1) //это прерывание по входу захвата, ну далее ясно…
{
icp_cur=ICR1-icp_last;
icp_last=ICR1;
icp_flg=1;
}
/************************************************************************************/
SIGNAL (SIG_OVERFLOW0)
{
pos++;
оптимизация - мне часто надо на скоростные процессы обслуживать - поэтому кодогенерацию смотрю часто, очень даже прилично все.
Спасибо!
Всегда очень трудно сделать первые шаги.
- Про генерацию файла проекта ясно. Используем утилитку MFile
- Про стандартный язык ясно. В целом все как обычно в си и названия битов притянуты из даташита.
- Про особенности прерываний ясно. Из предыдущего коментария.
??? 4. Про особенности описания строковых переменных и работы с различными видами памяти (флэш озу ппзу) не совсем ясно. Подсмотреть бы. - Про компиляцию ясно. Из программерс нотепада
- Про прошивание ясно. От тудаже.
Про ОЗУ все ясно - обычное использование строковых переменных
А вот про flash и eeprom???
Например в IAR я делал так:
typedef BYTE __flash * Txt; // Тип данных строка, оканчивающаяся нулем во флаш
typedef __flash BYTE __flash * pTxt; // Тип данных массив указателей, находящийся во флаш, на строки, находящиеся во флаш
// Пункты меню
pTxt pMn[]=
{
(Txt)“1.Канал-1 пуск”, //Запуск диалога первого канала (не запускать)
(Txt)“2.Канал-2 пуск”, //Запуск диалога второго канала (не запускать)
(Txt)“3.Список аккум”, //Заголовок
(Txt)“3.1.Просмотр акк”, //Просмотр всех аккумуляторов
…
}
Далее зная номер указателя на строку можно ее побайтно например рисовать на ЖКИ.
Да еще забыл спросить про определение фузов прямо в программе. Кажется такое возможно в WinAvr
Вот нашел инфу: avr.h15.ru/index.php?page=winavr
- Про генерацию файла проекта ясно. Используем утилитку MFile
достаточно руками в мэйкфайле из примера поправить тип процессора и имя исходника
??? 4. Про особенности описания строковых переменных и работы с различными видами памяти (флэш озу ппзу) не совсем ясно. Подсмотреть бы.
вот, посмотри…
надергал строчек из реального проекта.
#incl*ude <avr/pgmspace.h>
#define P(s) ({static const char c[] __attribute__ ((progmem)) = s;c;})
#define Tx_Str(str) PutStringP(P(str))
void PutStringP(const char *Str);
//============================================================
void Uart_Tx(u_char bt)
{
while ( !(UCSRA & (1<<UDRE)) ); //atmega wait for empty transmit buffer
UDR = bt; // start transmittion
}
//============================================================
void PutStringP(const char *Str)
{
char c;
while ((c = pgm_read_byte(Str++))) Uart_Tx©;
}
//============================================================
int main(void)
{
UBRRH = 0;
UBRRL = 47; //7.3728M 9600
UCSRB = (1<<RXEN)|(1<<TXEN); // Enable Receiver and Transmitter
UCSRC = (1<<URSEL)|(3<<UCSZ0); // Set frame format: 8data, 1stop bit
Tx_Str(“эта строка в флеш-памяти программ”);
}
Вот такие штуковины:
Это силовая SEPIC
Броневой сердечник 35мм судя по цвету HM2000
Зазор 0.5мм
L1=39 скрутка/0.315мм/7 витков=11мкГн
L2=13 скрутка/0.315мм/10 витков=26мкГн
Это силовая BUCK
Броневой сердечник 35мм без зазора судя по цвету HM2000
L=1.2мм/до заполнения=5300мкГн
Это все вместе
Думаю засунуть все в старуюкоробку от АТ блока питания.
Красивую алюминивую коробку в чипе дипе купил (о которой говорилось ранее), крутил и так и сяк - не лезет.
Надо переразводить.
Цифровая заработала!!!
Силовые не включал - прогу переписываю.
Мне подкинули книжку djvu
shpak_yu_a__programmirovanie_na_jazyke_s_dlja_avr_i_pic_mikr.djvu
Программирование на языке Cи для AVR и PIC микроконтроллеров.
Там про WinAvr все подробно расписано.
Чё-то bool gcc не признает!!! Какаято ерунда не пойму.