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

Обсуждаем контроллеры компании Atmel.
Combatos
Открыл глаза
Сообщения: 63
Зарегистрирован: Пн дек 29, 2014 21:29:32

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

Сообщение Combatos »

Напрямую нельзя. Вы же ставите резисторы последовательно со светиками, здесь тоже самое. Можно, поставить "цифровые". К слову, BCX53 это PNP и стрелку эмиттера нужно нарисовать как у транзистора TxD.

Да, с эмиттером ошибся, но это машинально, а не по незнанию.. А насчет отсутствия резисторов в базах для упрощения схемы исходил из того, что питание тиньки всего 2,5В и выходной ток портов там аппаратно ограничен на уровне 10 мА вроде бы.
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

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

Сообщение Kavka »

Схема TinyBMS.JPG
Ммм... Постоянно включенные резисторный делитель и "стабилитрон"!? Ладно еще, делитель. Но зачем стабилизировать питание?
IMHO лишние потребители электичества ни к чему на аккумуляторном питании.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
OKF
Это не хвост, это антенна
Сообщения: 1383
Зарегистрирован: Вт июн 07, 2011 08:03:18

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

Сообщение OKF »

Да, стабилизатор не нужен. Делитель к пину 13, что бы отключать. Подтяжка 470 не нужна.
Видно что ТС не знает как делать софтовый TX, вот и будет тулить 24 оптрона одной кучей.(
И я бы спал всю дорогу, а просыпался бы от мастера. А значит INT нужно к оптрону, а ни что попало.
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

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

Сообщение Kavka »

выходной ток портов там аппаратно ограничен на уровне 10 мА
Такого в спецификации на тиньку нет.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Combatos
Открыл глаза
Сообщения: 63
Зарегистрирован: Пн дек 29, 2014 21:29:32

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

Сообщение Combatos »

Да, стабилизатор не нужен. Делитель к пину 13, что бы отключать. Подтяжка 470 не нужна.
Видно что ТС не знает как делать софтовый TX, вот и будет тулить 24 оптрона одной кучей.(
И я бы спал всю дорогу, а просыпался бы от мастера. А значит INT нужно к оптрону, а ни что попало.


UART то программный! Кварца нет, внутренний RC-генератор в тиньке весьма нестабильный, питание понизится - частота уплывет, и попрут ошибки. У тиньки ИОН 1,1В, поэтому делитель рассчитан на макс. измеряемое напряжение 4,3В (чтобы можно было использовать на батареях не только LiFePO4, а и LiIon, LiPo). Что за пин 13 (8 ног всего)? Почему подтяжка 470 не нужна? Что, хватит мол, внутреннего 100 кОм? Ведь чем ниже сопротивление резистора подтяжки, тем большей скорости UART можно добиться, нет? Насчет INT согласен, разумно.
OKF
Это не хвост, это антенна
Сообщения: 1383
Зарегистрирован: Вт июн 07, 2011 08:03:18

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

Сообщение OKF »

Программный на МАСТЕРЕ! Тут то само собой. Кто мешает подстраиваться по скорости, если напряжение гуляет!
Пин ТИНИ13! И что 9600 мало, 115200 нужно или у нас объёмы? И почему 100к, а не 200!(((
Combatos
Открыл глаза
Сообщения: 63
Зарегистрирован: Пн дек 29, 2014 21:29:32

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

Сообщение Combatos »

Программный на МАСТЕРЕ! Тут то само собой. Кто мешает подстраиваться по скорости, если напряжение гуляет!
Пин ТИНИ13! И что 9600 мало, 115200 нужно или у нас объёмы? И почему 100к, а не 200!(((


Зачем программный на мастере, если там аппаратный присутствует? Как подстраиваться по скорости от напряжения, практическая реализация? Даже 4800 хватит, но на этих дешевых оптронах боюсь не получится без резисторов подтяжки.
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

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

Сообщение akl »

Подтяжка 470 не нужна... А значит INT нужно к оптрону, а ни что попало.

PCINT - прекрасно справится с выходом из сна. Стабилизатор нужен. Внешний резистор подтяжки на RX 470 нужен.
OKF
Это не хвост, это антенна
Сообщения: 1383
Зарегистрирован: Вт июн 07, 2011 08:03:18

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

Сообщение OKF »

Затем что бы 24-мя оптронами на мигать одновременно. Это ж какую психику нужно иметь... Прям, цветомузыка. Оптронная.)
Почитайте Lin хотя бы. А вам вообще никто не мешает договориться с мастером и настраиваться по нему. Либо, тупо построить таблицу с коэффициентами для формирования задержки в зависимости от напряжения питания. Либо, тупо подстравивать OSCCAL в зависимости от напряжения...
Конечно на 4800 не получится. Так может попробовать надо?
Ну если PCINT справится - какие вопросы. Делайте!
Тут вообще, если вам не важно потребление, то тогда и дискутировать смысла нет.
Combatos
Открыл глаза
Сообщения: 63
Зарегистрирован: Пн дек 29, 2014 21:29:32

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

Сообщение Combatos »

Затем что бы 24-мя оптронами на мигать одновременно.


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

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

Сообщение Starichok51 »

если частота меняется, то тут надо разрабатывать какой-то аналог 1-wire, где длительность может меняться в широких пределах.
конечно, упрощенный аналог, точная копья не нужна.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
OKF
Это не хвост, это антенна
Сообщения: 1383
Зарегистрирован: Вт июн 07, 2011 08:03:18

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

Сообщение OKF »

Можно и 1-wire. Только для ТС это нереально, потому что нужно запустить оба конца, а не один как с UART.
Аватара пользователя
ПростоНуб
Собутыльник Кота
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

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

Сообщение ПростоНуб »

Можно и 1-wire. Только для ТС это нереально

Да все реально. ТС вполне подойдет некий аналог LIN. А физический интерфейс можно сделать без оптронов на RS-485/422 трансиверах (типа MAX481)
LIN по стандарту допускает отклонения тактовой частоты ведомого устройства до 14%.
Combatos
Открыл глаза
Сообщения: 63
Зарегистрирован: Пн дек 29, 2014 21:29:32

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

Сообщение Combatos »

Я ищу недорогое решение. MAX481- 8$ за 1 шт., FL817 - 0.06х48=2,9$ за 48 шт. Разница по-моему очевидна. Буду делать тестовый образец для 4 ячеек по этой схеме:

Схема TinyBMS.JPG
(201.62 КБ) 566 скачиваний


А стабилизация питания нужна не только для стабилизации частоты, а еще и для адекватной работы АЦП, так что ей быть!
И практика всё мне покажет! :) Опрос тинек будет один раз в секунду, в перерывах они спят. Эта разработка для электротранспорта, не думаю, что потребление схемы будет критично для батареи. Для предотвращения зависания будет использоваться сторожевой таймер. Нашел вроде толковую программную реализацию UART для tiny13:
https://habr.com/ru/post/346980/
Правда я програмлю в CodeVision, а проект для Atmel Studio 7. Что ж, буду осваивать Atmel Studio. Многие хвалят..
viiv
Грызет канифоль
Сообщения: 280
Зарегистрирован: Чт ноя 06, 2014 13:09:06

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

Сообщение viiv »

FL817 - 0.06х48=2,9$ за 48 шт.

А чего не хотите использовать "кольцо"? вместо 48шт нужно "всего" 24 :-)
Аватара пользователя
Albert_V
Друг Кота
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

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

Сообщение Albert_V »

Combatos, Поправьте схему, пока в реальности не стало вышибать порты PB0 или переходы БЭ у BCX53.
Так же, как только напряжение на АСС превысит приблизительно 3.9В, BCX53 откроется независимо от вашего желания.
С питанием, тоже "весело". Почти 40мА при полностью заряженном АСС... :facepalm:
Combatos
Открыл глаза
Сообщения: 63
Зарегистрирован: Пн дек 29, 2014 21:29:32

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

Сообщение Combatos »

Combatos, Поправьте схему, пока в реальности не стало вышибать порты PB0 или переходы БЭ у BCX53.
Так же, как только напряжение на АСС превысит приблизительно 3.9В, BCX53 откроется независимо от вашего желания.
С питанием, тоже "весело". Почти 40мА при полностью заряженном АСС... :facepalm:


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

Добавлено after 4 minutes 14 seconds:
[uquote="Combatos",url="/forum/viewtopic.php?p=3574984#p3574984"]FL817 - 0.06х48=2,9$ за 48 шт.

А чего не хотите использовать "кольцо"? вместо 48шт нужно "всего" 24 :-)[/uquote]

Так это ж в 24 раза дольше ждать ответа, и жрать батарею в это время :(
Аватара пользователя
Albert_V
Друг Кота
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

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

Сообщение Albert_V »

Combatos писал(а):В железе проверял, все работает..
Да как же оно работало с транзистором по этой схеме? Если только в симуляторе?...
Нарисуйте защитный диод с вывода порта на VCC контроллера (этот диод есть на кристалле ATtiny) и ещё раз внимательно посмотрите на протекание тока через переход ЭБ BCX53 на 431-ую. Для начала, считайте что вывод PB0 настроен на вход.
Возможно, этот ток вы "не заметили" на фоне общего потребления схемы.
Что касается тока около 40мА - посчитайте разницу между напряжением полностью заряженного АСС и напряжением на 431-ой. Номинал резистор между ними известен, закон Ома - тоже.
viiv
Грызет канифоль
Сообщения: 280
Зарегистрирован: Чт ноя 06, 2014 13:09:06

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

Сообщение viiv »

Так это ж в 24 раза дольше ждать ответа, и жрать батарею в это время :(


1) Это зависит от алгоритмов опроса.
Навскидку, не сильно думал (и читал другие протоколы) - первое что пришло :))
Формат фрейма:
<SOF>{SID}{LEN}{CMD}{DATA}{CKS}<EOF>

<SOF> и <EOF> - начало и конец фрейма соответственно, этих символов во фреме быть не может (байт стаффинг).
{SID} - идентификатор отправителя (мастер (328) ставит ноль, слейвы (13a) добавляют единичку).
{LEN} - длина данных
{CMD} - идентификатор команды (можно добавить маску ячеек, которые должны воспринять команду)
{CKS} - контрольная сумма

Слейв не ждет, завершения фрейма, а "сквозняком" пропускает, добавляя в конец фрейма свои данные. Контрольную сумму каждый слейв пересчитывает. Если что-то пошло не так - слейв в конце фрейма дает неверную контрольную сумму.


Тем самым, если мастер принял фрейм с верной контрольной суммой, то в нем ответы всех слейвов, которых он хотел опросить.


2) У Вас при заряженной батарее через TL-ку течет 36ma, через диод оптрона в режиме передачи 0-ка, ~3ma. Если через оптрон (и микроконтроллер) ток не течет, то он (ток) течет через TL-ку. Т.е. ток от ячейки зависит только от ее (ячейки) напряжения, а включен/выключен оптрон, спит 13a или "молотит" в полную мощность никакой роли не играет. Или я ошибаюсь?
Аватара пользователя
ПростоНуб
Собутыльник Кота
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

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

Сообщение ПростоНуб »

Я ищу недорогое решение. MAX481- 8$ за 1 шт., FL817 - 0.06х48=2,9$ за 48 шт.

Не надо дезинформировать общественность! Вот менее $2 за 50 штук: https://ru.aliexpress.com/item/200PCS-M ... st=ae803_4

И даже в Чип&Дип далеко не $8 https://www.chipdip.ru/product/max485esa-t-maxim

И не забывайте, что трансиверов потребуется в 2 раза меньше, чем оптронов. Они же полудуплексные.
Ответить

Вернуться в «AVR»