Прошивка внутри схемы и вопрос по управлению нагрузкой

Sator_nr
Offline
Зарегистрирован: 08.05.2018

Доброго времени суток.
1) Использую Arduino Pro Mini, 168, 5v. Пытаюсь сделать возможность прошивать её не вынимая из схемы и не рискуя спалить плату\usb порт, забыв отключить питание. Верно ли я понимаю, что для достижения этой цели достаточно сконнектить RX\TX крест-накрест с USB-TTL конвертером?
Если да, то к проблеме: в качестве конвертера используется преобразователь на CH430, без DTR пина выведенного. Даже если зажимаю RESET (до этого успешно прошивалась 328) - выдает stk500_getsync() и номера ошибок, разные, даже в пределах одной загрузки.
RAW\GND от источника на 5v, пытался допаивать DTR напрямую от ножки чипа к пину дуины - без результата.
COM порт, драйвера, контакты, питание - все проверено. При пуске работает стандартный Blink.
Используется Arduino IDE 1.8.2, успешно прошивает точно такую же плату, если по стандарту прокинуть VCC и GND от конвертера. Само собой, напрашивается вывод, что одними RX\TX не обойтись, но тогда буду признателен за помощь - гугл подсовывает другое, на форуме тоже откопать ничего не вышло. Да и сам я, честно, не понимаю, откуда взяться такой связи между питанием и каналом общения - разве что имеет место какой-то сброс.
И сразу же хотел бы узнать, какие есть ограничения на возможность подобной "горячей" перепрошивки, если имеются сами возможность и ограничения - какие пины запрещено забивать и подобное.
2) Задача: ардуина используется в роли контроллера для диодной обвязки. Питание у диодов свое, само собой - дуину сожжет сразу же. В интернете достаточно много схем, предлагающих с помощью каскадов управлять подобной нагрузкой, но все они предполагают 2 состояния - включено и выключено.
А существет ли способ настроить их плавное выключение? Например - если требуется управляемая имитация рассвета\заката с плавным затуханием. 
Заранее благодарю за ответы и извиняюсь, если пропустил похожие темы здесь.

triac
triac аватар
Offline
Зарегистрирован: 03.05.2018

1) DTR дает сигнал сброса Ардуине. После сброса первым запускается бутлодер и некоторе время ждет, что по последовательному порту придут управляющие коды и посыпятся байты для прошивки. Если этого не происходит, то после паузы бутлодер передает управление пользовательскому скетчу. Величина паузы варируется для разных моделей Ардуино.

2) Яркостью светодиодов можно управлять при помощи ШИМ (по-английски PWM). Если быстро (с частотой 100 Гц и более) дергать ножкой Ардуино, то светодиоды будут моргать, но глаз моргания не замечает.  Поэтому меняя скважность на выходе можно регулировать яркость.

bwn
Offline
Зарегистрирован: 25.08.2014

1. DTR должен идти на RESET через конденсатор в 0,1мкФ - проверяйте.
2. Загрузчик в камне и выбранной плате должны соответствовать друг другу (китаец мог залить любой).
3. Непонятно, что за диодная обвязка. Какие диоды, как соединены?

svm
Offline
Зарегистрирован: 06.11.2016

Sator_nr пишет:

Если да, то к проблеме: в качестве конвертера используется преобразователь на CH430, без DTR пина выведенного. Даже если зажимаю RESET (до этого успешно прошивалась 328) - выдает stk500_getsync() и номера ошибок, разные, даже в пределах одной загрузки.
RAW\GND от источника на 5v, пытался допаивать DTR напрямую от ножки чипа к пину дуины - без результата.
 

Может ногой CH340 ошиблись?. Вывод DTR - №13. Подключается к одноименному выводу 168 напрямую. Конденсатор в ней уже установлен (во всяком случае у меня так). Все шьется нормально, а с ручным сбросом попасть практически невозможно, хотя на 328 прокатывает.

b707
Offline
Зарегистрирован: 26.05.2017

Sator_nr, прошивайте по SPI и не мучайтесь.

sadman41
Offline
Зарегистрирован: 19.10.2016

Я напротив - стараюсь SPI не трогать (чтобы не напускать статики извне), так как мои конструкции используют SPI для соединений с модулями. Пользуюсь рободиновским UART-TTL свистком, завожу 4 провода: RX/TX/GND/RST и всё. Пишется-читается без проблем.

