ЗУ для автомобильных аккумуляторов на Atmega8

Блоки питания, преобразователи напряжения, UPS'ы - это здесь :)
Аватара пользователя
Starichok51
Модератор
Сообщения: 19039
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Сообщение Starichok51 »

флаги прерываний выставляются ВСЕГДА. но если конкретное прерывание запрещено, оно не вызовется.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Аватара пользователя
вани
Открыл глаза
Сообщения: 47
Зарегистрирован: Пн янв 23, 2012 17:04:50
Откуда: Казахстан,Кустанай

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Сообщение вани »

Собрал данное устройство .Подключаю АК.батарею и ток отображается 00.6А.Все настройки произвел по описанию.Автор подскажите что не так с lm358.Перем.рез.по току уменьшить не удаётся.
alex_iag
Открыл глаза
Сообщения: 43
Зарегистрирован: Вт июн 27, 2017 21:56:58

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Сообщение alex_iag »

[uquote="вани",url="/forum/viewtopic.php?p=3401460#p3401460"]Собрал данное устройство .Подключаю АК.батарею и ток отображается 00.6А.Все настройки произвел по описанию.Автор подскажите что не так с lm358.Перем.рез.по току уменьшить не удаётся.[/uquote]
Проверяй всю цепь измерения тока. При подключенной батарее без начала заряда ток всегда 0.0А, и как не крути подстроечник ничего не измениться, через шунт ток не течёт. А АЦП у тебя меряет какое-то падение на шунте, по сути это заряд не идет, а падение напряжения есть, т.е. вся цепь измерения неисправна. Если плату разводил сам, то может выводы контроллера перепутал. Может тиристор приоткрывается, КЗ (т.е. сопля) где-то между проводниками. Может не работаем преобразование -5В (что скорее всего). Гадать можно долго, проверяй железо.

Добавлено after 50 minutes 23 seconds:
Всем привет.
Пошел маленький дождишко, лодырям отдышка. Вот и у меня появилось время выложить свой вклад в общее дело.
Выкладываю исходник на С. Функционал полностью исходный + небольшие доработки (для себя, а там может кому и понравится).
Аппаратная часть идентична авторской, за одним исключением. У автора LCD 0802 (судя по фото и по исходнику), т.е. на 8 символов в строке, а у меня классический 1602, т.е. 16 символов в строке. Соответственно под него и сделано. У него 2 недостатка: 1-й - нет подсветки, что не сильно критично (поэтому на плате поставил 78l05, вместо 7805, такой мощный не нужен), 2-й - в нет кирилицы, поэтому все сообщения на аглицком. В некоторых словах сознательно сделаны ошибки и выброшены некоторые вспомогательные глаголы. Всё для того, что бы вместить в длину строки LCD.
Если все же кому нужно будет моё творение на LCD 0802 могу допилить.
Теперь о том, что дополнено:
1. У нас частенько выключают свет. Поэтому если такое случилось, после включения ЗУ перейдет в тот же режим в котором оно выключилось. Если был заряд, то с тем током, который был выставлен энкодером.
Если режим хранения, то он продолжится. Если был в режиме какой-либо ошибки, то сообщит что до выключения была ошибка, и будет ждать когда снимут клеммы с батареи.
2. Если подключаемая батарея убита и у неё напряжение меньше 9В, то заряжать не даст, сообщив об этом. Но если все же хочется заряжать такую батарею, то перед включением 220в удерживайте нажатым энкодер до первого сообщения на экране, блокировка будет отключена.
3. Если при какой-либо внештатной ситуации сработает WDT, что при нормальной работе не должно происходить в принципе, высветится сообщение об этом (типа BSOD в windows) и будет ждать когда снимут клеммы с батареи. Я долго думал сообщать или продолжить прерванный режим, не мог решить как поступить, выбрал сообщение.
Если у кого есть кирилица в LCD можете загрузить прошивку для неё.
Для настройки можно временно скомпилить и зашить пока настаивается с разкомментированным определением #define _TUNE_ADC_, это даёт следующее. Значение напряжения и тока выводятся не преобразованными в В и А, а в значениях измеренными АЦП. Так можно точнее настроить. Например: измеряем напряжение мультиметром, допустим 12.26В () и переводим в значение АЦП = ЦЕЛОЕ(12.26 * 100 / 6) = 204. Для тока формула та же. После настройки зашиваем рабочую прошивку. Если измерение тестером до десятых, все это не имеет смысла делать.
Язык сообщений выбираем закомментировано или нет определение #define _RU_
Если разводке платы перепутали ноги энкодера (как я например), можно разрезать дорожки и запаять проводами, а можно скомрилить с разкомментированным определением #define _SWAP_ENCODER_BITS_.

