Сенсортильный

Самоудло
Солнце 29 октября 2017 г. 8:28 вечера
У кого -нибудь повезло, что Сент -Сенсортиле работает с Arduino IDE?

Я знаю, что он использует STM32L476, который поддерживается STM32duino, но я даже не смог получить светодиод в мигание, даже после добавления надлежащего вывода в файл варианта.

Любая помощь очень ценится.

Rogerclark
Солнце 29 октября 2017 г. 9:48 вечера
Перенесите эту ветку в ядро ​​STM, так что, возможно, Фредерик из STM может прокомментировать

fpistm
Пн 30 октября 2017 г., 7:01
Привет сам,

Я не знаю/есть этот комплект (я не знаю (пока ;) Все портфолио ST).
В настоящее время это не планируется добавлять это. Я мог бы помочь вам, если вы хотите добавить это.
Некоторые из компонентов поддерживаются библиотеками Arduino (LPS22HB, MP34DT04 (по ходу), ...)
В любом случае, я думаю, должно быть возможно использовать вариант Nucleo-L476RG, чтобы добавить основную поддержку.
Может быть, конфигурация часов неверна, поэтому светодиод не мигает

Самоудло
Пн 30 октября 2017 г. 15:59
Спасибо за ответ!

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

Глядя на папку варианта немного ближе, похоже, мне нужно добавить светодиодные булавки (PA14 и PG12) в больше, чем просто вариант.H Файл. Я сделаю это сегодня вечером и сообщу. Что касается конфигураций часов, у меня будет немного чтения, чтобы сделать.

еще раз спасибо.

Самоудло
Вт 31 октября 2017 г. 15:02
Таким образом, похоже, что PA14 (SWD) моргает на сенсортиле с вариантом L476RG, это плюс! Woohoo!

Я все еще работаю над тем, чтобы получить другой светодиод на PG12, чтобы мигать.

fpistm
Вт 31 октября 2017 г. 16:28
Хороший.
Не стесняйтесь делать пиар на GitHub.
Я сейчас в отпуске. Я мог бы помочь больше на следующей неделе.

Самоудло
Ср. 01 ноября 2017 г. 2:15
Я нахожусь в точке, когда я думаю, что проблема, предотвращая мигание PG12, может быть часом, включенным в GPIOG, как вы упоминали ранее - но я не могу на всю жизнь найти, где это включено. Куда бы я это произошло?

Наслаждайтесь отпуском!

Каниджа
Ср. 01 ноября 2017 г. 11:53
Если вы взяли вариант ucleo_l476rg в качестве шаблона, должны быть включены часы GPIOG.
Как вы можете видеть в «arduino_core_stm32/system/drivers/cmsis/device/stm32l4xx/include/stm32l476xx.h "у вас есть:
#define gpiog_base (ahb2periph_base + 0x0000u)
и
#define gpiog ((gpio_typedef *) gpioa_base)

В «STM32L4XX_HAL_RCC.H "__hal_rcc_gpiog_clk_enable ()" определяется:
https: // github.com/stm32duino/arduino_c ... RCC.h#784

В «Портнаме».c "__hal_rcc_gpiog_clk_enable ()" вызывается:
https: // github.com/stm32duino/arduino_c ... мс.C#L136

Вы используете пример Blink?
Какая ошибка вы получите?

Самоудло
Ср. 01 ноября 2017 г. 13:19
Большое спасибо за ответ, и указали мне на эти файлы.

Что ж, если часы GPIOG уже включены, то я не могу.

Я использую пример Blink, и он компилируется и мигает без ошибок.
void setup() { pinMode(PG12, OUTPUT); } void loop(){ digitalWrite(PG12, HIGH); delay(500); digitalWrite(PG12, LOW); delay(500); }

Каниджа
Ср. 01 ноября 2017 г. 14:24
Какую ошибку вы получаете, когда вы компилируете/проверяете эскиз ?
Или он компилируется без ошибок?

Самоудло
Ср. 01 ноября 2017 г. 14:26
Он компилируется без ошибок

Каниджа
Ср. 01 ноября 2017 г. 14:36
Хорошо, я попытался скомпилировать ваш код с ucleo_l476rg и получил эту ошибку:
«PG12» не был объявлен в этой области.
Итак, вы, вероятно, определили PG12, но, очевидно, не в порядке.

Попробуйте с названием PIN PG_12 вместо PG12 в вашем эскизе Blink.

Самоудло
Ср. 01 ноября 2017 г. 14:48
Я попробовал с PG_12 в эскизе, который также скомпилирован без ошибок, но тоже не работал.

Также добавил #Define LED2 PG_12 и использовал LED2 в эскизе, который также составлен без ошибок, но тоже не работал.

Я добавил PG_12 в вариант.CPP и PG12 в вариант.H, в том же положении соответствующего массива.

Это позаботилось о ошибке "PG12", не было объявлено в этой области ".

Каниджа
Ср. 01 ноября 2017 г. 14:54
Вам не нужно добавлять PG_12 где угодно, потому что он уже в "Pinnames.час":
https: // github.com/stm32duino/arduino_c ... мс.H#L151

Самоудло
Ср. 01 ноября 2017 г. 15:06
Хм.. Как вы думаете, потому что я добавил это в .Файл CPP, который окажет на него негативное влияние?

Мне придется поиграть с этим, когда вернусь домой.

