Przeszukaj forum
Pokazywanie wyników dla tagów 'ST67W61M'.
Znaleziono 1 wynik
-
Dzień dobry, Od kilku dni staram się utworzyć minimalną aplikacje dla ST67W61M (nowo wypuszczonego modułu WiFI/BLE od ST). Zestaw nad którym pracuje to NUCLEO-H753ZI i X-NUCLEO-67W61M (płytki połączone są przez standardowe złącze arduino). Tutaj link do kodu: https://github.com/RolandSobczak/H753ZI_WIFI Problem polega na tym, że nie jestem w stanie opuścić semafora w kodzie sterownika dostarczanego przez ST. Mianowicie w pliku: `Middlewares/ST/ST67W6X_Network_Driver/Driver/W61_at/w61_at_common.c:372` xReturned = xSemaphoreTake(mdm->sem_if_ready, pdMS_TO_TICKS(4000)); if (xReturned != pdPASS) { SYS_LOG_ERROR("sem_if_ready not received\n"); ret = -1; goto __err; } Do modułu staram się podłączyć przez SPI1. Tutaj jest moja inicjalizacja SPI1: void MX_SPI1_Init(void) { /* USER CODE BEGIN SPI1_Init 0 */ /* USER CODE END SPI1_Init 0 */ /* USER CODE BEGIN SPI1_Init 1 */ /* USER CODE END SPI1_Init 1 */ hspi1.Instance = SPI1; hspi1.Init.Mode = SPI_MODE_MASTER; hspi1.Init.Direction = SPI_DIRECTION_2LINES; hspi1.Init.DataSize = SPI_DATASIZE_8BIT; hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; hspi1.Init.NSS = SPI_NSS_SOFT; hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_4; hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; hspi1.Init.TIMode = SPI_TIMODE_DISABLE; hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; hspi1.Init.CRCPolynomial = 0x0; hspi1.Init.NSSPMode = SPI_NSS_PULSE_ENABLE; hspi1.Init.NSSPolarity = SPI_NSS_POLARITY_LOW; hspi1.Init.FifoThreshold = SPI_FIFO_THRESHOLD_01DATA; hspi1.Init.TxCRCInitializationPattern = SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN; hspi1.Init.RxCRCInitializationPattern = SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN; hspi1.Init.MasterSSIdleness = SPI_MASTER_SS_IDLENESS_00CYCLE; hspi1.Init.MasterInterDataIdleness = SPI_MASTER_INTERDATA_IDLENESS_00CYCLE; hspi1.Init.MasterReceiverAutoSusp = SPI_MASTER_RX_AUTOSUSP_DISABLE; hspi1.Init.MasterKeepIOState = SPI_MASTER_KEEP_IO_STATE_DISABLE; hspi1.Init.IOSwap = SPI_IO_SWAP_DISABLE; if (HAL_SPI_Init(&hspi1) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN SPI1_Init 2 */ /* USER CODE END SPI1_Init 2 */ } Tutaj moja konfiguracja GPIO: #define CHIP_EN_Pin GPIO_PIN_11 #define CHIP_EN_GPIO_Port GPIOE #define SPI_RDY_Pin GPIO_PIN_13 #define SPI_RDY_GPIO_Port GPIOE #define STLINK_RX_Pin GPIO_PIN_8 #define STLINK_RX_GPIO_Port GPIOD #define STLINK_TX_Pin GPIO_PIN_9 #define STLINK_TX_GPIO_Port GPIOD #define SPI_CS_Pin GPIO_PIN_14 #define SPI_CS_GPIO_Port GPIOD Patrząc w schematy ze strony ST: https://www.st.com/resource/en/schematic_pack/mb2230-antenna-a04-schematic.pdf https://www.st.com/resource/en/schematic_pack/mb1364-h753zi-c01_schematic.pdf Po lewej schemat pinout X-NUCLEO po prawej płytki z MCU Na powyższych grafikach widać, że połączenia powinny wyglądać następująco: Czy ktoś jest mi wstanie podpowiedzieć dlaczego nie mogę przejść tego kroku? Widzę, że ten semafor jest opuszczany w tym miejscu: `Middlewares/ST/ST67W6X_Network_Driver/Driver/W61_at/w61_at_common.c:723` MODEM_CMD_DEFINE(on_cmd_ready) { struct modem *mdm = (struct modem *)data->user_data; (void)xSemaphoreGive(mdm->sem_if_ready); return 0; } Ale nie rozumiem co wywołuje tą część kodu... Poniżej jeszcze zrzuty konfiguracji w CubeMX:
