BioUnit 0 3 марта, 2018 Опубликовано 3 марта, 2018 · Жалоба Здравствуйте. Имеется SIM800 (без всяких суффиксов). Так же есть SIM800M32_EAT_140409. Пытаюсь использовать SPI (упрощенный код): void spi_test(void) { ........... rc = eat_spi_init(FREC_DIV, EAT_SPI_4WIRE, EAT_SPI_BIT8, EAT_FALSE, EAT_FALSE); eat_trace("inited=%i", (int)rc); ........... rc = eat_spi_write(data, sizeof(data), IS_COMMAND); eat_trace("eat_spi_write=%i", (int)rc); } FREC_DIV - пытался разные делители IS_COMMAND - пытался разные значения (EAT_TRUE, EAT_FALSE) Функции возвращают, что все ОК (rc = EAT_TRUE), но никакого эффекта. В т.ч. смотрел осциллографом - тишина на выводах (согласно eat_periphery.h): EAT_PIN37_SDA = 37, (GPIO, SDA, SPICS) EAT_PIN7_CTS = 7, (GPIO, U2RXD, SPIMOSI) EAT_PIN8_RTS = 8, (GPIO, U2TXD, SPIMISO) EAT_PIN38_SCL = 38, (GPIO, SCL, SPISCK) Перебрал и другие пины с целью обнаружить сигнал хоть где-то. Тишина. Попробовал "прозвонить" пины, может кто из строя вышел. Набросал для этого такой метод: void testGPIO(u8 pin) { int i; eat_trace("test GPIO: %i", pin); eat_gpio_setup(pin, EAT_GPIO_DIR_OUTPUT, EAT_GPIO_LEVEL_HIGH); for (i = 0; i < 10; ++i) { eat_gpio_write(pin, EAT_GPIO_LEVEL_HIGH); eat_sleep(100); eat_gpio_write(pin, EAT_GPIO_LEVEL_LOW); eat_sleep(100); } eat_trace("test GPIO done"); } Все пины нормально тестятся (вижу сигнал на осциллографе). Что не так с SPI из SDK ? Уж больно не хочется писать свою реализацию. Спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BioUnit 0 9 марта, 2018 Опубликовано 9 марта, 2018 (изменено) · Жалоба Вообще, чертовщина какая-то. Попробовал вместо SPI использовать UART. На первом все отлично, но он мне нужен для AT. Попробовал задействовать второй. static const EatUart_enum eat_uart_app= EAT_UART_2; static void app_main(void *data) { ............................. if (eat_uart_open(eat_uart_app) == EAT_FALSE) { eat_trace("[%s] uart(%d) open fail!", __FUNCTION__, eat_uart_app); } else { EatUartConfig_st uart_config; uart_config.baud = EAT_UART_BAUD_57600; uart_config.dataBits = EAT_UART_DATA_BITS_8; uart_config.parity = EAT_UART_PARITY_NONE; uart_config.stopBits = EAT_UART_STOP_BITS_1; if (EAT_FALSE == eat_uart_set_config(eat_uart_app, &uart_config)) { eat_trace("[%s] uart(%d) set config fail!", __FUNCTION__, eat_uart_app); } eat_uart_set_send_complete_event(eat_uart_app, EAT_TRUE); eat_trace("[%s] uart(%d) Done!", __FUNCTION__, eat_uart_app); } Не работает так же, как и SPI. Ошибок при этом не выдает. Подскажите, знающие люди, что я делаю не так? Изменено 9 марта, 2018 пользователем BioUnit Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NovDS 0 13 марта, 2018 Опубликовано 13 марта, 2018 · Жалоба BioUnit, напишите на wireless собака mt-system.ru. Вышлю в ответ актуальный SDK, вполне возможно, что используете устаревшее ПО (судя по дате в названии сборки). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться