|
|
![]() ![]() |
|
![]() ![]() ![]() ![]() |
|
Опции темы | Поиск в этой теме |
![]() |
![]() ![]() |
Новичок
Регистрация: 04.10.2015 Последняя активность: 03.12.2015 00:54
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
![]()
Здравствуй хочу повторить вашу схему. Начертил в протеусе но почему то не работает. Не могли бы Вы помочь. Да и какие фьюзы выставлять в понипрог допустим.
|
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8159 раз(а) в 2385 сообщениях
|
![]()
Давайте разбираться. Проверил содержимое архива. Схема и печатка на месте, прошивка и командная строка тоже. Даже программа для программирования через FT232RL уже готовая и отконфигурированная есть. Другими программаторами и софтом я не пользовался, поэтому что там и как в графическом интерфейсе понипрогов - не знаю. Если разобрать файл с фьзами, то в нём следующее содержимое:
hfuse:w:221:m -U lfuse:w:226:m Т.е. Старший регистр имеет значение 0b11011101, а младший - 0b11100010. Как там в программе вашей расположены галочки, и что они означают (ноль или единицу) - я не в курсе. Чтоб прошить программой из архива - достаточно дважды кликнуть по "Fuse.bat", а затем по "Prog.bat" (при наличии программатора на FT232RL, под другие программаторы нужно править файлы, указывая в них соответствующий программатор). Не работает в протеусе? Это симулятор что-ли? Тот самый, на который все жалуются и в котором МК нормально не работают? Мультисим, кстати, недавно тоже отличился, не сумев нормально просимулировать простенькую схемку фильтра на ОУ. Вот так и верь им... [Исправлено: INFERION, 04.10.2015 в 22:26] |
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 25.01.2015 Последняя активность: 16.02.2025 22:50
Сообщений: 1584
Сказал(а) спасибо: 268
Поблагодарили: 509 раз(а) в 322 сообщениях
|
![]()
INFERION, А регулировка выполняется по среднему (как описано в стартпосте) или по среднеквадратичному значению входного напряжения?
|
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Новичок
Регистрация: 04.10.2015 Последняя активность: 03.12.2015 00:54
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
![]()
На какой частоте работает Мк. Можно ли написать прогу для attiny13? Если можно выставьте фьюзы на http://payalo.at****/c_fuse/... и сделайте фото.
|
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Новичок
Регистрация: 04.10.2015 Последняя активность: 03.12.2015 00:54
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
![]()
На какой частоте работает МК?
|
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Пожилой ветеран
Регистрация: 05.05.2014 Последняя активность: 12.01.2025 19:10
Сообщений: 3027
Сказал(а) спасибо: 507
Поблагодарили: 1050 раз(а) в 730 сообщениях
|
![]()
vdavid, среднее значение переменного напряжение равно нулю.
__________________
Emisar D4 219CT 5000K, Zebralight H604c, Zebralight H53c, Zebralight H32Fw |
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Завсегдатай Фонарёвки
Регистрация: 04.09.2015 Последняя активность: 29.08.2019 15:15
Сообщений: 788
Сказал(а) спасибо: 130
Поблагодарили: 254 раз(а) в 172 сообщениях
|
![]()
Для среднего значения принято брать по модулю. Я уж не говорю о том, что переменное напряжение весьма разной формы бывает, в том числе и с постоянной составляющей. Так что в общем случае ваша фраза не верна и зачем сказана - не совсем ясно.
|
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 25.01.2015 Последняя активность: 16.02.2025 22:50
Сообщений: 1584
Сказал(а) спасибо: 268
Поблагодарили: 509 раз(а) в 322 сообщениях
|
![]()
Behram, Естественно имелось в виду по модулю. Это же очевидно. Да и в реальной сети не факт, что полупериоды абсолютно симметричны, так что совсем уж нуля не будет.
|
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
||
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8159 раз(а) в 2385 сообщениях
|
![]() Цитата:
Цитата:
Что это за хрень по ссылке? Даташиты что, запретили? В даташите гарантировано правильно всё расписано. Открываем этот даташит: http://www.atmel.com/Images... Идём на 148-ю страницу, и смотрим в таблички "Table 20-4. Fuse High Byte" и "Table 20-5. Fuse Low Byte". Не ленимся, такой подход сэкономит много времени и нервов в случае ошибки с этими непонятными галочками в левых программках. МК не зашивает галочки, он оперирует с байтами нулей и единиц. Как эти галочки преобразуются в значения программой - знает только автор программы, а нам же придётся обжигаться на его собственном виденье логичности реализации. Если перепутать нули с единицами - МК в мусорку, если нет HVSP программатора. Но эта ошибка хотя бы сразу заметна, а вот если неправильно настроить супервизор - можно допустить зависание МК в каких-нибудь неблагоприятных ситуациях, которые сразу не проявятся. Это ответственный момент и я рекомендую сверять всё с даташитом. P.S. Я не вижу в коде сторожевого пса. Обычно я на нём не экономлю, чтоб он перезагружал МК, если вдруг тот зависнуть надумает. Думаю, его стоило бы добавить. Зарядить на 64мс и сбрасывать каждый цикл (период напряжения). В таком случае его так же необходимо разрешить фьюзами, а main: начинать с инструкции "WDR". [Исправлено: INFERION, 07.10.2015 в 18:59] |
||
![]() |
![]() ![]() |
Поблагодарили: 1 раз |
vdavid (07.10.2015)
|
![]() |
![]() ![]() |
Новичок
Регистрация: 04.10.2015 Последняя активность: 03.12.2015 00:54
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
![]()
1. Есть вопрос по схеме. Почему стабилизатор напряжения выход соединен с минусом, а GND соединен с VCC микроконтроллера?
2. Такого программатора как у Вас у меня нет, поэтому я незнаю как выставить фьюзы, знаю только в своей программе Ponuprog. 3. Почему в эмуляторе proteus микроконтроллер даже не хочет зажигать светодиоды? 4. Будет ли работать схема с менее мощным симистором? Ну допустим с BT136. |
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8159 раз(а) в 2385 сообщениях
|
![]()
1. Почитайте об управлении симисторами. Там есть разные квадранты и разные требования к управляющему току. Я выбрал наиболее экономичный, поскольку он и так требует 40мА управляющего тока (если правильно помню), что для одного пина МК уже многовато. Так вот импульс этот - отрицательной полярности. Поэтому один из анодов симистора подключен к Vcc МК, а поскольку этот же вывод соединён с сетью и блок питания на реактивном балласте имеет гальваническую связь с нею - пришлось сделать Vcc общим и питать сигнальную часть схемы отрицательным напряжением (-5V). 79L05 предназначен для включения в нижнее плечо двуполярного стабилизатора напряжения. Он стабилизирует отрицательное напряжение, поэтому на GND у него и будет положительное относительно IN. Путать его с классическим 78L05 нельзя, это его комплементарная пара. Стабилитрон перед ним даёт возможность электролиту запасать достаточно энергии, чтоб питать МК пока он генерирует импульс тока, открывающий симистор. Сам блок питания слаботочный и непрерывно способен давать всего-лишь около 10мА (при потреблении МК около 6мА).
2. Ну так для понипрога я дал достаточно информации. Я извлёк содержимое фьюз-байтов выше: "H=0b11011101, L=0b11100010". Тут старший бит слева. Так же я дал ссылку на даташит и указал какую страницу в нём открыть, чтоб посмотреть какие биты что означают. Дальше Вы на свой страх и риск думаете, как в этом понипроге обозвали эти фьюзы и что означают галочки. Расположены ли они в таком же порядке и т.п. У меня нет желания разбираться с понипрогом. Это очень известный софт и по нему много написано, но сам я им пользовался только 1 раз в армии, когда прошивал металлоискатель. И уже не помню что там и как, но было жуть как неудобно тыкать эти галочки и настраивать всё через графический интерфейс. Это я запомнил хорошо... 3. 79L05 с 78L05 не спутан? А-то после первого вопроса есть подозрения. Питание на МК в норме? Светодиоды, технически, не зажигаются просто переключением какой-то лапы. В программе реализована модуляция каждого канала, поэтому горящий светодиод на самом деле будет иметь не 100% яркость, а максимам 33% (есть ещё два канала, а одновременно несколько гореть тут не могут). Протеусу придётся это всё симулировать, и с какой скоростью он это всё делает? Модель МК страшно глючит и тормозит даже в официальном симуляторе AVR Studio, что уже говорить о всяких протеусах, на которые все жалуются? 4. Ещё и спасибо скажет, т.к. такой симистор проще открыть. [Исправлено: INFERION, 09.10.2015 в 03:08] |
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Новичок
Регистрация: 04.10.2015 Последняя активность: 03.12.2015 00:54
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
![]()
Последний вопрос. Если взять новый мк и просто запрограмировать, то есть залить файл hex , не меняя заводские фьюзы. Просто боюсь запороть МК. может если можно подправить прошивку для заводских фьюзы?
|
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8159 раз(а) в 2385 сообщениях
|
![]()
С заводскими работать не будет, т.к. с завода идёт тактовая частота в 8 раз ниже, а программа на неё завязана. Решит что частота питающей сети 400Гц и откажется работать. Сейчас я в программах на всякий случай вручную задаю тактовую частоту при запуске (в программе перед инициализацией стека):
Код:
ldi R16, 0b10000000 ;8MHz out CLKPR, R16 ldi R16, 0b00000000 ;CLK/1 out CLKPR, R16 Код:
ldi R16, 0b00011000 out WDTCR, R16 ldi R16, 0b00001010 ;64ms, RESET out WDTCR, R16 Но для всего этого придётся править код и по-новой его компилировать. |
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 25.01.2015 Последняя активность: 16.02.2025 22:50
Сообщений: 1584
Сказал(а) спасибо: 268
Поблагодарили: 509 раз(а) в 322 сообщениях
|
![]()
Если подсчитывать сумму напряжений а затем разделить на число отсчетов, то при амплитуде синуса в 311 Вольт получим не 220, а 198. 220 В даст подсчет среднеквадратичного значения, т.е. суммировать нужно квадраты отчетов. Затем разделить на число отсчетов. В результате получим 220 в квадрате.
|
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8159 раз(а) в 2385 сообщениях
|
![]()
Может быть там и ошибка. Основная формула, использующаяся там, вот: DT=Vout^2/Vin^2, где DT - заполнение, Vin - интегрированное значение периода (модуль), Vout - опорное значение. Я уже не помню почему я упростил формулу до такого вида, но помню что мультиметр давал правильный результат.
|
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 25.01.2015 Последняя активность: 16.02.2025 22:50
Сообщений: 1584
Сказал(а) спасибо: 268
Поблагодарили: 509 раз(а) в 322 сообщениях
|
![]() |
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8159 раз(а) в 2385 сообщениях
|
![]()
Зато у меня вопросы есть к исходным данным для неё. Выполненная активной нагрузкой работа зависит квадратично от напряжения, поэтому интегрировать нужно уже возведённые в степень семплы. Калькулятор лажу выдаёт, если интегрировать в лоб, как тут, а на умножение каждого семпла нужно искать ресурсы. Это чуть больше сотни тактов, тогда как у цикла есть порядка 256-ти тактов на всё...
|
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 25.01.2015 Последняя активность: 16.02.2025 22:50
Сообщений: 1584
Сказал(а) спасибо: 268
Поблагодарили: 509 раз(а) в 322 сообщениях
|
![]()
Т.е 625 сэмплов на период?. Зачем так много? Да и тактовая частота АЦП при этом должна быть 400 кГц, что дает реальную точность не более 8 бит. А восьмибитное умножение явно должно уместиться менее, чем в 100 тактов.
|
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8159 раз(а) в 2385 сообщениях
|
![]()
Много чтоб уменьшить алиасинг от ВЧ помех. Мало семплов не бывает. Передискретизация повышает эффективную разрядность. Да и проще каждые 256 семплов прерывание генерировать, поскольку таймер 8-ми битный. Можно, конечно, переписать и под 512 тактов, но если постараться - производительности хватит и сейчас.
Реальная точность АЦП не зависит ни от тактовой частоты, ни от количества бит в его регистре с результатом. Это пишут так, а на практике проблем нет и на 1МГц. Более того - из-за увеличенной частоты дискретизации эффективная разрядность только растёт. От АЦП AVR я привык получать никак не меньше 16-ти бит (в т.ч. и от встроенного дифференциального усилителя с 20х усилением), а clk/16 оказался наиболее удобным значением в большинстве проектов. Как и синхронизация АЦП с прерыванием по переполнению таймера (каждые 256 тактов). [Исправлено: INFERION, 16.10.2015 в 06:01] |
![]() |
![]() ![]() |
![]() |
![]() ![]() |
|
Ветеран Фонарёвки
Регистрация: 25.01.2015 Последняя активность: 16.02.2025 22:50
Сообщений: 1584
Сказал(а) спасибо: 268
Поблагодарили: 509 раз(а) в 322 сообщениях
|
![]() Цитата:
Ну так это же 4096 10-ти битных выборок да еще и при подходящем сигнале (домешать белый шум или пилу с периодом децимации). Или Вы знаете какой-то секрет? Поделитесь, если не жалко. |
|
![]() |
![]() ![]() |