что-то у меня ток не показывает... Запускаю зарядку показывает 0.52 А, подключаю дополнительно лампочку (на приборе 0.785А), а на ЗУ так и показывает 0.52 А. Резюки подобрал до тысячных (2.995 Ом и 26.79 Ом). Может резюк поставил слабый (взял из китайского тестера на 20А). А фьюзы надо програмить? Просто у меня макетка с м16 и кварцем на 8МГц.
Вот фюзы: CSEL0 CKSEL1 CKSEL3 Это обязательно? Если у меня кварцевый резонатор.
JTAGEN А вот это я так понимаю нужно наоборот перевести в 1 (отключить). т.к. по схеме на порту PC.3 висит затвор транзистора отл. аккумулятора. И если фьюз включен то там практически ~5 вольт.
Да ещё что-то я не догнал в чем дело: При включении тренировки при разряжении напряжение показывает 7.8 В (реально тоже), после включения БП на экране показывает 10.4 реально 13.4 В, на входе АЦП 1.23 В. Где искать косяк?
P.S. При калибровки устанавливаю 10.6 В то при разряде 10.4 (реальное 7.8 В) а при зарядке 13.4 (реально 13.4)
P.S.S. А вот R21 точно 0.1 Ом. Поставил 0.1 показания почти в два раза меньше.
10.09.2010:
Вот ещё:
Код:
izmu: push temp push temp2 push temp3 ldi temp3,128 ; задаём количество измерений push ZL push ZH clr ZL clr ZH i1: ldi temp,0b11100010 ; настраиваем АЦП, опора-внутр out ADMUX,temp ; выравнивание влево, вход- порт PА2 rcall delay40 ; диф вход- PА3(+) PA2(-) GAIN=10 rcall delay40 ; пауза 160 мкСек rcall delay40 ; для установления rcall delay40 ; режима усилителя cli ldi temp,0b11001110 ; включаем АЦП out ADCSRA,temp ; ;ldi temp,0b01010000 ; задаем режим ;out MCUCR,temp ; ADC Noise Reduction ;sei ;sleep in temp,ADCSRA ; ждем установки флага ADIF- sbrs temp,4 ; конца преобразования rjmp pc-2 ldi temp,0b00010000 ; останавлаваем АЦП, out ADCSRA,temp ; сбрасываем флаг ADIF sei in temp,ADCH ; считываем данные из АЦП add ZL,temp ; суммироуем измерения adc ZH,zero ; и накапливаем в регистре Z dec temp3 brne i1 ldi temp,7 ; делим на 128 lsr ZH ror ZL dec temp brne pc-3 lds temp,0x0060 ; считываем поправку add ZL,temp ; прибавляем её к результату mov uouth,ZL pop ZH pop ZL pop temp3 pop temp2 pop temp sei ret
Если вот тут так:
Код:
ldi temp3,128 ; задаём количество измерений ... ldi temp,7 ; делим на 128
то измерения не правильные. А если вот так:
Код:
ldi temp3,128 ; задаём количество измерений ... ldi temp,6 ; делим на 128
то вроде всё правильно считает (хотя по логики там всё правильно). Я про напряжение. Если первый случай, то напряжение (допустим) 3.9В (реальное 7.8В), если второй то напряжение 7.8В (реально 7.8В). В программе отключаю прибавление поправки:
Код:
; lds temp,0x0060 ; считываем поправку ; add ZL,temp ; прибавляем её к результату
по этому это реальное значение. Может я не понимаю в программировании, то-ли здесь действительно косяк. (всё это на реальном устройстве АТМега16 SMD, резонатор кварцевый, R22=26.95 R15=26.93 и R24=2.996 R17=2.992, всё остальное согласно рекомендациям). Я в аналоговой схемотехники не особо силён, но по напряжению на входе АЦП по второму случаю и информацией на экране разница 0.1 В. По поводу тока ещё не разобрался. Но что то мне подсказывает при моём исполнении должна быть отрицательная поправка т.е. если реально разность между PA3 и PA2 положительная, то нужно отнимать, от реального значение, поправку.
Вот как-то так и ещё раз, ток, я пока не разобрал, но работаю над этим. (напряжение вроде нормально работать стало).
Капался в детальках, наткнулся на датчик тока LA 55-P. Может быть его прикошачить к данному устройству? И ещё идея раз мы выбираем в меню ёмкость аккумулятора, то может быть МК подсчитывать сколько энергии он "вкачал" и при превышении отключать с индикацией об ошибке, ибо не все аккумуляторы при зарядке набирают напряжении 14.6В. Мало ли старый очень или с какой то банкой проблемы.
Вложения:
Комментарий к файлу: датчик тока LA 55-P la55-p-sp1.pdf [150.6 KiB]
Скачиваний: 1854
Разбираюсь с работой устройства и хочу понять некоторые моменты. см. Cхема_мега16.spl7 и фрагмент доработанного БП. Правильно ли я думаю: 1. Без подачи напряжения ШИМ от контроллера на вывод 2 TL494(KA7500) всегда будет присутствовать на аноде D2 напряжение , заданное доработанным БП АТ (10V), . 2. Рост напряжения и тока на нагрузке возникнет , когда фильтрованное напряжение ШИМ с выхода управления превысит напряжение (2,5V), заданное на выводе 2 TL494(KA7500). 3. Получается, что диапазон напряжения ШИМ после фильтра на выходе управления должен быть от 2,5 до 5V.
Разбираюсь с работой устройства и хочу понять некоторые моменты. см. Cхема_мега16.spl7 и фрагмент доработанного БП. Правильно ли я думаю: 1. Без подачи напряжения ШИМ от контроллера на вывод 2 TL494(KA7500) всегда будет присутствовать на аноде D2 напряжение , заданное доработанным БП АТ (10V), . 2. Рост напряжения и тока на нагрузке возникнет , когда фильтрованное напряжение ШИМ с выхода управления превысит напряжение (2,5V), заданное на выводе 2 TL494(KA7500). 3. Получается, что диапазон напряжения ШИМ после фильтра на выходе управления должен быть от 2,5 до 5V.
Всё правильно.
Executor, я не понял, в чем ваша проблема? "P.S.S. А вот R21 точно 0.1 Ом. Поставил 0.1 показания почти в два раза меньше." Если на входе PA2 1.23В, на индикаторе должно быть 12.3В. Вот на фото -отладочная плата, напряжение отображается правильно. То же самое и в протеусе. В режиме тренировки могут быть проблемы,этот режим я не тестировал. Я сечас буду собирать два варианта платы- с ДИП и с СМД. Всё проверю и исправлю ошибки. А фузы CSEL0 CKSEL1 CKSEL3 лучше выставить так, как я писал ранее. В этом случае, МК будет работать от внутреннего генератора 8 МГц Если там стоят другие фузы, частота внутреннего генератора может быть и другой, а подключенный кварц не играть никакой роли. Насчет JTAGEN, то его можно и отключить (установить в 1). Он активирует JTAG-интерфейс, мне это нужно было для отладки Кстати, мегу нужно брать с буквой А, т.е. ATmega16A
Извиняюсь сам дурак, проблема была в монтаже. Как я говорил собираю на макетке и на ней мега была разведена и ноги AVCC и AREF были через резюк на +5В вот он и врал, сейчас напряжение работает нормально. Может по этой же причине не работает ток (в разных режимах разный ток показывает). По поводу фюьзов при включении внутреннего генератора индикатор работает через раз (что-то выведет что то нет). JTAG мне кажется нужно отключать т.к. при включении ЗУ подключается АКБ.
P.S. Ещё хотел сказать: Почему бы ни сделать ток двух полярным? Ну чтобы видеть заряд разряд.
Что ток не работает при КУ=200 просто показывает 0.38 А, а при КУ=10 показывает 2.8 А а реально 2.1 А. При калибровке выставляю 0.00 и 00.0.
Вот что у меня получилось прикрепляю.
По поводу кода: В калибровке при попадании в данный раздел необходимо дождаться отжатия клавиши вправо, т.к. происходит добавление сразу одной десятой вольта. Думаю вот так будет работать:
Код:
;выводим сообщение " U= , В" ldi lcd,0xC0 ; ставим курсор rcall lcd_com ; в начало второй строки ldi temp3,16 ; temp2- длина сообщения ldi zl,low(mess1n*2) ; установить указатель Z ldi zh,high(mess1n*2) ; на начало буфера mess1n rcall output ldi cur,10 ; курсор на rcall l_shift ;10 позиции влево rcall lcdu ; выводим на ЛСД напряжение ;ожидание отпускания кнопок in temp,PIND ; ждем andi temp,0b00010111 ; отпускания cpi temp,0b00010111 ; кнопок brne pc-3
Почитал ещё даташит. Согласен, JTAG нужно отключить. Извиняюсь, не досмотрел По поводу тока. У нас измеряется падение напряжения на резисторе R21. Оно усиливается внутренним ОУ,работающим в дифференциальном режиме. В этом режиме можно измерять и положительное, и отрицательное напряжение.То есть, мы измеряем и зарядный,и разрядный ток. Коэффициент усиления этого ОУ мы выставляем=10 при токе больше 1А и =200 при токе меньше 1А. При обработке результатов измерений, это учитывается. Нужный ток разряда устанавливается с помощью ШИМ, то есть ток разряда-импульсный, что требует специального подхода к его измерению. Я сейчас собираю готовое устройство и буду дорабатывать программу. Зарядный ток-постоянный, поэтому измеряться должен гораздо точнее. Если ток не измеряется при значениях ниже 1А, то есть когда КУ=200, возможно, проблемы с МК. Были такие случаи. Поэтому, нужно брать с буквой А , т.е. ATmega16A, именно так рекомендует ATMEL.
Почитал ещё даташит. Согласен, JTAG нужно отключить. Извиняюсь, не досмотрел По поводу тока. У нас измеряется падение напряжения на резисторе R21. Оно усиливается внутренним ОУ,работающим в дифференциальном режиме. В этом режиме можно измерять и положительное, и отрицательное напряжение.То есть, мы измеряем и зарядный,и разрядный ток. Коэффициент усиления этого ОУ мы выставляем=10 при токе больше 1А и =200 при токе меньше 1А. При обработке результатов измерений, это учитывается. Нужный ток разряда устанавливается с помощью ШИМ, то есть ток разряда-импульсный, что требует специального подхода к его измерению. Я сейчас собираю готовое устройство и буду дорабатывать программу. Зарядный ток-постоянный, поэтому измеряться должен гораздо точнее. Если ток не измеряется при значениях ниже 1А, то есть когда КУ=200, возможно, проблемы с МК. Были такие случаи. Поэтому, нужно брать с буквой А , т.е. ATmega16A, именно так рекомендует ATMEL.
Я так понимаю ATMega16-16AU это другое. А проц не мог подгореть? Был момент когда сдохла кренка и на проце было 9В после этого вроде все работает (ток не помню работал до этого или нет). И ещё хотел бы узнать про переменную kor (коридор в коментариях) это что? (просто сделал ручной режим и что-то не догнал что эта переменная делает). И по поводу err10 и err200 это будущие наброски или прошлые?
доделал свою силовую часть, бп нормально работает как на хх так и при нагрузке, тишина полнейшая. но при подключении шлейфа управления (просто шлейф, без платы управления) появляется свист от наводок видимо на 2 ногу TLки, кроме как лепить экранированный шлейф чот в голову ничоне пришло никто с подобным не сталкивался?
Я так понимаю ATMega16-16AU это другое. А проц не мог подгореть? Был момент когда сдохла кренка и на проце было 9В после этого вроде все работает (ток не помню работал до этого или нет). И ещё хотел бы узнать про переменную kor (коридор в коментариях) это что? (просто сделал ручной режим и что-то не догнал что эта переменная делает). И по поводу err10 и err200 это будущие наброски или прошлые?
ATMega16-16AU-старая версия микроконтроллера и не рекомендуется для новых разработок. Вместо нее нужно использовать ATMega16A-AU А 9В-конечно, много. Могло и подгореть. Переменные cor, err10 и err200 - для отладки.
доделал свою силовую часть, бп нормально работает как на хх так и при нагрузке, тишина полнейшая. но при подключении шлейфа управления (просто шлейф, без платы управления) появляется свист от наводок видимо на 2 ногу TLки, кроме как лепить экранированный шлейф чот в голову ничоне пришло никто с подобным не сталкивался?
Бывает свист. Если подключить блок управления, он исчезнет. Не нужно ничего экранировать.
Да с блоком управления тоже возбуд небольшой идёт, как то это напрягает, сам то бп аще тихо работает. Ещё вопрос, при нагрузке на лампу зу будет работать или токо на акб? а то пока был запрограммирован jtagen лампа сразу загоралась ))) после перепрограмирования фьюза теперь при выборе зарядки вываливается в меню (нагрузка-лампа). извеняйте если вопросы вам кажутся дурацкими но для меня это только хобби и базовое образование и специальность далеки от электроники
Да с блоком управления тоже возбуд небольшой идёт, как то это напрягает, сам то бп аще тихо работает. Ещё вопрос, при нагрузке на лампу зу будет работать или токо на акб? а то пока был запрограммирован jtagen лампа сразу загоралась ))) после перепрограмирования фьюза теперь при выборе зарядки вываливается в меню (нагрузка-лампа). извеняйте если вопросы вам кажутся дурацкими но для меня это только хобби и базовое образование и специальность далеки от электроники
При сборке я забыл установить диод в цепи управления и при подключении его к БП возникал свист БП, после установки диода свист пропадал и появлялся только когда я дотрагивался до провода управления. По поводу лапы, у меня такого не было, только было что АКБ сразу подключался.
Слон писал(а):
ATMega16-16AU-старая версия микроконтроллера и не рекомендуется для новых разработок. Вместо нее нужно использовать ATMega16A-AU А 9В-конечно, много. Могло и подгореть. Переменные cor, err10 и err200 - для отладки.
Просто при разных значения cor по разному управляется БП. Вот так я сделал ручное управление:
Код:
ManualMode: sbi PORTC,3 ; подключаем АКБ set ; Т=1-стабилизация напряжения ldi cor,0 ; коридор ldi temp,0b00000011 ; прескалер F/64 out TCCR0, temp ldi temp,0b00000001 ; устанавливаем прерывания out TIMSK,temp ; по переполнению call delay10 ; пауза для установки call delay10 ; режима стабилизации call delay10 call delay10 ldi temp,130 mov err10,temp ManualT1: ; Выводим в первой строке нужное напряжение ldi lcd,0x80 ; ставим курсор rcall lcd_com ; в начало второй строки ldi temp3,16 ; temp2- длина сообщения ldi zl,low(mess1n*2) ; установить указатель Z ldi zh,high(mess1n*2) ; на начало буфера mess1n rcall output ldi cur,10 ; курсор на rcall l_shift ;10 позиции влево mov uouth,err10 rcall lcdu ; выводим на ЛСД напряжение
rcall izmu ; измеряем напряжение rcall izmi ; измеряем ток set ; Т=1-стабилизация напряжения mov stab,err10 ; устанавливаем Увых=13.0В ldi cor,0 mov temp,urh rcall lcdui ; выводим напряжение и ток
Нашел у себя косяк. Чип кондетсатор С9 в схеме управлеия просаживал управляющий сигнал с МК, померил его сопротивление - 100 Ом, вот тебе и качество смд компонентов теперь подсвистывает на ХХ пока не выбереш режим зарядки, после этого свист пропадает полностью. Теперь подкопленные вопросы На ХХ свист всё равно хотелось бы убрать, может уменьшить номиналы резисторов с ноги 2? или чуть подзадрать на хх напряжение на 21 ноге мк? например 2.6В ? С нагрузкой лампой 55Вт стартовать всё равно отказывается, вываливается в меню, а вот если нажать зарядку и сразу ловко подцепить лампу, то все работает, при старте зарядки уходит в защиту? С лампой 5 Вт всё работает четко Разница в показаниях с мультиметром по вольтажу 0.06В, по току 0.05А. пока ничего ещё не калибровал, мк mega16-16pu, так ли критично приминение мк с буквой А ?
Подскажите кто нибудь что должно быть на затворе Т1иТ2.У меня относительно земли на Т1 во всех режимах 5в,зарядка 0,наТ2 в режиме тренировка от 0 до 0,25в.Короче работает только Т2.
Начал разбиратся с ШИМ'ом и что-то мне кажется что несколько не правильный подход к регулированию выходного напряжения т.к. в ходе программы мы измеряем напряжение или ток и в прерывании мы их обрабатываем (прибавляем или уменьшаем состояние OCR2) и так-как прерывание выполняется намного чаще мы получаем: измерили напряжение оно равно (допустим) 10 В, а нам нужно 12 В, при попадании в прерывание мы смотрим на измеренное напряжение (10 В) и пытаемся его поднять (до 12 В) и пока у нас произойдёт следующее измерение напряжение, наше прерывание раскачигарит наш БП скажем до 14 В. И тут происходит измерение и опять начинается тоже самое, но в обратную сторону. И так (по крайней мере в моём случае) происходит постоянная беготня, то повысит напряжение то опустит. (может это только у меня).
Начал разбиратся с ШИМ'ом и что-то мне кажется что несколько не правильный подход к регулированию выходного напряжения т.к. в ходе программы мы измеряем напряжение или ток и в прерывании мы их обрабатываем (прибавляем или уменьшаем состояние OCR2) и так-как прерывание выполняется намного чаще мы получаем: измерили напряжение оно равно (допустим) 10 В, а нам нужно 12 В, при попадании в прерывание мы смотрим на измеренное напряжение (10 В) и пытаемся его поднять (до 12 В) и пока у нас произойдёт следующее измерение напряжение, наше прерывание раскачигарит наш БП скажем до 14 В. И тут происходит измерение и опять начинается тоже самое, но в обратную сторону. И так (по крайней мере в моём случае) происходит постоянная беготня, то повысит напряжение то опустит. (может это только у меня).
P.S. Пока думаю как от этого избавиться.
Вот для этого и нужна переменная cor (коридор) . Если напряжение (ток) попадает в нужный диапазон (коридор), состояние OCR не меняем. Такая задумка была.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 53
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения