Да, с эмиттером ошибся, но это машинально, а не по незнанию.. А насчет отсутствия резисторов в базах для упрощения схемы исходил из того, что питание тиньки всего 2,5В и выходной ток портов там аппаратно ограничен на уровне 10 мА вроде бы.
Передача данных из множества ATtiny13A в один ATmega328P
Re: Передача данных из множества ATtiny13A в один ATmega328P
Напрямую нельзя. Вы же ставите резисторы последовательно со светиками, здесь тоже самое. Можно, поставить "цифровые". К слову, BCX53 это PNP и стрелку эмиттера нужно нарисовать как у транзистора TxD.
Да, с эмиттером ошибся, но это машинально, а не по незнанию.. А насчет отсутствия резисторов в базах для упрощения схемы исходил из того, что питание тиньки всего 2,5В и выходной ток портов там аппаратно ограничен на уровне 10 мА вроде бы.
Re: Передача данных из множества ATtiny13A в один ATmega328P
Схема TinyBMS.JPG
Ммм... Постоянно включенные резисторный делитель и "стабилитрон"!? Ладно еще, делитель. Но зачем стабилизировать питание?
IMHO лишние потребители электичества ни к чему на аккумуляторном питании.
Ммм... Постоянно включенные резисторный делитель и "стабилитрон"!? Ладно еще, делитель. Но зачем стабилизировать питание?
IMHO лишние потребители электичества ни к чему на аккумуляторном питании.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Re: Передача данных из множества ATtiny13A в один ATmega328P
Да, стабилизатор не нужен. Делитель к пину 13, что бы отключать. Подтяжка 470 не нужна.
Видно что ТС не знает как делать софтовый TX, вот и будет тулить 24 оптрона одной кучей.(
И я бы спал всю дорогу, а просыпался бы от мастера. А значит INT нужно к оптрону, а ни что попало.
Видно что ТС не знает как делать софтовый TX, вот и будет тулить 24 оптрона одной кучей.(
И я бы спал всю дорогу, а просыпался бы от мастера. А значит INT нужно к оптрону, а ни что попало.
Re: Передача данных из множества ATtiny13A в один ATmega328P
выходной ток портов там аппаратно ограничен на уровне 10 мА
Такого в спецификации на тиньку нет.Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Re: Передача данных из множества ATtiny13A в один ATmega328P
Да, стабилизатор не нужен. Делитель к пину 13, что бы отключать. Подтяжка 470 не нужна.
Видно что ТС не знает как делать софтовый TX, вот и будет тулить 24 оптрона одной кучей.(
И я бы спал всю дорогу, а просыпался бы от мастера. А значит INT нужно к оптрону, а ни что попало.
Видно что ТС не знает как делать софтовый TX, вот и будет тулить 24 оптрона одной кучей.(
И я бы спал всю дорогу, а просыпался бы от мастера. А значит INT нужно к оптрону, а ни что попало.
UART то программный! Кварца нет, внутренний RC-генератор в тиньке весьма нестабильный, питание понизится - частота уплывет, и попрут ошибки. У тиньки ИОН 1,1В, поэтому делитель рассчитан на макс. измеряемое напряжение 4,3В (чтобы можно было использовать на батареях не только LiFePO4, а и LiIon, LiPo). Что за пин 13 (8 ног всего)? Почему подтяжка 470 не нужна? Что, хватит мол, внутреннего 100 кОм? Ведь чем ниже сопротивление резистора подтяжки, тем большей скорости UART можно добиться, нет? Насчет INT согласен, разумно.
Re: Передача данных из множества ATtiny13A в один ATmega328P
Программный на МАСТЕРЕ! Тут то само собой. Кто мешает подстраиваться по скорости, если напряжение гуляет!
Пин ТИНИ13! И что 9600 мало, 115200 нужно или у нас объёмы? И почему 100к, а не 200!(((
Пин ТИНИ13! И что 9600 мало, 115200 нужно или у нас объёмы? И почему 100к, а не 200!(((
Re: Передача данных из множества ATtiny13A в один ATmega328P
Программный на МАСТЕРЕ! Тут то само собой. Кто мешает подстраиваться по скорости, если напряжение гуляет!
Пин ТИНИ13! И что 9600 мало, 115200 нужно или у нас объёмы? И почему 100к, а не 200!(((
Пин ТИНИ13! И что 9600 мало, 115200 нужно или у нас объёмы? И почему 100к, а не 200!(((
Зачем программный на мастере, если там аппаратный присутствует? Как подстраиваться по скорости от напряжения, практическая реализация? Даже 4800 хватит, но на этих дешевых оптронах боюсь не получится без резисторов подтяжки.
Re: Передача данных из множества ATtiny13A в один ATmega328P
Подтяжка 470 не нужна... А значит INT нужно к оптрону, а ни что попало.
PCINT - прекрасно справится с выходом из сна. Стабилизатор нужен. Внешний резистор подтяжки на RX 470 нужен.
Re: Передача данных из множества ATtiny13A в один ATmega328P
Затем что бы 24-мя оптронами на мигать одновременно. Это ж какую психику нужно иметь... Прям, цветомузыка. Оптронная.)
Почитайте Lin хотя бы. А вам вообще никто не мешает договориться с мастером и настраиваться по нему. Либо, тупо построить таблицу с коэффициентами для формирования задержки в зависимости от напряжения питания. Либо, тупо подстравивать OSCCAL в зависимости от напряжения...
Конечно на 4800 не получится. Так может попробовать надо?
Ну если PCINT справится - какие вопросы. Делайте!
Тут вообще, если вам не важно потребление, то тогда и дискутировать смысла нет.
Почитайте Lin хотя бы. А вам вообще никто не мешает договориться с мастером и настраиваться по нему. Либо, тупо построить таблицу с коэффициентами для формирования задержки в зависимости от напряжения питания. Либо, тупо подстравивать OSCCAL в зависимости от напряжения...
Конечно на 4800 не получится. Так может попробовать надо?
Ну если PCINT справится - какие вопросы. Делайте!
Тут вообще, если вам не важно потребление, то тогда и дискутировать смысла нет.
Re: Передача данных из множества ATtiny13A в один ATmega328P
Затем что бы 24-мя оптронами на мигать одновременно.
Как по-другому мастер поймет, от какой именно тиньки ему "телеграмма"?
- Starichok51
- Модератор
- Сообщения: 19039
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Передача данных из множества ATtiny13A в один ATmega328P
если частота меняется, то тут надо разрабатывать какой-то аналог 1-wire, где длительность может меняться в широких пределах.
конечно, упрощенный аналог, точная копья не нужна.
конечно, упрощенный аналог, точная копья не нужна.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Re: Передача данных из множества ATtiny13A в один ATmega328P
Можно и 1-wire. Только для ТС это нереально, потому что нужно запустить оба конца, а не один как с UART.
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: Передача данных из множества ATtiny13A в один ATmega328P
Можно и 1-wire. Только для ТС это нереально
Да все реально. ТС вполне подойдет некий аналог LIN. А физический интерфейс можно сделать без оптронов на RS-485/422 трансиверах (типа MAX481)
LIN по стандарту допускает отклонения тактовой частоты ведомого устройства до 14%.
Re: Передача данных из множества ATtiny13A в один ATmega328P
Я ищу недорогое решение. MAX481- 8$ за 1 шт., FL817 - 0.06х48=2,9$ за 48 шт. Разница по-моему очевидна. Буду делать тестовый образец для 4 ячеек по этой схеме:
А стабилизация питания нужна не только для стабилизации частоты, а еще и для адекватной работы АЦП, так что ей быть!
И практика всё мне покажет!
Опрос тинек будет один раз в секунду, в перерывах они спят. Эта разработка для электротранспорта, не думаю, что потребление схемы будет критично для батареи. Для предотвращения зависания будет использоваться сторожевой таймер. Нашел вроде толковую программную реализацию UART для tiny13:
https://habr.com/ru/post/346980/
Правда я програмлю в CodeVision, а проект для Atmel Studio 7. Что ж, буду осваивать Atmel Studio. Многие хвалят..
А стабилизация питания нужна не только для стабилизации частоты, а еще и для адекватной работы АЦП, так что ей быть!
И практика всё мне покажет!
https://habr.com/ru/post/346980/
Правда я програмлю в CodeVision, а проект для Atmel Studio 7. Что ж, буду осваивать Atmel Studio. Многие хвалят..
Re: Передача данных из множества ATtiny13A в один ATmega328P
FL817 - 0.06х48=2,9$ за 48 шт.
А чего не хотите использовать "кольцо"? вместо 48шт нужно "всего" 24
- Albert_V
- Друг Кота
- Сообщения: 4119
- Зарегистрирован: Чт сен 12, 2013 00:54:12
- Откуда: ЗаМКАДье. Там, где ЦУП
Re: Передача данных из множества ATtiny13A в один ATmega328P
Combatos, Поправьте схему, пока в реальности не стало вышибать порты PB0 или переходы БЭ у BCX53.
Так же, как только напряжение на АСС превысит приблизительно 3.9В, BCX53 откроется независимо от вашего желания.
С питанием, тоже "весело". Почти 40мА при полностью заряженном АСС...
Так же, как только напряжение на АСС превысит приблизительно 3.9В, BCX53 откроется независимо от вашего желания.
С питанием, тоже "весело". Почти 40мА при полностью заряженном АСС...

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

В железе проверял, все работает.. Возможно, до поры, до времени. Вы имеете ввиду помимо токоограничивающего еще поставить резистор подтяжки базы к минусу? Какие номиналы посоветуете? 40мА - что имеете ввиду?
Добавлено after 4 minutes 14 seconds:
[uquote="Combatos",url="/forum/viewtopic.php?p=3574984#p3574984"]FL817 - 0.06х48=2,9$ за 48 шт.
А чего не хотите использовать "кольцо"? вместо 48шт нужно "всего" 24
Так это ж в 24 раза дольше ждать ответа, и жрать батарею в это время
- Albert_V
- Друг Кота
- Сообщения: 4119
- Зарегистрирован: Чт сен 12, 2013 00:54:12
- Откуда: ЗаМКАДье. Там, где ЦУП
Re: Передача данных из множества ATtiny13A в один ATmega328P
Да как же оно работало с транзистором по этой схеме? Если только в симуляторе?...Combatos писал(а):В железе проверял, все работает..
Нарисуйте защитный диод с вывода порта на VCC контроллера (этот диод есть на кристалле ATtiny) и ещё раз внимательно посмотрите на протекание тока через переход ЭБ BCX53 на 431-ую. Для начала, считайте что вывод PB0 настроен на вход.
Возможно, этот ток вы "не заметили" на фоне общего потребления схемы.
Что касается тока около 40мА - посчитайте разницу между напряжением полностью заряженного АСС и напряжением на 431-ой. Номинал резистор между ними известен, закон Ома - тоже.
Re: Передача данных из множества ATtiny13A в один ATmega328P
Так это ж в 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 раза меньше, чем оптронов. Они же полудуплексные.