Использование Broadcom AFBR-S50 с Arduino

Я пытаюсь взаимодействовать с датчиком ToF Broadcom AFBR-S50MV85G через SPI с помощью Arduino, что осложняется тем фактом, что предоставленная библиотека и справочное приложение написаны для микроконтроллеров NXP на базе Cortex M0. В документации говорится, что реализация интерфейсов SPI, IRQ, Debug и Timer позволит использовать их с другими платформами, но в ней явно не указано, какие функции требуют реализаций, или если все они это делают, и это также не разграничено в исходном коде.

В документации перечислены доступные командные слова, но нет адресов регистров, которые, я полагаю, используются независимыми от платформы скомпилированными библиотеками, которые поставляются вместе с ним. Это не оставляет мне возможности взаимодействовать вручную через SPI, а это означает, что моим единственным выбором, по-видимому, является попытка самостоятельно внедрить драйверы платформы, что, вероятно, займет у меня значительное количество времени.

Есть ли что-то еще, что я должен попробовать, прежде чем тратить время на то, что может не дать мне результатов? Кто-нибудь здесь раньше пользовался этим датчиком, и если да, не могли бы вы указать мне правильное направление?

PS: Документация, на которую я ссылаюсь, включена в SDK, предоставленный в разделе загрузки страницы продукта, и я не уверен, что мне разрешат повторно разместить ее где-нибудь еще, чтобы связать ее здесь.

, 👍3

Обсуждение

Добро пожаловать в удивительный мир Broadcom. Если вы не являетесь мировым технологическим гигантом с многомиллиардным капиталом, вы от них ничего не добьетесь. И то только с несколькими слоями NDA., @Majenko

@Majenko Да, я начинаю понимать это после попытки связаться с ними напрямую. Я ничего не мог из них вытянуть - я попытался пройти через Digi-Key, но даже они оказались в тупике. :/, @Joseph

У Эбена Аптона была такая же проблема с Частным детективом. Вот почему графика на Pi такая дерьмовая - Broadcom никому не даст информацию, необходимую для использования графического процессора. И он * работает* на Broadcom! Все, что есть на Pi, в основном было перепроектировано из других источников. Broadcom - это придурки., @Majenko

@Majenko Вау, это невероятно, я этого не знал. На самом деле это многое проясняет. * вздох* Надеюсь, кто-то еще совершил ту же ошибку, что и я, и ему повезло больше., @Joseph


2 ответа


2

Недавно я снова изучил это, и оказалось, что Broadcom выпустила руководство по переносу для этой библиотеки в августе 2020 года (почти через год после того, как я первоначально опубликовал этот вопрос), которое должно оказаться полезным для всех, кто пытается использовать этот датчик. Он предназначен для платформы STM32, а не для Arduino, но это самая подробная информация, предоставленная Broadcom в отношении этого продукта, и она должна стать, по крайней мере, отправной точкой.

Так получилось, что у меня есть доступ к плате Nucleo, используемой в руководстве, но в некоторых случаях у меня возникали некоторые проблемы с ее использованием из-за некоторых различий в структуре файлов / каталогов SDK. В конце концов я получил от него проходную сборку, но ничего не смог извлечь из самого датчика, а это значит, что я либо сделал что-то не так, либо повредил датчик в своих предыдущих попытках взаимодействовать с ним; во время моей последней попытки я склонялся к последнему. Я не думаю, что в ближайшее время вернусь к этому подразделению, так что, надеюсь, другим повезет больше. И если у кого-нибудь это получится, пожалуйста, сообщите об этом; Мне любопытно узнать, смогу ли я на самом деле использовать эту штуку, если куплю другую.

P.S: Я не отмечаю это как ответ, потому что а) мой вопрос был технически для Arduino, и б) я не смог подтвердить, что это работает.

,

Я перешел с Arduino на Blackpill (STM32F411CE) и смог заставить датчик работать. Мне пришлось пересобрать проект STM32CubeIDE на основе их примера, так как я не смог заставить их работать. Предоставленные ими тесты HAL были особенно полезны. Сенсор отлично работает даже под прямыми солнечными лучами, в отличие от других, таких как VL53L0X., @NateS


2

Я также искал информацию о AFBR-S50MV85G и подобных датчиках в течение прошлой недели.

Ну, я пытаюсь перенести его на ATxmegas (микросхемы, похожие на ATmegas, используемые в семействе Arduino), но я решил опубликовать свои результаты здесь, потому что это первая тема форума, которую я нашел об этом семействе датчиков.

Как упоминал Джозеф, Broadcom выпустила руководство по переносу на устройства Arm, но оно совсем не помогает, когда дело доходит до переноса на другие микроконтроллеры. Кроме того, минимальные требования к этой библиотеке в соответствии с руководством Broadcom по портированию следующие:

Минимальные требования к памяти: Оперативная память: 8 Кбайт (куча 4 Кбайт + стек 4 Кбайт) ПЗУ / Флэш-память: 128 кБайт

Из-за этого и других фактов я также прихожу к выводу, что невозможно ни перенести доступные библиотеки на 8-разрядные микроконтроллеры, ни разработать новые из-за отсутствия описания структуры регистра SPI.

,