Sator_nr
Offline
Зарегистрирован: 08.05.2018

bwn пишет:

1. DTR должен идти на RESET через конденсатор в 0,1мкФ - проверяйте.
2. Загрузчик в камне и выбранной плате должны соответствовать друг другу (китаец мог залить любой).
3. Непонятно, что за диодная обвязка. Какие диоды, как соединены?

1. Пробовал вот этим способом http://forum.arduino.cc/index.php?topic=497026.0
2. Есть ли возможность как-то опознать его? Или только щелкать все платы, пока не будет результата?
3. Модуль с 5 диодами по 3 Вт, в сумме напряжение ~16.9 В, ток ~ 500мА, согласно характеристикам от производителя.

triac пишет:

Яркостью светодиодов можно управлять при помощи ШИМ (по-английски PWM). Если быстро (с частотой 100 Гц и более) дергать ножкой Ардуино, то светодиоды будут моргать, но глаз моргания не замечает.  Поэтому меняя скважность на выходе можно регулировать яркость.

Мой косяк, забыл характеристики диодов в первом посте написать. Разве здесь он применим?

Спасибо всем за информацию, начну с SPI (попросту забыл про такую возможность), потом просмотрю остальные варианты - понять хочу, что не так (помимо возможности подставы от китайца).

bwn
Offline
Зарегистрирован: 25.08.2014

Будете заливать по SPI, не забудьте, загрузчик стирается. Залейте подходящий и с ним экспериментируйте на СH340. Вот эту тему еще почитайте.

У меня Ардуин в девайсах нет, просто через конденсатор на RESET подаю.
Ваш прожектор ШИМом вполне реально, я думал, может матрица какая хитрая.
 

Sator_nr
Offline
Зарегистрирован: 08.05.2018

bwn пишет:

Ваш прожектор ШИМом вполне реально, я думал, может матрица какая хитрая.

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

upd.: плохо искал, наткнулся на темы здесь же.

Попытка прошивать через SPI (уже выдрал плату из схемы, шью через UNO) дает 
avrdude: Device signature = 0xffffff (probably .reduced_core_tiny). Похоже, все же китаец - реанимировать продолжу опыта ради, но в рабочий проект лучше поищу другой контроллер.

bwn
Offline
Зарегистрирован: 25.08.2014

Для начала, просто порегулируйте яркость обычного светодиода от пина (с резистором). А потом подумайте, чем ваш светодиод отличается от прожектора? Правильно, потребляемой мощностью. Чтобы согласовать мощности пина и прожектора нужен промежуточный ключ. Гуглим: ключ на MOSFET.

Если говорите, что блинк на плате работал, то скорее все таки живаю. Проверяйте монтаж и все шаги.

Sator_nr
Offline
Зарегистрирован: 08.05.2018

bwn пишет:

Если говорите, что блинк на плате работал, то скорее все таки живаю. Проверяйте монтаж и все шаги.

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

upd.: оказалось, забыл подключить RST пин - первая ошибка. Отсутствие MiniCore расширения - вторая. Плата, которая до этого прошилась с ручным резетом через USB преобразователь, прошивается теперь без проблем. Проблемная, которая выдает неправильную сигнатуру (теперь - 0x000000), так и не прошивается, подмигивая блинком.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

bwn пишет:

Будете заливать по SPI, не забудьте, загрузчик стирается. Залейте подходящий и с ним экспериментируйте на СH340. Вот эту тему еще почитайте.

У меня Ардуин в девайсах нет, просто через конденсатор на RESET подаю.
Ваш прожектор ШИМом вполне реально, я думал, может матрица какая хитрая.
 


У меня не стирается.
Я что-то не так делаю?

bwn
Offline
Зарегистрирован: 25.08.2014

trembo пишет:

 У меня не стирается. Я что-то не так делаю?

#29 - ?

b707
Offline
Зарегистрирован: 26.05.2017

trembo пишет:
У меня не стирается. Я что-то не так делаю?

видимо да, что-то делаете не так.

При загрузке программатором первым делом очищается весь флеш целиком, включая загрузчик.

Может, вы прошиваете HEX, в котором скетч и загрузчик вместе?