|
|
![]() ![]() |
|
|
![]() ![]() ![]() ![]() |
|
Опции темы | Поиск в этой теме |
![]() |
![]() ![]() |
Участник форума по OpenID
Регистрация: 08.01.2014 Последняя активность: 21.02.2021 00:07
Сообщений: 493
Записей в дневнике: 3 Сказал(а) спасибо: 329
Поблагодарили: 151 раз(а) в 89 сообщениях
|
![]()
INFERION, с транзисторами у нас туго, в Космодроме есть IRLHS6342. На счет корпуса контроллера - у меня были мысли, но плата мелкая, надо будет попробовать с двух сторон развести.
galex, на счет исходников - а если я могу собрать только на ATtiny45V?
__________________
Скажем нет пиратству! - Качаем только лицензионные диски. |
![]() |
![]() |
![]() |
![]() ![]() |
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8162 раз(а) в 2385 сообщениях
|
![]()
[
![]() ![]() |
![]() |
![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 28.04.2013 Последняя активность: 08.01.2024 23:25
Сообщений: 3969
Сказал(а) спасибо: 529
Поблагодарили: 921 раз(а) в 628 сообщениях
|
![]()
Вопрос по программе. Подскажите, что именно проверяется в этой и следующей строке? Или может блок схема есть на этот кусочек?
if((MCUSR & (1<<BORF)) != 0) /* На входе напряжение при подаче питания ниже порогового и установлен бит BORF. Что на Си означает выражение в скобках? Если конденсатор при включении еще не зарядился, у нас в MCUSR будет два флага BORF и EXTRF? { if((MCUSR & (1<<EXTRF)) == 0) SetNewMode(); /*я так понимаю, если емкость еще заряжена - то был короткий клик и сброс только по низкому уровню питания, по ресет флага небыло.*/ MCUSR=0; //очистка регистра } |
![]() |
![]() |
![]() |
![]() ![]() |
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8162 раз(а) в 2385 сообщениях
|
![]()
Я не Сишник, но предположу что тут следующее:
Если флаг супервизора установлен, то: Если флаг внешнего сброса очищен - вызвать функцию SetNewMode(). Т.е. если у нас произошла перезагрузка не из-за снижения напряжения питания - просто стартуем. Видимо фильтр помех, логику работы которого я пока не понял. Туда PORF просится. Если у нас перезагрузка сопровождалась срабатыванием супервизора (снижение напряжения питания), то: Если при этом успел разрядится конденсатор на RESET - он будет некоторое время удерживать лапу и МК окажется сброшенным после старта, что установит EXTRF - сигнал длительного отключения питания. Условие не выполняется и функция SetNewMode() не вызывается. Т.е. при длительном отключении режимы не переключаются. Зачем тут целых два if - я не очень понимаю. Ведь можно было написать более сложное условие. А BORF не защитит от цикличного переключения режимов с дохлым аккумулятором, в отличии от PORF. Включится драйвер, перегрузит батарею, сработает супервизор, МК заглохнет и тут же напряжение питания подскочит - драйвер эту ситуацию оценит как кратковременное отключение пользователем? [Исправлено: INFERION, 27.02.2014 в 18:20] |
![]() |
![]() |
![]() ![]() |
![]() ![]() |
![]() |
![]()
Думаешь это глюк? Почему тогда такое поведение ни у кого не проявлялось?
|
![]() |
![]() |
![]() |
![]() ![]() |
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8162 раз(а) в 2385 сообщениях
|
![]()
Глюк - когда оно делает не то, что задумал. А это не глюк, это просто непредусмотрительность. Я сразу наткнулся на этот эффект, когда реализовывал такое управление в импульснике (тоже не предусмотрел). Тут такое поведение не появляется из-за физического ограничения максимального тока на порогах срабатывания BOD. Ведь на 2,7V требуется ну очень слабая батарея, чтоб наблюдать этот эффект с линейником или импульсной понижалкой. На 1,8V вообще нереально перегрузить. Я же наткнулся на такой эффект в понижалоповышалках на TPS630X0. Просто если проверять характер перезагрузки, то лучше использовать PORF - он позволяет отличить действительно физическое отключение питания от перезагрузки из-за частичной просадки напряжения. Но возникнут проблемы с входной ёмкостью - слишком короткий клик перезагрузит МК, но не разрядит входную ёмкость достаточно, чтоб установился PORF. Приходится допаивать резистор параллельно питанию на несколько десятков килоом. Так что если такой проблемы нет - можно и не проверять PORF, но вот проверять BORF я так и не понял зачем...
[Исправлено: INFERION, 27.02.2014 в 20:03] |
![]() |
![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 28.04.2013 Последняя активность: 08.01.2024 23:25
Сообщений: 3969
Сказал(а) спасибо: 529
Поблагодарили: 921 раз(а) в 628 сообщениях
|
![]()
Спасибо. Я похожепонял...
|
![]() |
![]() |
![]() |
![]() ![]() |
Участник форума по OpenID
Регистрация: 08.01.2014 Последняя активность: 21.02.2021 00:07
Сообщений: 493
Записей в дневнике: 3 Сказал(а) спасибо: 329
Поблагодарили: 151 раз(а) в 89 сообщениях
|
![]()
Выкладываю финальную версию.
Изменения: - Эконом режим в светляке (понижение частоты в светляке и рампинге) можно отключить, так как получилось увеличить яркость при том-же потреблении. - Очередная оптимизация и несколько свободных байт памяти. Прошивка в железе не проверялась, но работать должна. |
![]() |
![]() |
![]() |
![]() ![]() |
сволочь фонарёвки
Регистрация: 27.05.2011 Последняя активность: Сегодня 14:06
Сообщений: 40180
Сказал(а) спасибо: 6607
Поблагодарили: 35782 раз(а) в 16533 сообщениях
|
![]()
работает
мунлайт (общее/диод) - 1,85мА/0,8мА, 4.5кГц слабый - 106мА/104мА, 9кГц не понял смысла фразы при более высокой частоте мможно получить бОльшую яркость? или что? |
![]() |
![]() |
![]() |
![]() ![]() |
Участник форума по OpenID
Регистрация: 08.01.2014 Последняя активность: 21.02.2021 00:07
Сообщений: 493
Записей в дневнике: 3 Сказал(а) спасибо: 329
Поблагодарили: 151 раз(а) в 89 сообщениях
|
![]()
galex, при частоте ШИМа 4КГц ток светодиода у нас 0.8мА (255:1), а при 9КГц - 0.3мА (255:2).
|
![]() |
![]() |
![]() |
![]() ![]() |
сволочь фонарёвки
Регистрация: 27.05.2011 Последняя активность: Сегодня 14:06
Сообщений: 40180
Сказал(а) спасибо: 6607
Поблагодарили: 35782 раз(а) в 16533 сообщениях
|
![]()
ну? все равно не понимаю. выше частота - меньших токов на диоде можно добиться. и меньшей яркости, соответственно.
а как это яркость выше при том же потреблении? и зачем отключать эконом режим? |
![]() |
![]() |
![]() |
![]() ![]() |
Участник форума по OpenID
Регистрация: 08.01.2014 Последняя активность: 21.02.2021 00:07
Сообщений: 493
Записей в дневнике: 3 Сказал(а) спасибо: 329
Поблагодарили: 151 раз(а) в 89 сообщениях
|
![]()
Потребление всего драйвера почти одинаковое. По поводу отключения - может кому низкая яркость важнее.
|
![]() |
![]() |
![]() |
![]() ![]() |
сволочь фонарёвки
Регистрация: 27.05.2011 Последняя активность: Сегодня 14:06
Сообщений: 40180
Сказал(а) спасибо: 6607
Поблагодарили: 35782 раз(а) в 16533 сообщениях
|
![]()
понял теперь
![]() т.е ту фразу надо читать так "Эконом режим в светляке (понижение частоты в светляке и рампинге) можно отключить, чтобы получить еще меньшую яркость" в общем добавил к вашей модификации кусок кода который Тамагоччи предлагал, чтобы убрать конденсатор с RST. (не будет работать с подсветкой кнопки) но у меня 6-я студия, что-то не получается импортировать. вот исходники, строки со словом CAPACITOR woc.zip |
![]() |
![]() |
![]() |
![]() ![]() |
Участник форума по OpenID
Регистрация: 08.01.2014 Последняя активность: 21.02.2021 00:07
Сообщений: 493
Записей в дневнике: 3 Сказал(а) спасибо: 329
Поблагодарили: 151 раз(а) в 89 сообщениях
|
![]()
Добавил код для работы драйвера без емкости на RESETе (закоментировать соответствующую строку в 7135x8v2.h), по умолчанию прошивка для варианта с конденсатором.
INFERION, очередной облом от космодрома - ATtiny45V-10SU оказался широкий (узкий это 45V-10SSU), а я плату перед поездкой нарисовал. Взял ATtiny85V и перерисовал плату - тесновато, но получилось, да и дроссель IHLP2525 только был из самых мелких, зато исходники не особо нужны будут. |
![]() |
![]() |
![]() |
![]() ![]() |
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8162 раз(а) в 2385 сообщениях
|
![]()
DooMmen, никогда не видел в живую узких тинек. Всегда и все были широкие, с любыми суфиксами, как в крысокосмодроме, так и в ИМРАДе и местных магазинах. Удивился, когда узнал что в народные драйверы паяют 13-е тиньки в узких (нормальных) SO-8, а теперь ещё и выясняется, что 45-е тоже такими бывают...
[Исправлено: INFERION, 02.03.2014 в 02:34] |
![]() |
![]() |
![]() ![]() |
![]() ![]() |
![]() |
![]()
DooMmen,
Вспомнил, в этом драйвере для более точного замера т-ры хорошо бы использовать при ее замере в качестве опору напряжение питания. Ну, если уж решили до ума довести. |
![]() |
![]() |
![]() |
![]() ![]() |
Участник форума по OpenID
Регистрация: 08.01.2014 Последняя активность: 21.02.2021 00:07
Сообщений: 493
Записей в дневнике: 3 Сказал(а) спасибо: 329
Поблагодарили: 151 раз(а) в 89 сообщениях
|
![]()
Тамаготчи, логично, но я себе диод поставил параллельно резистору. Надо будет код еще поправить, а сейчас у меня травится вторая сторона платы на ипульсник (только прошивку надо будет подобрать, или опять скрещивать все имеющиеся здесь исходники)
![]() INFERION, |
![]() |
![]() |
![]() ![]() |
![]() ![]() |
![]() |
![]() |
![]() |
![]() |
![]() ![]() |
![]() ![]() |
![]() |
![]() |
![]() |
![]() |