|
Электрика и DCC Обсуждение цифрового и аналогового управления |
|
Опции темы | Опции просмотра |
09.09.2021, 12:29 | #26 | |
Местный
Регистрация: 22.11.2010
Адрес: Москва
Сообщений: 3,073
Сказал(а) 'не согласен(а)'!: 4
Сказали 'не согласен'! 29 раз(а) в 19 сообщениях
Сказал(а) спасибо: 1,733
Поблагодарили 1,664 раз(а) в 841 сообщениях
Репутация: обеспечил(а) себе прекрасное будущее (1699)
|
Цитата:
не) я ее целиком отрывал от юсб и секунд 10-30 вся плата без единого подключения была
__________________
🎉 мой канал в телеграм @aleksandr_ru_blog |
|
09.09.2021, 18:55 | #27 |
Заглянувший
Регистрация: 16.07.2019
Адрес: -
Сообщений: 82
Сказал(а) 'не согласен(а)'!: 2
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 50
Поблагодарили 125 раз(а) в 46 сообщениях
Репутация: скоро придёт к известности (125)
|
Потыкал в вочдог таймер у Attiny13. Он там есть и отлично работает, только биты регистра по-другому называются. Поэтому библиотека работать не будет, и пример с сайта придется слегка поменять.
Но есть один нюанс (еще один). В ядре microCore функция millis реализована через WDT, поэтому код, портированный напрямую из библиотеки, не будет компилироваться. Однако можно реализовать эту же идею сравнения таймера, используя готовый millis, даже не надо прерывания заводить. Минимальный код для ATtiny13, который у меня получился для демонстрации: оффтопик Так при старте получается каждый раз разный seed. Частота была 9.6 МГц, но, думаю, особой разницы нет. Вообще, конечно, вариант с analogRead на ноге, к которой подключен светодиод - самый простой в плане кода. |
Пользователь сказал cпасибо: |
11.09.2021, 01:39 | #28 |
Местный
Регистрация: 22.11.2010
Адрес: Москва
Сообщений: 3,073
Сказал(а) 'не согласен(а)'!: 4
Сказали 'не согласен'! 29 раз(а) в 19 сообщениях
Сказал(а) спасибо: 1,733
Поблагодарили 1,664 раз(а) в 841 сообщениях
Репутация: обеспечил(а) себе прекрасное будущее (1699)
|
итак попробовал антипруф
скетч Скрытый текст
вывод в консоль Скрытый текст
где две перезагрузки с короткими перерывами по питанию это Код:
⸮Random: 212 Random: 232 Код:
Bootrandom: -18017 New bootrandom: 143
__________________
🎉 мой канал в телеграм @aleksandr_ru_blog |
11.09.2021, 10:16 | #29 |
Заглянувший
Регистрация: 16.07.2019
Адрес: -
Сообщений: 82
Сказал(а) 'не согласен(а)'!: 2
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 50
Поблагодарили 125 раз(а) в 46 сообщениях
Репутация: скоро придёт к известности (125)
|
Ага, действительно. Впрочем, гуглу, кажись, известна эта проблема. Вы же Nano используете? Старый загрузчик в Nano использовал больше памяти, чем новый, и эта переменная попадает в область инициализированной загрузчиком памяти. С новым загрузчиком, а также в Uno (и в Attiny, где нет никакого загрузчика), должно работать. Я в Uno проверял, там норм)
https://forum.arduino.cc/t/cant-get-...-nano/574921/3 |
Пользователь сказал cпасибо: |
11.09.2021, 15:24 | #30 |
Местный
Регистрация: 22.11.2010
Адрес: Москва
Сообщений: 3,073
Сказал(а) 'не согласен(а)'!: 4
Сказали 'не согласен'! 29 раз(а) в 19 сообщениях
Сказал(а) спасибо: 1,733
Поблагодарили 1,664 раз(а) в 841 сообщениях
Репутация: обеспечил(а) себе прекрасное будущее (1699)
|
да похоже так и есть.
на тини, конечно будет сложнее отлаживаться, да и ресет, висящий в воздухе так и просится быть использованным)
__________________
🎉 мой канал в телеграм @aleksandr_ru_blog |
13.09.2021, 22:54 | #31 |
Местный
Регистрация: 22.11.2010
Адрес: Москва
Сообщений: 3,073
Сказал(а) 'не согласен(а)'!: 4
Сказали 'не согласен'! 29 раз(а) в 19 сообщениях
Сказал(а) спасибо: 1,733
Поблагодарили 1,664 раз(а) в 841 сообщениях
Репутация: обеспечил(а) себе прекрасное будущее (1699)
|
проверил на тини, работает!
при этом, если после запуска не перезаписывать bootrandom случайным числом, то разнообразия в состоянии 4 диодов больше, чем при перезаписи, понятно что это призрачные умозаключения на основе малого количества испытаний, но тем не менее. итак готовый скетч, не использующий чтение с ножки (но имеющий такую возможность) Скрытый текст
__________________
🎉 мой канал в телеграм @aleksandr_ru_blog Последний раз редактировалось Rebel; 16.09.2021 в 00:22. |
13.09.2021, 23:55 | #32 |
Местный
Регистрация: 22.11.2010
Адрес: Москва
Сообщений: 3,073
Сказал(а) 'не согласен(а)'!: 4
Сказали 'не согласен'! 29 раз(а) в 19 сообщениях
Сказал(а) спасибо: 1,733
Поблагодарили 1,664 раз(а) в 841 сообщениях
Репутация: обеспечил(а) себе прекрасное будущее (1699)
|
если ресет всегда подтянут к питанию через резистор, то и analogRead будет давать с него всегда (примерно)одинаковое значение?
таким образом можно будет в коде выбрать какой механизм получения случайного числа использовать без define и получить немного универсальности, вопрос только с какой погрешностью нужно анализировать полученное через analogRead значение...
__________________
🎉 мой канал в телеграм @aleksandr_ru_blog |
14.09.2021, 09:06 | #33 |
Заглянувший
Регистрация: 16.07.2019
Адрес: -
Сообщений: 82
Сказал(а) 'не согласен(а)'!: 2
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 50
Поблагодарили 125 раз(а) в 46 сообщениях
Репутация: скоро придёт к известности (125)
|
analogRead при постоянном напряжении обычно скачет на 2-3 попугая.
Не совсем понятно - вы хотите величиной резистора задавать режим работы? Тогда надо делать делитель напряжения из двух резисторов, одного недостаточно (иначе на ресете всегда будет +5В, независимо от величины резистора). А точно есть необходимость "в продакшене" выбирать один из нескольких типов случайных чисел? Для отладки-то можно просто перезалить пяток раз прошивку и посмотреть, что лучше работает. Для удобства в MicroCore даже программный Serial присутствует (это только на время отладки, конечно, потому что занимает две ноги) |
14.09.2021, 11:50 | #34 | |
Местный
Регистрация: 22.11.2010
Адрес: Москва
Сообщений: 3,073
Сказал(а) 'не согласен(а)'!: 4
Сказали 'не согласен'! 29 раз(а) в 19 сообщениях
Сказал(а) спасибо: 1,733
Поблагодарили 1,664 раз(а) в 841 сообщениях
Репутация: обеспечил(а) себе прекрасное будущее (1699)
|
нет, не величиной, а его наличием или отсутствием (т.е. висит ресет в воздухе или подтянут к питанию)
Цитата:
оффтопик
__________________
🎉 мой канал в телеграм @aleksandr_ru_blog |
|
14.09.2021, 14:44 | #35 | |
Заглянувший
Регистрация: 16.07.2019
Адрес: -
Сообщений: 82
Сказал(а) 'не согласен(а)'!: 2
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 50
Поблагодарили 125 раз(а) в 46 сообщениях
Репутация: скоро придёт к известности (125)
|
Цитата:
В общем, перезагружаться плата, скорее всего, не будет и так, а вот напряжение при подключенном внешнем резисторе, и отключенном, будет почти одинаковое. Чтобы существенно отличалось, надо ставить резисторный делитель, и подобрать значения так, чтобы при их запайке было где-то 4.5В (ну или что угодно от 4.5 до 5). Меньшее напряжение, формально, уже может привести к перезагрузке, но это самый наихудший случай. А что не так с прищепкой? По-моему, нормальный способ перепрошивки на запаянной плате) Я свой экспериментальный оптический датчик забыл прошить перед запайкой, и прошивал на плате прищепкой. |
|
Пользователь сказал cпасибо: |
14.09.2021, 16:39 | #36 |
Местный
Регистрация: 22.11.2010
Адрес: Москва
Сообщений: 3,073
Сказал(а) 'не согласен(а)'!: 4
Сказали 'не согласен'! 29 раз(а) в 19 сообщениях
Сказал(а) спасибо: 1,733
Поблагодарили 1,664 раз(а) в 841 сообщениях
Репутация: обеспечил(а) себе прекрасное будущее (1699)
|
тогда я не понимаю почему analogRead с него дает разные значения? там же ничего не меняется и не наводится из-за подтяжки, или я ошибаюсь?
__________________
🎉 мой канал в телеграм @aleksandr_ru_blog |
14.09.2021, 21:57 | #37 |
Заглянувший
Регистрация: 16.07.2019
Адрес: -
Сообщений: 82
Сказал(а) 'не согласен(а)'!: 2
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 50
Поблагодарили 125 раз(а) в 46 сообщениях
Репутация: скоро придёт к известности (125)
|
Я бы сказал, что наводки вполне возможны.
Вот я попробовал сэмулировать слабую подтяжку на ардуине - подтянул ногу А0 к 5В через резистор 68К. Первая треть графика - в довесок к подтяжке к ноге подключен проводок 5см, висящий в воздухе (редкие отклонения от 1023 я бы отнес к шумам АЦП, а не к наводкам - эти скачки есть, даже если напрямую подключить ногу к питанию). Вторая треть графика - я взял этот проводок в руки (за изоляцию), третья треть - подключил еще полметра провода, висящего другим концом в воздухе. |
Пользователь сказал cпасибо: |
14.09.2021, 23:02 | #38 |
Местный
Регистрация: 22.11.2010
Адрес: Москва
Сообщений: 3,073
Сказал(а) 'не согласен(а)'!: 4
Сказали 'не согласен'! 29 раз(а) в 19 сообщениях
Сказал(а) спасибо: 1,733
Поблагодарили 1,664 раз(а) в 841 сообщениях
Репутация: обеспечил(а) себе прекрасное будущее (1699)
|
замечательный опыт вы проделали, спасибо!
исходя из него можно полагать, что если значение более 1000, то надежно подтянуто к питанию, а если менее - то ближе к висящему в воздухе. можно даже делать подряд 10 контрольных чтений и смотреть среднее...
__________________
🎉 мой канал в телеграм @aleksandr_ru_blog |
Пользователь сказал cпасибо: |
15.09.2021, 12:40 | #39 |
Заглянувший
Регистрация: 16.07.2019
Адрес: -
Сообщений: 82
Сказал(а) 'не согласен(а)'!: 2
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 50
Поблагодарили 125 раз(а) в 46 сообщениях
Репутация: скоро придёт к известности (125)
|
Обратите внимание на шкалу - из-за автомасштабирования всё выглядит очень внушительно, но на самом деле ниже 1013 значения не опускаются. Когда я трогал пальцем контакт, значения заходили и за 900 (на графике не представлено).
В общем, мне кажется, невозможно отличить с помощью analogRead слабую встроенную подтяжку от внешней сильной, чтобы надежно работало без подключения антенны и троганья пальцем контактов. Без подключенного висящего провода (у вас же, скорее всего не будет длинного провода или висящей дорожки на плате, подключенных к резету?) АЦП через слабую подтяжку показывал те же значения, что и при прямом подключении к 5В без всякого резистора. Все-таки надежнее предусмотреть два резистора и делителем установить отличное от 5В напряжение) Кстати! Глядя на этот график, можно придумать еще один способ получения случайных чисел из аналоговой ноги, которая не висит в воздухе, а подтянута к чему-нибудь (как резет). Принимая за аксиому, что АЦП всегда шумит, можно замерить число тактов до того, как он изменит свое значение, и оно будет случайным. |
15.09.2021, 14:09 | #40 | |
Местный
Регистрация: 22.11.2010
Адрес: Москва
Сообщений: 3,073
Сказал(а) 'не согласен(а)'!: 4
Сказали 'не согласен'! 29 раз(а) в 19 сообщениях
Сказал(а) спасибо: 1,733
Поблагодарили 1,664 раз(а) в 841 сообщениях
Репутация: обеспечил(а) себе прекрасное будущее (1699)
|
Цитата:
дело конечно в эксперименте с конкретной железкой (тини осложняет этот процесс), в ближайшее время постараюсь еще зашить прошивку берущую данные с ноги ресета и ускоренным циклом, чтоб понаблюдать что будет со включением лампочек и их переключением... тк на прошлом эксперименте с analogRead использовал не ресет а соседнюю ногу, на которой джампер режима работы
__________________
🎉 мой канал в телеграм @aleksandr_ru_blog |
|
15.09.2021, 14:39 | #41 | |
Заглянувший
Регистрация: 16.07.2019
Адрес: -
Сообщений: 82
Сказал(а) 'не согласен(а)'!: 2
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 50
Поблагодарили 125 раз(а) в 46 сообщениях
Репутация: скоро придёт к известности (125)
|
Цитата:
То есть ваш метод проверки наличия резистора на ноге резет должен будет отличать встроенную слабую подтяжку от сильной внешней, а не внешнюю подтяжку от висящей в воздухе ноги. Последнее, безусловно, можно было бы сделать так, как вы предлагаете. |
|
Пользователь сказал cпасибо: |
15.10.2021, 00:37 | #42 |
Местный
Регистрация: 22.11.2010
Адрес: Москва
Сообщений: 3,073
Сказал(а) 'не согласен(а)'!: 4
Сказали 'не согласен'! 29 раз(а) в 19 сообщениях
Сказал(а) спасибо: 1,733
Поблагодарили 1,664 раз(а) в 841 сообщениях
Репутация: обеспечил(а) себе прекрасное будущее (1699)
|
по итогу до дальнейших экспериментов руки не дошли, остановился на варианте с неинициализированной переменной висящим в воздухе ресетом.
приехали платы, собрал тестовый образец, вроде работает) ну и описал процесс на своем сайте
__________________
🎉 мой канал в телеграм @aleksandr_ru_blog |
4 пользователя(ей) сказали cпасибо: |
29.11.2022, 22:56 | #43 |
Заглянувший
Регистрация: 02.08.2014
Адрес: краснодарский край ст. Полтавская
Сообщений: 244
Сказал(а) 'не согласен(а)'!: 1
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 111
Поблагодарили 93 раз(а) в 59 сообщениях
Репутация: скоро придёт к известности (103)
|
Какой все-таки скетч используете, можете поделится?
|
29.11.2022, 23:38 | #44 |
Местный
Регистрация: 22.11.2010
Адрес: Москва
Сообщений: 3,073
Сказал(а) 'не согласен(а)'!: 4
Сказали 'не согласен'! 29 раз(а) в 19 сообщениях
Сказал(а) спасибо: 1,733
Поблагодарили 1,664 раз(а) в 841 сообщениях
Репутация: обеспечил(а) себе прекрасное будущее (1699)
|
__________________
🎉 мой канал в телеграм @aleksandr_ru_blog |
Пользователь сказал cпасибо: |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Освещения в вагоне | djluna1627800 | ЧАВО | 29 | 15.12.2019 17:08 |
мощный стационарный декодер как pwm (ШИМ) - контроллер. | vspider | Электрика и DCC | 11 | 14.04.2014 11:54 |
сопутствующие проблема с китом освещения | Alex_S | Личный опыт | 11 | 15.08.2012 16:47 |
Столбы освещения | Jevgen | ЧАВО | 3 | 14.04.2012 16:21 |
подключение освещения | malder | Электрика и DCC | 5 | 18.09.2008 20:56 |