Каниджа
Ср. 01 ноября 2017 г. 15:49
Выберите «ucleo_l476rg» (не ваш сенсортный вариант),
и попробуйте с PG_12 в вашем эскизе.
Итак, мы можем увидеть, работает ли это с встроенным PG_12.

Самоудло
Ср. 01 ноября 2017 г., 17:03
Я использую вариант ucleo_l476rg - еще не сделал свой собственный.

Пробовал вчера PG_12, те же результаты - компилируются, но ничего не делают.

Светодиод определенно связан с PG12, вот схема: http: // www.ул.com/content/ccc/resource/ ... эматический.PDF

Также перекрестно проверил BSP от ST, и они привязаны к PG_12.

Каниджа
Ср. 01 ноября 2017 г. 18:32
Какие изменения вы внесли в вариант.час & вариант.CPP ?

Самоудло
Ср. 01 ноября 2017 г. 18:39
Только что добавил "PG12" в нижнюю часть массива Extern Const pinname DigitalPin [] в варианте.H и «pg_12» до нижней части этого в варианте.CPP (о чем вы упомянули, мне не понадобится, я попробую без этого в CPP сегодня вечером)

Каниджа
Ср. 01 ноября 2017 г. 18:55
Я поместил PG_12 рядом с PG12 в вариант.час

Вы добавили PG12 в вариант.h перед пендом ?

Самоудло
Ср. 01 ноября 2017 г., 19:04
Я поместил PG_12 рядом с PG12 в вариант.час - Нет, это комментарии рядом с PXX в варианте.час
Вы добавили PG12 в вариант.h перед пендом ? - Да

fpistm
Ср. 01 ноября 2017 г., 21:29
Проверьте быстро, ваше обновление верно, но светодиод включен, когда PG12 высок.
Он связан с SAI_SD Sensortile, поэтому, если он установлен на низком уровне, то светодиод всегда будет выключен.

Примечание. Использование PG_12 в эскизе неверно, так как это PinName, а не номер PIN -кода.

Еще одна попытка, которую можно сделать, - это использовать непосредственно ST HAL, это обходит все API ARDUINO: void setup() { GPIO_InitTypeDef gpio_init_structure; __HAL_RCC_GPIOG_CLK_ENABLE(); /* Configure the PG12 pin */ gpio_init_structure.Pin = GPIO_PIN_12; gpio_init_structure.Mode = GPIO_MODE_OUTPUT_PP; gpio_init_structure.Pull = GPIO_PULLUP; gpio_init_structure.Speed = GPIO_SPEED_HIGH; HAL_GPIO_Init(GPIOG, &gpio_init_structure); } // the loop function runs over and over again forever void loop() { HAL_GPIO_WritePin(GPIOG, GPIO_PIN_12, GPIO_PIN_SET); delay(1000); // wait for a second HAL_GPIO_WritePin(GPIOG, GPIO_PIN_12, GPIO_PIN_RESET); delay(1000); // wait for a second }

Самоудло
Чт, 02 ноября 2017 г. 2:34
Я попробовал код, чтобы использовать ST HAL напрямую, и, конечно же, он не сработал.

Просмотр схемы и пример MEMS, предоставленное ST, похоже, что SAI_SD подключен к аудиоплике. Тем не менее, я остаюсь в покое pg12 на данный момент :ржу не могу:

Двигается, хотя - PC0, PC1 и SWD PINS! Хороший сюрприз после небольшого разочарования :)

Мне нужно сделать свой собственный вариант, чтобы все было интуитивно понятным здесь.. И поэтому начинается проект!

fpistm
Чт, 02 ноября 2017 г., 7:46 утра
Ссылаясь на руководство пользователя, стр. 10:
http: // www.ул.com/resource/en/user_manu ... 320099.PDF

Для PG12 логический уровень этих контактов упоминается в vddio2.
Источник питания
Сенсорная плата имеет следующие выводы ввода:
1. VIN - это вход для регулятора встроенного напряжения, генерирующего 1.8 В (максимум 150 мА).
2. VDDUSB является вводом для выводов STM32L4 VDDUSB и VDDIO2 (для использования
STM32L4 USB OTG Периферийное устройство, vddusb должен быть ≥ 3 В)
Какой источник питания вы используете?

Самоудло
Чт, 02 ноября 2017 г. 11:10
Я питаюсь через USBVDD - светодиод работает, когда загружается пример ST Allmems1.

Cparata
Ср 29 ноября 2017 г. 9:16
Что касается библиотек сенсорных датчиков MEMS для Sensortile, к сожалению, библиотеки датчиков MEMS, в настоящее время доступные на STM32Duino Repository. Поддержите только интерфейс I2C. Эти библиотеки датчиков MEMS могут быть легко расширены для поддержки 4-проводов SPI (нам просто нужно добавить новый конструктор с экземпляром SPI и 2 новых реализации для методов IO_READ и IO_WRITE)). В вместо этого на Sensortile датчики MEMS связаны с интерфейсом SPI-3-провода (это означает, что PIN MISO не подключен и используется штифт MOSI в качестве передачи в качестве получения данных на устройство/от устройства). Таким образом, для поддержки 3-проводов SPI нам необходимо расширить класс SPI в ядрах STM32, чтобы внедрить также эту функциональность. После этого должно быть возможно расширить классы датчиков MEMS для поддержки 3-проводной автобусы SPI.

[STM32Generic] FSMC - SRAM