ЗУ для свинцовых АКБ на МК Atmega 16А
Re: ЗУ для свинцовых АКБ на МК Atmega8
что-то у меня ток не показывает... Запускаю зарядку показывает 0.52 А, подключаю дополнительно лампочку (на приборе 0.785А), а на ЗУ так и показывает 0.52 А. Резюки подобрал до тысячных (2.995 Ом и 26.79 Ом).
Может резюк поставил слабый (взял из китайского тестера на 20А).
А фьюзы надо програмить? Просто у меня макетка с м16 и кварцем на 8МГц.
Может резюк поставил слабый (взял из китайского тестера на 20А).
А фьюзы надо програмить? Просто у меня макетка с м16 и кварцем на 8МГц.
- Реклама
Re: ЗУ для свинцовых АКБ на МК Atmega8
Вот фюзы:
CSEL0
CKSEL1
CKSEL3
Это обязательно? Если у меня кварцевый резонатор.
JTAGEN
А вот это я так понимаю нужно наоборот перевести в 1 (отключить). т.к. по схеме на порту PC.3 висит затвор транзистора отл. аккумулятора. И если фьюз включен то там практически ~5 вольт.
CSEL0
CKSEL1
CKSEL3
Это обязательно? Если у меня кварцевый резонатор.
JTAGEN
А вот это я так понимаю нужно наоборот перевести в 1 (отключить). т.к. по схеме на порту PC.3 висит затвор транзистора отл. аккумулятора. И если фьюз включен то там практически ~5 вольт.
Re: ЗУ для свинцовых АКБ на МК Atmega8
Да ещё что-то я не догнал в чем дело:
При включении тренировки при разряжении напряжение показывает 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:
Вот ещё:
Если вот тут так:
то измерения не правильные. А если вот так:
то вроде всё правильно считает (хотя по логики там всё правильно). Я про напряжение. Если первый случай, то напряжение (допустим) 3.9В (реальное 7.8В), если второй то напряжение 7.8В (реально 7.8В). В программе отключаю прибавление поправки:
по этому это реальное значение. Может я не понимаю в программировании, то-ли здесь действительно косяк. (всё это на реальном устройстве АТМега16 SMD, резонатор кварцевый, R22=26.95 R15=26.93 и R24=2.996 R17=2.992, всё остальное согласно рекомендациям). Я в аналоговой схемотехники не особо силён, но по напряжению на входе АЦП по второму случаю и информацией на экране разница 0.1 В.
По поводу тока ещё не разобрался. Но что то мне подсказывает при моём исполнении должна быть отрицательная поправка т.е. если реально разность между PA3 и PA2 положительная, то нужно отнимать, от реального значение, поправку.
Вот как-то так и ещё раз, ток, я пока не разобрал, но работаю над этим. (напряжение вроде нормально работать стало).
При включении тренировки при разряжении напряжение показывает 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
Код: Выделить всё
; lds temp,0x0060 ; считываем поправку
; add ZL,temp ; прибавляем её к результату
По поводу тока ещё не разобрался. Но что то мне подсказывает при моём исполнении должна быть отрицательная поправка т.е. если реально разность между PA3 и PA2 положительная, то нужно отнимать, от реального значение, поправку.
Вот как-то так и ещё раз, ток, я пока не разобрал, но работаю над этим. (напряжение вроде нормально работать стало).
Re: ЗУ для свинцовых АКБ на МК Atmega8
Капался в детальках, наткнулся на датчик тока LA 55-P. Может быть его прикошачить к данному устройству?
И ещё идея раз мы выбираем в меню ёмкость аккумулятора, то может быть МК подсчитывать сколько энергии он "вкачал" и при превышении отключать с индикацией об ошибке, ибо не все аккумуляторы при зарядке набирают напряжении 14.6В. Мало ли старый очень или с какой то банкой проблемы.
И ещё идея раз мы выбираем в меню ёмкость аккумулятора, то может быть МК подсчитывать сколько энергии он "вкачал" и при превышении отключать с индикацией об ошибке, ибо не все аккумуляторы при зарядке набирают напряжении 14.6В. Мало ли старый очень или с какой то банкой проблемы.
- Вложения
-
- la55-p-sp1.pdf
- датчик тока LA 55-P
- (150.6 КБ) 1865 скачиваний
- Реклама
Re: ЗУ для свинцовых АКБ на МК Atmega8
Разбираюсь с работой устройства и хочу понять некоторые моменты.
см. 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.
Re: ЗУ для свинцовых АКБ на МК Atmega8
Всё правильно.IURY писал(а):Разбираюсь с работой устройства и хочу понять некоторые моменты.
см. 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
- Вложения
-
- фото.rar
- (191.4 КБ) 1489 скачиваний
Опыт- сын ошибок трудных....
Re: ЗУ для свинцовых АКБ на МК Atmega8
Извиняюсь сам дурак, проблема была в монтаже. Как я говорил собираю на макетке и на ней мега была разведена и ноги AVCC и AREF были через резюк на +5В вот он и врал, сейчас напряжение работает нормально. Может по этой же причине не работает ток (в разных режимах разный ток показывает). По поводу фюьзов при включении внутреннего генератора индикатор работает через раз (что-то выведет что то нет). JTAG мне кажется нужно отключать т.к. при включении ЗУ подключается АКБ.
P.S. Ещё хотел сказать: Почему бы ни сделать ток двух полярным? Ну чтобы видеть заряд разряд.
P.S. Ещё хотел сказать: Почему бы ни сделать ток двух полярным? Ну чтобы видеть заряд разряд.
Re: ЗУ для свинцовых АКБ на МК Atmega8
Что ток не работает при КУ=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
- Вложения
-
- 100_3766a.jpg
- (71.92 КБ) 1757 скачиваний
-
- 100_3765a.jpg
- (72.07 КБ) 1542 скачивания
Re: ЗУ для свинцовых АКБ на МК Atmega8
Почитал ещё даташит. Согласен, JTAG нужно отключить. Извиняюсь, не досмотрел
По поводу тока. У нас измеряется падение напряжения на резисторе R21. Оно усиливается внутренним ОУ,работающим в дифференциальном режиме. В этом режиме можно измерять и положительное, и отрицательное напряжение.То есть, мы измеряем и зарядный,и разрядный ток.
Коэффициент усиления этого ОУ мы выставляем=10 при токе больше 1А и =200 при токе меньше 1А. При обработке результатов измерений, это учитывается. Нужный ток разряда устанавливается с помощью ШИМ, то есть ток разряда-импульсный, что требует специального подхода к его измерению. Я сейчас собираю готовое устройство и буду дорабатывать программу. Зарядный ток-постоянный, поэтому измеряться должен гораздо точнее. Если ток не измеряется при значениях ниже 1А, то есть когда КУ=200, возможно, проблемы с МК. Были такие случаи. Поэтому, нужно брать с буквой А , т.е. ATmega16A, именно так рекомендует ATMEL.
По поводу тока. У нас измеряется падение напряжения на резисторе R21. Оно усиливается внутренним ОУ,работающим в дифференциальном режиме. В этом режиме можно измерять и положительное, и отрицательное напряжение.То есть, мы измеряем и зарядный,и разрядный ток.
Коэффициент усиления этого ОУ мы выставляем=10 при токе больше 1А и =200 при токе меньше 1А. При обработке результатов измерений, это учитывается. Нужный ток разряда устанавливается с помощью ШИМ, то есть ток разряда-импульсный, что требует специального подхода к его измерению. Я сейчас собираю готовое устройство и буду дорабатывать программу. Зарядный ток-постоянный, поэтому измеряться должен гораздо точнее. Если ток не измеряется при значениях ниже 1А, то есть когда КУ=200, возможно, проблемы с МК. Были такие случаи. Поэтому, нужно брать с буквой А , т.е. ATmega16A, именно так рекомендует ATMEL.
Опыт- сын ошибок трудных....
Re: ЗУ для свинцовых АКБ на МК Atmega8
Я так понимаю ATMega16-16AU это другое. А проц не мог подгореть? Был момент когда сдохла кренка и на проце было 9В после этого вроде все работает (ток не помню работал до этого или нет). И ещё хотел бы узнать про переменную kor (коридор в коментариях) это что? (просто сделал ручной режим и что-то не догнал что эта переменная делает). И по поводу err10 и err200 это будущие наброски или прошлые?Слон писал(а):Почитал ещё даташит. Согласен, JTAG нужно отключить. Извиняюсь, не досмотрел![]()
По поводу тока. У нас измеряется падение напряжения на резисторе R21. Оно усиливается внутренним ОУ,работающим в дифференциальном режиме. В этом режиме можно измерять и положительное, и отрицательное напряжение.То есть, мы измеряем и зарядный,и разрядный ток.
Коэффициент усиления этого ОУ мы выставляем=10 при токе больше 1А и =200 при токе меньше 1А. При обработке результатов измерений, это учитывается. Нужный ток разряда устанавливается с помощью ШИМ, то есть ток разряда-импульсный, что требует специального подхода к его измерению. Я сейчас собираю готовое устройство и буду дорабатывать программу. Зарядный ток-постоянный, поэтому измеряться должен гораздо точнее. Если ток не измеряется при значениях ниже 1А, то есть когда КУ=200, возможно, проблемы с МК. Были такие случаи. Поэтому, нужно брать с буквой А , т.е. ATmega16A, именно так рекомендует ATMEL.
Re: ЗУ для свинцовых АКБ на МК Atmega8
доделал свою силовую часть, бп нормально работает как на хх так и при нагрузке, тишина полнейшая. но при подключении шлейфа управления (просто шлейф, без платы управления) появляется свист от наводок видимо на 2 ногу TLки, кроме как лепить экранированный шлейф чот в голову ничоне пришло
никто с подобным не сталкивался?
- Вложения
-
- DSC_0313.JPG
- (161.71 КБ) 2093 скачивания
Re: ЗУ для свинцовых АКБ на МК Atmega8
ATMega16-16AU-старая версия микроконтроллера и не рекомендуется для новых разработок. Вместо нее нужно использоватьExecutor писал(а): Я так понимаю ATMega16-16AU это другое. А проц не мог подгореть? Был момент когда сдохла кренка и на проце было 9В после этого вроде все работает (ток не помню работал до этого или нет). И ещё хотел бы узнать про переменную kor (коридор в коментариях) это что? (просто сделал ручной режим и что-то не догнал что эта переменная делает). И по поводу err10 и err200 это будущие наброски или прошлые?
ATMega16A-AU
А 9В-конечно, много. Могло и подгореть. Переменные cor, err10 и err200 - для отладки.
Опыт- сын ошибок трудных....
Re: ЗУ для свинцовых АКБ на МК Atmega8
Бывает свист. Если подключить блок управления, он исчезнет. Не нужно ничего экранировать.velant77 писал(а):доделал свою силовую часть, бп нормально работает как на хх так и при нагрузке, тишина полнейшая. но при подключении шлейфа управления (просто шлейф, без платы управления) появляется свист от наводок видимо на 2 ногу TLки, кроме как лепить экранированный шлейф чот в голову ничоне пришлоникто с подобным не сталкивался?
Опыт- сын ошибок трудных....
Re: ЗУ для свинцовых АКБ на МК Atmega8
Да с блоком управления тоже возбуд небольшой идёт, как то это напрягает, сам то бп аще тихо работает. Ещё вопрос, при нагрузке на лампу зу будет работать или токо на акб? а то пока был запрограммирован jtagen лампа сразу загоралась ))) после перепрограмирования фьюза теперь при выборе зарядки вываливается в меню (нагрузка-лампа). извеняйте если вопросы вам кажутся дурацкими но для меня это только хобби и базовое образование и специальность далеки от электроники 
Re: ЗУ для свинцовых АКБ на МК Atmega8
При сборке я забыл установить диод в цепи управления и при подключении его к БП возникал свист БП, после установки диода свист пропадал и появлялся только когда я дотрагивался до провода управления.velant77 писал(а):Да с блоком управления тоже возбуд небольшой идёт, как то это напрягает, сам то бп аще тихо работает. Ещё вопрос, при нагрузке на лампу зу будет работать или токо на акб? а то пока был запрограммирован jtagen лампа сразу загоралась ))) после перепрограмирования фьюза теперь при выборе зарядки вываливается в меню (нагрузка-лампа). извеняйте если вопросы вам кажутся дурацкими но для меня это только хобби и базовое образование и специальность далеки от электроники
По поводу лапы, у меня такого не было, только было что АКБ сразу подключался.
Просто при разных значения cor по разному управляется БП.Слон писал(а): ATMega16-16AU-старая версия микроконтроллера и не рекомендуется для новых разработок. Вместо нее нужно использовать
ATMega16A-AU
А 9В-конечно, много. Могло и подгореть. Переменные cor, err10 и err200 - для отладки.
Вот так я сделал ручное управление:
Код: Выделить всё
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 ; выводим напряжение и ток
; Сканируем клавиатуру
s225: in temp,PIND
andi temp,0b00010111
cpi temp,0b00010011 ; кнопка > нажата?
brne s115 ; нет- переходим
in temp,PIND ; ждем
andi temp,0b00010111 ; отпускания
cpi temp,0b00010111 ; кнопок
brne pc-3
inc err10 ; увеличиваем её
s115: in temp,PIND
andi temp,0b00010111
cpi temp,0b00010101 ; кнопка < нажата?
brne ManualT1
dec err10
rcall delay40
jmp ManualT1
rjmp initRe: ЗУ для свинцовых АКБ на МК Atmega8
Нашел у себя косяк. Чип кондетсатор С9 в схеме управлеия просаживал управляющий сигнал с МК, померил его сопротивление - 100 Ом, вот тебе и качество смд компонентов
теперь подсвистывает на ХХ пока не выбереш режим зарядки, после этого свист пропадает полностью. Теперь подкопленные вопросы
На ХХ свист всё равно хотелось бы убрать, может уменьшить номиналы резисторов с ноги 2? или чуть подзадрать на хх напряжение на 21 ноге мк? например 2.6В ? С нагрузкой лампой 55Вт стартовать всё равно отказывается, вываливается в меню, а вот если нажать зарядку и сразу ловко подцепить лампу, то все работает, при старте зарядки уходит в защиту? С лампой 5 Вт всё работает четко
Разница в показаниях с мультиметром по вольтажу 0.06В, по току 0.05А. пока ничего ещё не калибровал, мк mega16-16pu, так ли критично приминение мк с буквой А ?
Re: ЗУ для свинцовых АКБ на МК Atmega8
Подскажите кто нибудь что должно быть на затворе Т1иТ2.У меня относительно земли на Т1 во всех режимах 5в,зарядка 0,наТ2 в режиме тренировка от 0 до 0,25в.Короче работает только Т2.
Re: ЗУ для свинцовых АКБ на МК Atmega8
Начал разбиратся с ШИМ'ом и что-то мне кажется что несколько не правильный подход к регулированию выходного напряжения т.к. в ходе программы мы измеряем напряжение или ток и в прерывании мы их обрабатываем (прибавляем или уменьшаем состояние OCR2) и так-как прерывание выполняется намного чаще мы получаем: измерили напряжение оно равно (допустим) 10 В, а нам нужно 12 В, при попадании в прерывание мы смотрим на измеренное напряжение (10 В) и пытаемся его поднять (до 12 В) и пока у нас произойдёт следующее измерение напряжение, наше прерывание раскачигарит наш БП скажем до 14 В. И тут происходит измерение и опять начинается тоже самое, но в обратную сторону. И так (по крайней мере в моём случае) происходит постоянная беготня, то повысит напряжение то опустит. (может это только у меня).
P.S. Пока думаю как от этого избавиться.
P.S. Пока думаю как от этого избавиться.
Re: ЗУ для свинцовых АКБ на МК Atmega8
Вот для этого и нужна переменная cor (коридор) . Если напряжение (ток) попадает в нужный диапазон (коридор), состояние OCR не меняем. Такая задумка была.Executor писал(а):Начал разбиратся с ШИМ'ом и что-то мне кажется что несколько не правильный подход к регулированию выходного напряжения т.к. в ходе программы мы измеряем напряжение или ток и в прерывании мы их обрабатываем (прибавляем или уменьшаем состояние OCR2) и так-как прерывание выполняется намного чаще мы получаем: измерили напряжение оно равно (допустим) 10 В, а нам нужно 12 В, при попадании в прерывание мы смотрим на измеренное напряжение (10 В) и пытаемся его поднять (до 12 В) и пока у нас произойдёт следующее измерение напряжение, наше прерывание раскачигарит наш БП скажем до 14 В. И тут происходит измерение и опять начинается тоже самое, но в обратную сторону. И так (по крайней мере в моём случае) происходит постоянная беготня, то повысит напряжение то опустит. (может это только у меня).
P.S. Пока думаю как от этого избавиться.
Опыт- сын ошибок трудных....


