Пока ждал ответа разобрался. В любой непонятной ситуации собирай схему на симуляторе. С неактивными устройствами все понятно. С активным изобразил приблизительно на схеме. Задача подать низкий уровень. В схеме с диодом учитывается падение напряжение, точнее примерно оно и будет значение при низком уровне сигнала. Если диод убрать, будет заметно больше, там делитель получается. Т.е. теоретически какой-то МК может засчитать такой сигнал как за низкий уровень, смотря какой делитель получится, но если добавить диод, то получается наверняка.
Спасибо за интересную схему в статье, заставила меня задуматься!
Ну так линию SDA и SCL всегда подтягивают к питанию через pull-up резисторы, здесь как раз они и получаются. Кстати, замечу, что мы не подтягиваем к питаную активное устройство, там линия делается на вход.
Хотя, еще чуть-чуть и кажется пойму!
Такое ощущение, что здесь важно падение напряжение на диоде и из-за него получается опустить линию на активном устройстве, а не активные не могут опустить, правильно?
Объясните, пожалуйста, про диод Шоттки по линии i2c, разве не то, что мы подаем на линии высокий сигнал (например, D2) делает это устройство неактивным, а не диод шоттки? Кажется, что его можно убрать, но не понимаю почему он нужен, как написано на скриншоте.
Да мне просто захотелось оставить этот комментарий, потому что всю боль из статьи понимаю, сам потратил 3-4 года в стол, с одной стороны было очень интересно и полезно, изучал геймдев, а с другой стороны понимаю, что жалко, т.к. если сейчас начал бы сначала то делал бы по-другому, больше доверял своей интуиции и делал как просит душа. Так где-то после 4-го года, я принял участие в геймджеме и понял эту ошибку, что по-хорошему готовая игра это совершенно другое, т.е. оказывается вот оно как должно быть! Код, модели, рисунки, все может быть кривым, а игра нет. Или наоборот, все может быть идеальным, а игра нет. А под интуиции и душой я понимаю, что это вам решать, какой конкретно цели вы достигли, возможно все получилось хорошо.
По мне, если цель создать персонажа, то лучше вложиться в обучение 3д моделированию, это проще, чем создавать объекты кодом, плюс можно выразить себя художественно. И по мне приятнее, какое-то разнообразие, только геймдев большой, на все время может не хватить. И 3д моделирование мне не раз пригодилось, хоть и не моделью так часто.
Да можно и за 10 лет сделать такого монстра, которого уже не отрефакторишь. :) От целей зависит, но как по мне главное, что с самим с собой в ладах быть, чтобы не жалеть о потраченном времени и говорит, как классно и с пользой я провел эти пять лет, хоть и нет успешной игры.
Можно пойти по этому пути, потратить пять лет и не сделать игру. Но каждый месяц или чаще проходят геймджемы и люди делают игру за 3 дня, другими словами сделать игру не за 5 минут, а за 3 дня или неделю (некоторые джемы дольше идут), вполне обычно.
Хорошое дополнение, теперь вижу, что можно выбрать другой адрес. Я думал он вручную вписывается, а на тот момент не знал его значения еще. Но все равно, опции зашить дефолтный загрузчик нет, надо тогда заводской загрузчик выгрузить, сохранить, а потом зашить, если понадобится. Но можно, скорее всего и код загрузчика из примеров ch32fun взять (с запуском сразу основной программы).
А, понял! Вижу опцию отключить загрузчик "Start from the boot area" - не совсем то (не зашивает дефолтный), но возможно для кого-то то, что нужно.
С моей стороны не сказать, что проделана титаническая работа, т.к. я просто взял готовую библиотеку. Но сама библиотека, конечно, заслуживает уважения. Правда, пока я её изучал, то столкнулся с несколькими трудностями, некоторый функционал не реализован и возможно никогда не будет реализован, например Bulk транзакций нет, а без них не работает Mass Storage Class, т.е. флешку не сделать. (Возможно с CDC и Ethernet классами та же проблема.) Поэтому, эта библиотека не настолько далеко продвинулась как V-USB, например, но даже так, уже хорошо.
Как мне кажется я в начале своего пути разработчика игр совершил одну большую ошибку и потерял годы, это делать игру аналитически, много читать, изучать и попытаться сделать все хорошо. Сейчас считаю самым лучшим способом это плясать от творчества. В вашем случае я бы постарался найти в себе рассказ, хоть и не большой, который в данный момент зажигает, и попытаться его не то, что записать, а сделать в виде игры, можно, например, настолки, если так проще. Можно в виде текстового квеста. Можно 2д игры. Это все варианты попроще. Можно геймплея на 5-10 минут. И самое главное дать это кому-то поиграть, если не давать играть, то не будет понятно что делаешь правильно, а что нет. Когда игроки будут говорить, что идея нравится, то мотивация пойдет вверх. И так с одной игры на другую можно расти как разработчик и геймдизайнер. По крайней мере я к этому пришел. Если так не делать, игры будут пресными (и выгоришь), но возможно, в большой команде аналитические способности дают выигрыш, но теперь я к ним скептически отношусь, игры все же много про творчество и большинство это в них притягивает.
Плата заряда много места занимает, это тогда не брелок получится и АКБ тоже должен быть не большой. Я нашел вариант похожий, но получше, взять LIR2032, возможно решит проблемы, но я еще его проверю.
Хотя я до сих пор не уверен, что в данной схеме он сильно поможет, но изучил информацию по блокировочному конденсатору и, действительно, нашел в другом своем устройстве, в другой схеме, что эта возможно существенная проблема. Спасибо еще раз за то, что подняли этот вопрос.
Все верно, в даташите написано, что у 1088as строки с общим катодом, а столбцы с андом. Но я видел, что в продаже матрицу называли с общим катодом, или еще где, поэтому так и написал.
Посмотрел, в даташите написано, что одна ножка потребляет +/- 20 мА, но все вместе не может быть больше, чем указано в секции 3.2, а там указано, что максимальный ток 100 мА, так что да, ограничение есть.
Я про это подозрение в статье и написал, что это наиболее вероятноя причина, но почему-то в даташит не посмотрел, странно, но ладно. После того как попробую еще что-нибудь сделать с платой, чтобы улучшить яркость. после всех комментариев - дополню статью.
Если делать на фрезерном станке, на односторонней плате, без металлизации отверстий, то будут сложности. Плюс при этом надо как-то все это развести, чтобы уместилось. Но если заказывать плату, то получилось бы действительно, как по мне, лучше.
Пока ждал ответа разобрался. В любой непонятной ситуации собирай схему на симуляторе. С неактивными устройствами все понятно. С активным изобразил приблизительно на схеме. Задача подать низкий уровень. В схеме с диодом учитывается падение напряжение, точнее примерно оно и будет значение при низком уровне сигнала. Если диод убрать, будет заметно больше, там делитель получается. Т.е. теоретически какой-то МК может засчитать такой сигнал как за низкий уровень, смотря какой делитель получится, но если добавить диод, то получается наверняка.
Спасибо за интересную схему в статье, заставила меня задуматься!
Кому интересно, на последний вывод меня натолкнул этот ответ с реддита https://www.reddit.com/r/AskElectronics/comments/pb6czs/do_the_diodes_drop_voltage_for_the_parallel/ - там простая задачка и говорится, что параллельный диод просто фиксирует напряжение на резисторе.
Ну так линию SDA и SCL всегда подтягивают к питанию через pull-up резисторы, здесь как раз они и получаются. Кстати, замечу, что мы не подтягиваем к питаную активное устройство, там линия делается на вход.
Хотя, еще чуть-чуть и кажется пойму!
Такое ощущение, что здесь важно падение напряжение на диоде и из-за него получается опустить линию на активном устройстве, а не активные не могут опустить, правильно?
Объясните, пожалуйста, про диод Шоттки по линии i2c, разве не то, что мы подаем на линии высокий сигнал (например, D2) делает это устройство неактивным, а не диод шоттки? Кажется, что его можно убрать, но не понимаю почему он нужен, как написано на скриншоте.
Да мне просто захотелось оставить этот комментарий, потому что всю боль из статьи понимаю, сам потратил 3-4 года в стол, с одной стороны было очень интересно и полезно, изучал геймдев, а с другой стороны понимаю, что жалко, т.к. если сейчас начал бы сначала то делал бы по-другому, больше доверял своей интуиции и делал как просит душа. Так где-то после 4-го года, я принял участие в геймджеме и понял эту ошибку, что по-хорошему готовая игра это совершенно другое, т.е. оказывается вот оно как должно быть! Код, модели, рисунки, все может быть кривым, а игра нет. Или наоборот, все может быть идеальным, а игра нет. А под интуиции и душой я понимаю, что это вам решать, какой конкретно цели вы достигли, возможно все получилось хорошо.
По мне, если цель создать персонажа, то лучше вложиться в обучение 3д моделированию, это проще, чем создавать объекты кодом, плюс можно выразить себя художественно. И по мне приятнее, какое-то разнообразие, только геймдев большой, на все время может не хватить. И 3д моделирование мне не раз пригодилось, хоть и не моделью так часто.
Согласен, если подходить увлеченно к тому, что делаешь, то сам процесс уже награда.
Да можно и за 10 лет сделать такого монстра, которого уже не отрефакторишь. :) От целей зависит, но как по мне главное, что с самим с собой в ладах быть, чтобы не жалеть о потраченном времени и говорит, как классно и с пользой я провел эти пять лет, хоть и нет успешной игры.
Можно пойти по этому пути, потратить пять лет и не сделать игру. Но каждый месяц или чаще проходят геймджемы и люди делают игру за 3 дня, другими словами сделать игру не за 5 минут, а за 3 дня или неделю (некоторые джемы дольше идут), вполне обычно.
Как альтернатива можно использовать вместо HIGH/LOW - ON/OFF.
Хорошое дополнение, теперь вижу, что можно выбрать другой адрес. Я думал он вручную вписывается, а на тот момент не знал его значения еще. Но все равно, опции зашить дефолтный загрузчик нет, надо тогда заводской загрузчик выгрузить, сохранить, а потом зашить, если понадобится. Но можно, скорее всего и код загрузчика из примеров ch32fun взять (с запуском сразу основной программы).
А, понял! Вижу опцию отключить загрузчик "Start from the boot area" - не совсем то (не зашивает дефолтный), но возможно для кого-то то, что нужно.
С моей стороны не сказать, что проделана титаническая работа, т.к. я просто взял готовую библиотеку. Но сама библиотека, конечно, заслуживает уважения. Правда, пока я её изучал, то столкнулся с несколькими трудностями, некоторый функционал не реализован и возможно никогда не будет реализован, например Bulk транзакций нет, а без них не работает Mass Storage Class, т.е. флешку не сделать. (Возможно с CDC и Ethernet классами та же проблема.) Поэтому, эта библиотека не настолько далеко продвинулась как V-USB, например, но даже так, уже хорошо.
Как мне кажется я в начале своего пути разработчика игр совершил одну большую ошибку и потерял годы, это делать игру аналитически, много читать, изучать и попытаться сделать все хорошо. Сейчас считаю самым лучшим способом это плясать от творчества. В вашем случае я бы постарался найти в себе рассказ, хоть и не большой, который в данный момент зажигает, и попытаться его не то, что записать, а сделать в виде игры, можно, например, настолки, если так проще. Можно в виде текстового квеста. Можно 2д игры. Это все варианты попроще. Можно геймплея на 5-10 минут. И самое главное дать это кому-то поиграть, если не давать играть, то не будет понятно что делаешь правильно, а что нет. Когда игроки будут говорить, что идея нравится, то мотивация пойдет вверх. И так с одной игры на другую можно расти как разработчик и геймдизайнер. По крайней мере я к этому пришел. Если так не делать, игры будут пресными (и выгоришь), но возможно, в большой команде аналитические способности дают выигрыш, но теперь я к ним скептически отношусь, игры все же много про творчество и большинство это в них притягивает.
Плата заряда много места занимает, это тогда не брелок получится и АКБ тоже должен быть не большой. Я нашел вариант похожий, но получше, взять LIR2032, возможно решит проблемы, но я еще его проверю.
Хотя я до сих пор не уверен, что в данной схеме он сильно поможет, но изучил информацию по блокировочному конденсатору и, действительно, нашел в другом своем устройстве, в другой схеме, что эта возможно существенная проблема. Спасибо еще раз за то, что подняли этот вопрос.
Все верно, в даташите написано, что у 1088as строки с общим катодом, а столбцы с андом. Но я видел, что в продаже матрицу называли с общим катодом, или еще где, поэтому так и написал.
Посмотрел, в даташите написано, что одна ножка потребляет +/- 20 мА, но все вместе не может быть больше, чем указано в секции 3.2, а там указано, что максимальный ток 100 мА, так что да, ограничение есть.
Я про это подозрение в статье и написал, что это наиболее вероятноя причина, но почему-то в даташит не посмотрел, странно, но ладно. После того как попробую еще что-нибудь сделать с платой, чтобы улучшить яркость. после всех комментариев - дополню статью.
Во, спасибо, а то искал похожие матрицы ради эксприментов и не мог найти, только находил те, которые в статье, толстые и с длинными ножками.
Спасибо за ценную информацию, проверю еще на красной матрице!
Если делать на фрезерном станке, на односторонней плате, без металлизации отверстий, то будут сложности. Плюс при этом надо как-то все это развести, чтобы уместилось. Но если заказывать плату, то получилось бы действительно, как по мне, лучше.