Страница 3 из 10

Re: Передача данных из множества ATtiny13A в один ATmega328P

Добавлено: Чт фев 21, 2019 20:15:27
Albert_V
ПростоНуб писал(а):И даже в Чип&Дип далеко не $8 https://www.chipdip.ru/product/max485esa-t-maxim
И как вы их "сведёте" по уровню GND? Это не ADM2582 с гальваноразвязкой...
Если советуете поставить MAX485 - рисуйте схему на основе схемы от Combatos.

Re: Передача данных из множества ATtiny13A в один ATmega328P

Добавлено: Чт фев 21, 2019 22:13:09
Combatos

Re: Передача данных из множества ATtiny13A в один ATmega328P

Добавлено: Чт фев 21, 2019 23:57:34
ПростоНуб
[uquote="Albert_V",url="/forum/viewtopic.php?p=3575341#p3575341"]И как вы их "сведёте" по уровню GND?[/uquote]
А зачем? RS422/RS485 передает данные по паре сигнальных проводов с помощью дифференциальных сигналов. Разница напряжений между проводниками одной полярности означает логическую единицу, разница другой полярности — ноль. Земля тут совершенно не при чем.

Отличие в схеме только в том, что:
- вместо каждой пары PC817 ставим MAX481/485
- еще один MAX481/485 ставим на вход ATmega
- все MAX481/485 соединяем общей витой парой
Combatos писал(а):Ну, у наc так
А кто Вам запрещает приобрести товар прямо по ссылке, которую я опубликовал? Я тоже не в Китае живу )

Re: Передача данных из множества ATtiny13A в один ATmega328P

Добавлено: Пт фев 22, 2019 00:03:57
Albert_V
ПростоНуб писал(а):RS422/RS485... ...Разница напряжений между проводниками одной полярности означает логическую единицу, разница другой полярности — ноль. Земля тут совершенно не при чем.
Это щутка юмора?
Если вы это утверждаете на полном серьёзе - физически берите пару MAX485, между их GND сделайте смещение вольт так 100 (это я ещё добрый) и включайте между ними связь по RS-485.

Re: Передача данных из множества ATtiny13A в один ATmega328P

Добавлено: Пт фев 22, 2019 00:16:40
ПростоНуб
[uquote="Albert_V",url="/forum/viewtopic.php?p=3575446#p3575446"]Это щутка юмора?[/uquote]
Нет, просто глупость сморозил. Не обратил сразу внимание, что потенциалы земли в данной схеме уже разные у каждого трансивера.

Re: Передача данных из множества ATtiny13A в один ATmega328P

Добавлено: Пт фев 22, 2019 00:18:54
Albert_V
Бывает. Проехали.
Главное, чтоб другие так не ошибались с реальным "железом"...

Re: Передача данных из множества ATtiny13A в один ATmega328P

Добавлено: Пн фев 25, 2019 09:03:42
Combatos
Перерисовал схему в целях уменьшения нагрузки на 431, светодиод оптрона и резистор подтяжки теперь подключены до стабилизатора. Вопрос: будет ли адекватно работать тинька по такой схеме?
Схема TinyBMS_last.JPG
(230.41 КБ) 318 скачиваний

Re: Передача данных из множества ATtiny13A в один ATmega328P

Добавлено: Пн фев 25, 2019 12:08:34
Albert_V
Проблема с транзистором, у которого в коллекторе 4х47, так и осталась.
Проверка простая: Вместо 4-ёх резисторов по 47 Ом подключаете светодиод с сопротивлением (для индикации) и подаёте с ЛБП напряжение от 3В до 4,3В (вместо аккумулятора).
Увидите, что при напряжении более 3,9В (приблизительно) светодиод включится и программно вы его уже не выключите.
P.S.
Чтоб было проще понять почему так:
Изображение

Re: Передача данных из множества ATtiny13A в один ATmega328P

Добавлено: Пн фев 25, 2019 12:49:09
Combatos
Понял. Как победить, что посоветуете? Транзистор можно и другой, главное, чтобы недорогой и надежно работал.

Re: Передача данных из множества ATtiny13A в один ATmega328P

Добавлено: Пн фев 25, 2019 12:53:18
Albert_V
Так поставьте полевик с N-каналом на GND, а резисторы перенесите на +АСС. Управление проинвертируйте в программе.
Из дешёвых полевиков - например IRLML2502...

Re: Передача данных из множества ATtiny13A в один ATmega328P

