Как использовать любой модуль, у которого нет библиотеки для arduino?

Мне 2 года в этом мире Arduino. В настоящее время я работаю над проектом, в котором собираюсь использовать датчик отпечатков пальцев. Теперь мой вопрос заключается в том, можем ли мы использовать датчик, который мы обычно находим в наших мобильных телефонах с чипом микроконтроллера ATmega328p. А что, если бы не было библиотек, написанных для Arduino, которые облегчили бы мне жизнь. И мне интересно, как эти технологические компании используют любой датчик, который они хотели бы использовать, без каких-либо проблем, в то время как нет существующего учебника, который научил бы этих сотрудников, получающих степень в CSE или ECE, о том, как писать код для определенного датчика. Теперь я знаю, что существуют определенные протоколы, такие как SPI, I2C, UART и т. д. Но как они это делают и откуда они знают о микроконтроллерах и ИС, которым их никогда не учили ни на каком курсе? Я всегда чешу голову, глядя на бытовую электронику, а микросхемы и микросхемы, которые они имеют на своей печатной плате, никогда не были найдены в Google, и случайно, если микросхема или микроконтроллер найдены, я едва понимаю техническое описание или документацию. который был написан на китайском или другом языке. Надеюсь, кто-нибудь поможет мне понять, как все это происходит.

, 👍1

Обсуждение

Я предполагаю, что таблица данных IC - это главное, что вам нужно. Если это недоступно, это похоже на обратный инжиниринг, но для нетривиальной ИС это в основном не стоит пытаться., @Michel Keijzers


1 ответ


Лучший ответ:

3

О датчиках отпечатков пальцев в мобильных телефонах: ответы на этот вопрос могут оказаться полезными. Они подробно объясняют, почему не стоит пытаться сопрягать такой датчик отпечатков пальцев с Arduino.

Как использовать любой модуль, у которого нет библиотеки для arduino?

Вам необходимо прочитать техническое описание модуля. Он должен подробно объяснять, как используется модуль. Когда вы поняли, как это работает (а понимание это действительно очень важно), вы можете начать реализовывать это в коде, например, написав собственную библиотеку. Библиотека — это просто обертка кода интерфейса для этого модуля. Если модуль использует широко используемые интерфейсы или даже является широко используемым компонентом, вы часто можете стоять на плечах гигантов, используя другие библиотеки в своей библиотеке (например, используя библиотеку Wire в библиотеке для определенного датчика I2C). Так проще.

Но как они это делают и откуда они знают о микроконтроллерах и интегральных схемах, которым их никогда не учили ни на каком курсе или курсе?

Инженеров не учат использовать определенные контроллеры или интегральные схемы. Их учат фундаментальным принципам, включая общие интерфейсы, такие как I2C, SPI, UART, I2S... В конце концов, все сводится к таблице данных компонента. Он должен объяснять все детали, необходимые для правильного использования компонента, или, по крайней мере, ссылаться на дополнительные документы. Например, большинство спецификаций микроконтроллеров прямо объясняют, как I2C реализован в этих микроконтроллерах. Вы можете использовать это для реализации связи I2C даже без существующей библиотеки. Да, это может быть утомительной и сложной задачей, но это вполне возможно. Имейте в виду, что большинство библиотек Arduino написано не производителем используемого компонента, а сторонними лицами (иногда сообществом, иногда торговыми посредниками, такими как Adafruit, например).

Я бы сказал, что "это не ракетостроение", но да, может быть довольно сложно вникнуть в каждую деталь взаимодействия компонента. Не считая себя особо умным парнем, пишу библиотеку для мультимастерной связи I2C на Attiny's (не имея никакого образования в этой области). Я мог начать с чужого кода, что упростило ввод. Но это также требует много времени, чтобы вникнуть в это, написать код и правильно его протестировать. Это сложно, но возможно.

И случайно, если микросхема или микроконтроллер найдены, я едва понимаю техническое описание или документацию, написанную на китайском или другом языке.

Надежные производители и торговые посредники предоставляют технические описания своих продуктов на английском языке. Этого нельзя сказать о каждом продукте, который вы можете приобрести. Написание документации требует времени и, следовательно, стоит денег. Чипы напрямую из Китая (где в наши дни производится большая часть электроники) могут иметь менее качественную документацию или вообще не иметь документации, хотя эти чипы часто намного дешевле. Как любитель, вы должны придерживаться хорошо задокументированных компонентов, если не хотите вникать в них по-настоящему.