Написано для кварца 8МГц, если ставите другой, то в определении зайте свою частоту кварца #define F_CPU 8000000UL. Все задержки будут пересчитаны под неё.

Ну и для понтов (как же без них), в процессе зарядки выводится прогресс-бар напряжения. Шкала растянутая от 9В до 14.4В.


Исходник на С, и прошивки для EN и RU прилагаю. Компилил в AtmelStudio 7.0, но думаю и в 6 и в 5 скомпилится без ошибок.
Фьюзы те же, как у автора.
Если что не так пишите поправлю или подскажу.
Вложения
z_m8_44780_1602.7z
(21.95 КБ) 855 скачиваний
Sokol
Открыл глаза
Сообщения: 45
Зарегистрирован: Ср июл 02, 2008 10:22:01

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Сообщение Sokol »

Уважаемый alex_iag у Вас актуальные доработки, у нас в гаражах отключают свет с 23:00 до 5:00, и делаю на индикаторе 0802 и хотелось что-бы вы допилили для него. И вы делали на плате от автора или на своей.
alex_iag
Открыл глаза
Сообщения: 43
Зарегистрирован: Вт июн 27, 2017 21:56:58

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Сообщение alex_iag »

Спасибо за оценку.
Плату разводил сам для себя. У меня контакты индикатора в один ряд снизу (типа такого https://ru.aliexpress.com/item/1PCS-LCD ... autifyAB=0), контроллер в корпусе DIP28, поэтому разъём программирования не ставил, мс 7660 тоже в корпусе DIP (такую привезли под заказ). Реле вынес на плату с маломощным трансом, не люблю, когда на плате, которую берешь свободно руками присутствует 220В (брр от ударов шерсть дыбом). Если есть желание, могу выложить.
Хорошо, допилю на 0802, но необходимо немного времени. По готовности выложу.
vvoleg
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Чт сен 03, 2009 23:03:08
Откуда: Украина. Черкасская область

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Сообщение vvoleg »

Уважаемый alex_iag! Платой поделитесь? Думаю многие присоединятся к просьбе... Спасибо!
Sokol
Открыл глаза
Сообщения: 45
Зарегистрирован: Ср июл 02, 2008 10:22:01

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Сообщение Sokol »

alex_iag исходя из вашей ссылки на индикатор расположение выводов сверху. Присоединяюсь к просьбе vvoleg выложите пожалуйста свои платы. Ну а индикатор можно и поменять, если будут какие нибудь доработки можно попробовать перевести в I2C, освободятся контакты МК (возможно для дополнительных кнопок) хотя мне зарядное понравилось из-за своей простоты. Есть собранное зарядное и БП от ока275, но иногда надо попроще.
alex_iag
Открыл глаза
Сообщения: 43
Зарегистрирован: Вт июн 27, 2017 21:56:58

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Сообщение alex_iag »

Я честно не особо присматривался к картинке которую привел. Он похож. У меня контакты расположены подобным образом, только вдоль нижнего края с левой стороны если смотреть на лицевую сторону. Вернусь домой плату выложу.

Добавлено after 6 hours 16 minutes 5 seconds:
Прилагаю свою плату, вернее набор плат. Все платы заточены под элементы, которые у меня нашлись (на платах UPSов, принтеров, мониторов и прочего) или привез магазин по заказу, то и поставил.
Шунт сделал из 10 резисторов 1Вт, увы других не было, и smd тоже. Т.к. подсветки в LCD нет, то установлен 78l05.
Плата с микроконтроллером нарисована исходя из того, что верхним принят слой где smd элементы, а слой с микроконтроллером, энкодером, LCD и прочим назначен нижним.
Это 2-й вариант платы с учетом ошибок, которые я сделал делаю своё зарядное. В ней исправлены все допущенные ошибки.

По мимо этого дополнены следующие элементы:
1. Параллельно С8 установлен конденсатор на 0,1мкф
2. на ноги энкодера А,В,2 также добавлены конденсаторы на 0,06 - 0,1мкф для уменьшения дребезга контактов.
Выполнено в SprintLayout 6.0, 5-й его на прочтет, а 6-й в 5-й не сохраняет. Для этого прилагаю viwer для SL6, он свободный. Сам SL6 здесь выкладывать не буду, сочтут как распространителя пиратского ПО. Поэтому либо скачайте на просторах интернета либо выложу куда скажите.
Вложения
фоточки.7z
Фотки платы
(529.92 КБ) 1074 скачивания
Sprint-Layout60_Viewer.7z
(891.26 КБ) 805 скачиваний
Зарядное_m8_44780.7z
Сама плата
(71.31 КБ) 1166 скачиваний
Sokol
Открыл глаза
Сообщения: 45
Зарегистрирован: Ср июл 02, 2008 10:22:01

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Сообщение Sokol »

alex_iag спасибо за платы и фотографии, у меня пару штук 0802 валяются без дела поэтому и сделать хочу на них.
alex_iag
Открыл глаза
Сообщения: 43
Зарегистрирован: Вт июн 27, 2017 21:56:58

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Сообщение alex_iag »

Вот и закончены доработки для 0802. Прилагаю к этому посту следующие прошивки:
1 - Zaryadnoe_m8_44780_en1602.hex и Zaryadnoe_m8_44780_en0802.hex для сообщений на аглицком
2 - Zaryadnoe_m8_44780_ru1602.hex и Zaryadnoe_m8_44780_ru0802.hex для сообщений на русском.
Соответственно выбирайте 1602 или 0802.
Сообщения на русском выводятся согласно следующей кодировке (вреде бы она основная для русифицированных LCD):
Изображение

Теперь немного ещё о плате. На ней есть такое место
Изображение
это если D10 не получится найти в smd корпусе, то можно впаять в стеклянном, для этого и предусмотрены отверстия с контактами.
Перемычка на индуктивности создана только для тестирования связей в SprintLayout, в железе она не нужна.

С русской кодировкой не проверял в железе, только в отладчике, по причине отсутствия такого LCD у меня.
Вложения
Zaryadnoe_m8_44780_ru0802.hex
(12.84 КБ) 735 скачиваний
Zaryadnoe_m8_44780_ru1602.hex
(13.12 КБ) 776 скачиваний
Zaryadnoe_m8_44780_en0802.hex
(12.49 КБ) 681 скачивание
Zaryadnoe_m8_44780_en1602.hex
(12.9 КБ) 535 скачиваний
alex_iag
Открыл глаза
Сообщения: 43
Зарегистрирован: Вт июн 27, 2017 21:56:58

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Сообщение alex_iag »

Сотоварищи. При доработке на 0802 я допустил ошибку в логику вывода сообщений и при тестировании не заметил. При выключении зарядки (задав ток =0) зарядка оканчивалась, но не выводилось сообщение.
Ошибку исправил. Исправленные прошивки прилагаю.
В качестве бонуса также прилагаю прошивки для эмуляции русских букв на LCD в котором русского шрифта нет. У меня такой и сообщения на аглицком меня малость не удовлетворяли. Вот и запилил.
Из минусов такой эмуляции:
1 - на экране не более 8 символов для эмуляции не совпадающих по виду а аглицкими, ели больше, то вместо буквы выводится *
2 - только заглавные буквы
3 - от прогресс-бара в 1602 пришлось отказаться (он также эмулируется, а места в LCD нет)
Прошивки в архивах по группам на 1602 и 0802
Вложения
1602.7z
(9.02 КБ) 645 скачиваний
0802.7z
(8.74 КБ) 493 скачивания
Аватара пользователя
Starichok51
Модератор
Сообщения: 19039
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Сообщение Starichok51 »

alex_iag писал(а):на экране не более 8 символов для эмуляции не совпадающих по виду а аглицкими, ели больше, то вместо буквы выводится *
нужно перед каждым выводом заново записывать в графическую память нужные буквы.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
alex_iag
Открыл глаза
Сообщения: 43
Зарегистрирован: Вт июн 27, 2017 21:56:58

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Сообщение alex_iag »

Да так-то и делается. После очистки буфер эмуляции очищается. При выводе, если не совпадает по начертанию с латиницей, то заносим в буфер эмуляции. Но беда в том, что в общем эмулировать нужно 19 букв, а буфер максимум 8. Вот поэтому, если на экране нужно отобразить одновременно белее 8 эмулированных букв, то они выводятся *. Благо среди них много не часто используемых, типа ПЮЪЬ.
Аватара пользователя
Starichok51
Модератор
Сообщения: 19039
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Сообщение Starichok51 »

я же сказал: перед выводом заново записывать буквы в графическую память.
а по очереди можно записать хоть 100500 букв, а не только 19...
записал нужные - вывел. записал следующие нужные - опять вывел. и так сколько угодно букв выведешь.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
alex_iag
Открыл глаза
Сообщения: 43
Зарегистрирован: Вт июн 27, 2017 21:56:58

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Сообщение alex_iag »

Неправда Ваша.
Провел эксперимент, ещё раз скурил datasheet. Мои утверждения подтвердились. И в протеусе и в железе.
Код символа выводимого на экран хранится в DDRAM, а то как он выглядит хранится в CGROM и это эти данные нельзя изменить. Для нас доступны только 8 ячеек CGRAM. Содержимое экрана динамически обновляется. Как только мы заменим данные о виде символа в CGRAM он сразу изменит своё начертание на экране.
Поэтому нельзя отобразить ОДНОВРЕМЕННО более 8 своих символов. Очистил экран, отображай другие, которые актуальны для нового сообщения.
Аватара пользователя
Starichok51
Модератор
Сообщения: 19039
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Сообщение Starichok51 »

твоя неправда.
твои 8 символов хранятся в CGRAM. и к CGROM они никакого отношения не имеют.
и в CGRAM ты эти 8 символов можешь записывать сколько угодно раз.
более того, даже не обязательно использовать все 8 записываемых символов в CGRAM. вполне достаточно ОДНОГО программируемого символа.
и никто не мешает при динамическом обновлении экрана сначала записать ОДИН символ в CGRAM, потом его вывести, потом записать следующий, опять его вывести, и так до бесконечности...
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
alex_iag
Открыл глаза
Сообщения: 43
Зарегистрирован: Вт июн 27, 2017 21:56:58

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Сообщение alex_iag »

Возможно мы друг друга не понимаем, ходим вокруг одного дома, но каждый со своей стороны.
Давай так.
1 - Для кода символа 0 заполняем CGRAM (как он будет выглядеть, допустим' Б'). Выводим в позицию 0,0 код символ с кодом 0.
2 - Символ 'Б' на экране видим. ОК
3 - Для кода символа 0 заново заполняем CGRAM с кодом символа 'Г'. Ничего на экран не выводим, но что видим?
По твоему в позиции 0,0 будет отображена 'Б', а по моему 'Г'. Отображаемый символ поменялся, а мы ничего на экран не выводили.
Запись в ячейку для символа 8, заменяет данные для символа 0 и т.д.
Все это проверено в железе. Можешь проверить или поверь на слово.
Аватара пользователя
Starichok51
Модератор
Сообщения: 19039
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Сообщение Starichok51 »

alex_iag писал(а):3 - Для кода символа 0 заново заполняем CGRAM с кодом символа 'Г'. Ничего на экран не выводим, но что видим?
если ничего не выводим, то на экране остается "Б".
операция вывода перемещает коды символа из CGRAM в DDRAM. а без вывода символа "Г" в DDRAM остался символ "Б".
сам поверь или проверь...
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
alex_iag
Открыл глаза
Сообщения: 43
Зарегистрирован: Вт июн 27, 2017 21:56:58

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Сообщение alex_iag »

Только я прежде чем написать предыдущий пост набросал код и проверил его в железе. Результат проверки я там изложил. А там хочешь верь, а хочешь считай по своему.
Но мне кажется, что Вы неверно понимаете как отображаются символы на экране. В DDRAM только коды символов, а в CGRAM и CGROM то, как они выглядят на экране. Из CGRAM в DDRAM НИЧЕГО НЕ ПЕРЕНОСИТСЯ. CGRAM это просто знакогенератор, описание внешнего облика символа для соответствующего кода символа находящегося в DDRAM.
Если бы было так просто, то зачем выпускать с разными кодировками. Загнал свою и пользуйся. Ан нет, только то, что производитель залил, то и есть. Ну для утешения маленькая лазейка для своих нужд.

Ну чтож пусть каждый останется при своём мнении.
Аватара пользователя
Starichok51
Модератор
Сообщения: 19039
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Сообщение Starichok51 »

согласен, я был не прав. давно с этим экраном не работал. забыл, что в DDRAM хранятся только номера символов, а не их полные коды.
прошу извинения.
но все равно все 19 русских букв одновременно не нужны. поэтому в другом состоянии экрана (устройства) можно сначала запрограммировать другие 8 букв, а потом их вывести.
я не знаю всех состояний экрана в твоем устройстве, поэтому я не знаю, сколько таких русских букв нужно тебе одновременно...
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Ответить

Вернуться в «Питание»