Добавлено: Пн фев 25, 2019 12:56:57
GoldenAndy
1. Смотрите. у вас питание тиньки стабилизируется на уровне 2.5 вольта.
Т.е. на 5 ноге максимальное напряжение будет 2.5 вольта. А на эммитере ВСХ53 напряжение может быть и 4.3 вольта. Итого - как бы вы не игрались с уровнем на 5 ноге - в определенный момент (я бы даже сказал, не при 3.9 вольта, а при 2.5+0.6=3.1 вольта транзистор начнет открываться. (хотя в данном случае такого не будет - причина описана в пункте 2.)
Как решать: поменяйте транзистор ВСХ53 на другой, NPN структуры. Или N-channel-полевик, как предложили выше. Эммитер в землю, коллектор на резисторы 4х47, 4х47 другим концом - в плюс батареи.
тем самым управление тестовой нагрузкой будет лог.1-вкл, лог.0- выкл и не будет зависеть от уровня питания.

2. По текущей схеме стабилизация питания бесполезна. Ибо все напряжение батареи, что выше напряжения стабилизации 431, попадет в шину питания МК через резистор 470 ом и внутренний защитный диод на 7 выводе (Rx). А диод этот слабенький.
Т.е. по сути вы будете питать тиню через резистор 470 ом и диод. И никакой стабилизации питания. Пока этот защитный диод не склеит ласты. После этого стабилизации питания все равно не будет, но перестанет работать Rx.
А вот если вы повесите этот резистор между 7 и 8 выводами - тогда все будет красиво.

Re: Передача данных из множества ATtiny13A в один ATmega328P

Добавлено: Пн фев 25, 2019 13:01:05
Albert_V
Тут вообще "просится" контроллер, у которого напряжение питания 2,5-5В и есть внутренний "опорник" (или возможность подключить внешний).
На ATtiny13A свет клином не сошёлся...

Re: Передача данных из множества ATtiny13A в один ATmega328P

Добавлено: Пн фев 25, 2019 13:20:31
GoldenAndy
Кстати, те же мысли и по резистору в Тх-цепи. Он повешен на питание, которое превышает питание тиньки.
И 4.3 вольта попадут в шину питания тиньки через светодиод передающего оптрона. 4.3-2.5=1.8 вольта. хватит, что бы светодиод начал светиться (не сильно, ибо тинька жрет немного), но фототранзистор приоткроется.
Как лечить ? Вешать анод светодиода через резистор на +2,5 вольта.
Либо ставить мелкий n-полевик или слабый n-p-n транзистор, что бы катод светодиода коммутировать на землю. Но в программе Тх надо будет инвертировать (что не больно, ибо UART софтовый)

Добавлено after 4 minutes 45 seconds:
[uquote="Albert_V",url="/forum/viewtopic.php?p=3577689#p3577689"]Тут вообще "просится" контроллер, у которого напряжение питания 2,5-5В и есть внутренний "опорник" (или возможность подключить внешний).
На ATtiny13A свет клином не сошёлся...[/uquote]

У тини 13 есть ИОН. 4-channel, 10-bit ADC with Internal Voltage Reference

Но 431 опора лучше, имхо.

В этом случае можно применить тиню 25/45/85. Она уже умеет принимать и внешнюю опору на отдельный вывод. А по ногам совпадает с тини13.

Добавлено after 8 minutes 41 second:
И, кстати.
Все "лишнее" питание, что будет приходить через резистор Rx (и частично Тх), TL431 будет пытаться на себе погасить. что задерет потребляемый ток до (4.3-2.5)/470 = 3.8ма. Для ТЛки это не смертельно. Но защитные диоды в АВРках, по некоторым сведениям, долговременно держат не более 1 ма.
Ну и плюс, постоянные почти 4 ма от батареи - кому нужен лишний ток?

Вдогонку, если нагрузочные резисторы будете коммутировать полевиком - то и делитель подключите через этот транзистор. Что бы делитель не жрал, когда не меряете.

Если примените х5 тиню для применения TL431 в качестве опорника для АЦП, а не для питания, то и TL-ку можно коммутировать этим же транзистором. Тогда в режиме сна у вас вообще ничего не будет кушать, кроме самой тиньки.

Re: Передача данных из множества ATtiny13A в один ATmega328P

Добавлено: Пн фев 25, 2019 13:29:13
OKF
ТС клал на потребление. У его электротранспорта огромные аккумуляторы.

Re: Передача данных из множества ATtiny13A в один ATmega328P

Добавлено: Пн фев 25, 2019 13:49:41
GoldenAndy
OKF, вспоминается один из первых серийных гибридных авто (вроде как Приус), который нельзя было завести, если он постоял месяц. Ибо не хватало накопительной батареи крутануть ДВС... Это к саморазряду и разряду всякими контроллерами.

Да и речь не про разряд, а про паразитное питание через неправильное место.

Из личного опыта. Пришлось как то поставить на 2 месяца машину в гараж. Через 2 месяца не смог завести. Из нагрузки - всё штатное, кроме магнитолы. А за 2 месяца батарейка подсела и всё...

Re: Передача данных из множества ATtiny13A в один ATmega328P

Добавлено: Пн фев 25, 2019 15:04:17
Combatos
[uquote="Albert_V",url="/forum/viewtopic.php?p=3577689#p3577689"]Тут вообще "просится" контроллер, у которого напряжение питания 2,5-5В и есть внутренний "опорник" (или возможность подключить внешний).
На ATtiny13A свет клином не сошёлся...[/uquote]

У ATtiny13A по даташиту напряжение питания 1.8-5.5В (до 4 МГц) и есть внутренний опорник 1.1В. И дешевле его нет AVR.

Добавлено after 7 minutes 23 seconds:
Такой транзюк прокатит : AO3400A (https://voron.ua/catalog/028907) ?

Добавлено after 4 minutes 24 seconds:
[uquote="OKF",url="/forum/viewtopic.php?p=3577715#p3577715"]ТС клал на потребление. У его электротранспорта огромные аккумуляторы.[/uquote]

Ну, не то, чтобы клал.. Опять же, теория - это хорошо, но посмотрим, что скажет практика. Сейчас просто определяюсь со схемой и компонентами, чтобы разработать печатку, хотя-бы тестовый вариант.

Re: Передача данных из множества ATtiny13A в один ATmega328P

Добавлено: Пн фев 25, 2019 15:04:57
GoldenAndy
Если вы готовы положиться на точность внутренней опоры тиньки 13 - то зачем вам тогда ТЛка по питанию ?

Транзистор ? N-CH 30V 5.7A SOT23 26.5 mOhm @ 5.7A, 10V.
Вроде 27 мОм при 2.5 вольтах на затворе.... Теоретически - да.

Re: Передача данных из множества ATtiny13A в один ATmega328P

Добавлено: Пн фев 25, 2019 15:11:33
Combatos
[uquote="goldenandy",url="/forum/viewtopic.php?p=3577790#p3577790"]Если вы готовы положиться на точность внутренней опоры тиньки 13 - то зачем вам тогда ТЛка по питанию ?[/uquote]

ИОН в тиньке можно калибровать. А 431 нужен для стабилизации скорости UART, но попробую и без него, вдруг получится? :)

Re: Передача данных из множества ATtiny13A в один ATmega328P

Добавлено: Пн фев 25, 2019 15:39:43
GoldenAndy
Смотрите. из ДШ (Figure 19-59. Calibrated 9.6 MHz RC Oscillator Frequency vs. Temperature)
Изображение
частота внутреннего осциллятора в диапазоне -40°..+80°С и питании 1.8..5.5 вольт может гулять от 9,05МГц до 9,85МГц при нормальной 9.6 МГц. Или -5.7% +2,6%.
Причем частота гораздо сильнее зависит от температуры, нежели от питания.
В принципе, в диапазоне -20°..+60° можно уложиться в -4%+2%, что уже позволит работать с UART'ом.

Но основная проблема будет крыться в том, что начальная частота может отличаться от 9.6 МГц.
И без ручной калибровки никак не обойтись.

Либо ловить от мастера синхросмесь и по ней понимать, какая у нас текущая тактовая частота и какие нужны задержки для передачи... А тут вам может не хватить памяти программной на реализацию такого функционала. Ибо Тини13 - мелкая. И всего 512 команд в памяти помещается...

Про ИОН - его тоже надо калибровать. Причем изнутри его откалибровать проблемно. Плюс внутренний ион тоже будет плавать от температуры и питания.
Изображение

--------------
Вопрос ко всем. Если скорость передачи по UART уменьшить, допустим, до 1200 бод, позволит ли это в большей степени игнорировать нестабильность тактовой частоты МК?

Re: Передача данных из множества ATtiny13A в один ATmega328P

Добавлено: Пн фев 25, 2019 17:57:04
Combatos
Схема TinyBMS_last.JPG
(210.41 КБ) 458 скачиваний
Вроде все замечания учёл.