микросхемы и чипы, которые есть на их печатной плате, никогда не были найдены в Google

Чертежи печатных плат можно найти в Интернете только в том случае, если они опубликованы под какой-либо лицензией с открытым исходным кодом (или если они были кем-то незаконно слиты). Если компания не хочет публиковать дизайн своих продуктов, это нормально.

О компонентах бытовой электроники: я думаю, вы имеете в виду, что чипы часто не имеют номера продукта/маркировки, которые можно найти в Google, чтобы найти техническое описание. Это потому, что часто эти чипы изготавливаются на заказ, возможно, только для этой компании или даже для этого конкретного продукта. Почему они хотят опубликовать таблицу данных для него? Они не предназначены для общего пользования для всех. Дизайн компонентов часто держится в секрете, которым компании не хотят делиться, поскольку он приносит им доход.

Любители и небольшие компании используют общедоступные, качественные и общедоступно задокументированные детали, чтобы облегчить себе жизнь и инвестиции в проект. Крупные компании могут легко нанять людей для разработки собственного чипа, который будет содержать только необходимые функции. (С продуктами массового производства вы можете таким образом сэкономить деньги, поскольку вам не всегда нужно покупать даже неиспользуемые ресурсы стандартного контроллера). Еще одна причина использовать нестандартный (возможно, даже непрограммируемый) чип — хранить код в нем в секрете.


Имейте в виду, что мир Arduino для любителей и мир потребительской электроники, такой как смартфоны, довольно разные. Конечно, они основаны на одних и тех же принципах, но то, как что-то делается и создается, сильно отличается.

,

Большое спасибо за такую подробную информацию. Итак, что я должен рассмотреть, чтобы узнать, чтобы иметь достаточно знаний для разработки собственной собственной ИС? Есть ли какие-нибудь книги и ссылки для этого., @Ravikiran

Честно говоря: нет, я не могу рекомендовать чему-то учиться для этого. Конечно, есть много хороших книг, но я недостаточно знаю об этой области, чтобы что-то рекомендовать. Разработка собственной ИС здесь важнее всего. Это не то, чему можно легко научиться. И вы находитесь не на том сайте, чтобы просить об этом, поскольку Arduino не предназначен для индивидуального проектирования ИС. Почему вы хотите разработать свою собственную ИС в первую очередь? Из вашего вопроса я предположил, что вы не делаете это как работу, @chrisl

Я просто попросил попробовать. На самом деле я не готов разрабатывать какие-либо собственные микросхемы. И, кстати, я очень увлечен созданием продукта и его продажей. У меня есть идея, и я хотел, чтобы мое воображение стало реальностью. Так как я новичок в электронике, так как я студент CSE. Я всегда придерживаюсь проектов разработки программного обеспечения. Я никогда не думал, что буду настолько увлечен электроникой, как сегодня. Я хотел повозиться с новым продуктом, который весь день крутится у меня в голове. Но из-за моего опыта в электронике я чувствую себя потерянным., @Ravikiran

Электроника внутренностей ИС похожа на электронику дискретных компонентов, но намного сложнее. Сначала вам нужно понять электронику в целом, прежде чем вы сможете даже начать думать о внутреннем устройстве ИС. Я думаю, что это вне вашей досягаемости. Вместо этого вы можете просто использовать общедоступные детали, чтобы сделать свой продукт и продать его. Это будет намного проще, особенно если вы хотите начать продавать свой продукт в этом столетии. Возьмите свою страсть и вложите ее в обычную электронику, а не в разработку интегральных схем. Когда у вас будет достаточно опыта, вы все равно сможете изучить эту тему., @chrisl

Чтение таблицы данных — это своего рода искусство, и попытка начать с чего-то вроде датчика SPI, в котором отсутствует даже демонстрационный код, требует очень крутой кривой обучения. Если вы хотите узнать об интерфейсе через одну из этих шин, попробуйте получить что-то вроде датчика температуры LM75, для которого есть приличные таблицы данных. Затем попробуйте интерфейс без лишнего гугления — и без единой строчки кода, который вы не понимаете., @Chris H