MementoMori 4 3 июня, 2023 Опубликовано 3 июня, 2023 · Жалоба Нужно согласовать по SPI контроллер STM32 (3.3 вольт) и TLE6240 (5 вольт). CS, SCK и SO, то есть 3 линий мне хватит. 5-вольтовый ответ от TLE6240 STMка стерпит. Посоветуйте что-нибудь доступное в современных условиях. Желательно в корпусе с шагом 1.27 P.S. Я ведь правильно понял, что без согласования это https://www.infineon.com/dgdl/TLE6240GP_V3_1_1.pdf?fileId=db3a304412b407950112b426974b39f1 не будет работать с STM32? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zig 34 3 июня, 2023 Опубликовано 3 июня, 2023 · Жалоба Работать будет и без преобразователь уровней. Для единицы ей достаточно 2В (параметр 5.2.2 Vinh Input High Voltage). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 79 3 июня, 2023 Опубликовано 3 июня, 2023 · Жалоба 32 минуты назад, MementoMori сказал: Нужно согласовать по SPI контроллер STM32 (3.3 вольт) и TLE6240 (5 вольт). Если использовать 5V-tolerant выводы STM, то ничего не надо согласовывать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Allregia 9 3 июня, 2023 Опубликовано 3 июня, 2023 · Жалоба 1 hour ago, MementoMori said: P.S. Я ведь правильно понял, что без согласования это https://www.infineon.com/dgdl/TLE6240GP_V3_1_1.pdf?fileId=db3a304412b407950112b426974b39f1 не будет работать с STM32? Читайте внимательнее даташиты, по Вашим-же собственным ссылкам 🙂 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 83 3 июня, 2023 Опубликовано 3 июня, 2023 · Жалоба Работать без согласования уровней - будет. Хотябы уже потому, что у STM32 некоторые пины отмечены как FT - с возможностью прямого подключения к пятивольтовой логике. Ну а у TLE6240 смотрим вот эту табличку и видим, что на входе уровень высокого сигнала попадает в трехвольтовый диапазон выхода СТМ-ки. Поэтому подключение возможно - прямое. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 3 июля, 2023 Опубликовано 3 июля, 2023 · Жалоба Запоздалое спасибо за советы. Сделал плату, спаял.... никак микросхема не хочет отзываться на команды от SPI. Есть такая команда там (страница 23 даташита, ссылка на который в первом посте) Quote HLHL LLLL XXXX XXXX Echo-function of SPI; SI direct connected to SO. То есть нужно отправить 16 бит - два байта 0xA000 и на SO получим эхо. У меня эха нет - выход в лог.0. Схема вот Код вот: static void MX_SPI1_Init(void) { /* SPI1 parameter configuration*/ hspi1.Instance = SPI1; hspi1.Init.Mode = SPI_MODE_MASTER; hspi1.Init.Direction = SPI_DIRECTION_2LINES; hspi1.Init.DataSize = SPI_DATASIZE_16BIT; hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; hspi1.Init.NSS = SPI_NSS_SOFT; hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_32; hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; hspi1.Init.TIMode = SPI_TIMODE_DISABLE; hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; hspi1.Init.CRCPolynomial = 10; if (HAL_SPI_Init(&hspi1) != HAL_OK) { Error_Handler(); } -------------------------------------- HAL_GPIO_WritePin(GLOBAL_RESET_GPIO_Port, GLOBAL_RESET_Pin, GPIO_PIN_RESET); HAL_Delay(50); HAL_GPIO_WritePin(GLOBAL_RESET_GPIO_Port, GLOBAL_RESET_Pin, GPIO_PIN_SET); // СБРАСЫВАЕМ ДРАЙВЕР HAL_GPIO_WritePin(TLE_CS_GPIO_Port, TLE_CS_Pin, GPIO_PIN_RESET); //CS вниз HAL_Delay(10); rg=0xA0; // ЗАДАЕМ КОМАНДУ ПЕРЕКЛЮЧЕНИЯ В РЕЖИМ SPI - эха dt=0x00; // ПО БАРАБАНУ, ЧТО ЗДЕСЬ БУДЕТ while(1) { dtt=(uint16_t)rg<<8| dt; // это чтоб на ходу, через отладчик менять SPI посылку HAL_SPI_Transmit(&hspi1, (uint8_t*)&dtt, 1, 5000); HAL_Delay(1); } В результате на линии, по которой в контроллер идут данные от драйвера постоянный ноль. Если абстрагироваться от кода, вот осцилллограмма с SCK линией, вроде все синхронно: Питание на микросхеме есть, сигналы проходят (щупал осциллографом на пинах микросхемы). Что не так? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vov4ick 39 3 июля, 2023 Опубликовано 3 июля, 2023 · Жалоба Похоже, фаза SPI не та, микросхема считывает по спаду тактового сигнала. Я бы ещё поставил резисторов между этими ключами и МК чтобы МК не сгорел при сгорании ключей, не доверяю я им 🙂 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 3 июля, 2023 Опубликовано 3 июля, 2023 · Жалоба 5 minutes ago, vov4ick said: Похоже, фаза SPI не та, микросхема считывает по спаду тактового сигнала. Я бы ещё поставил резисторов между этими ключами и МК чтобы МК не сгорел при сгорании ключей, не доверяю я им 🙂 поменял: Quote hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; hspi1.Init.CLKPhase = SPI_PHASE_2EDGE; Получил следующую осциллограмму На SO драйвера все та же тишина. Проверил так, на всякий случай, не тянет ли эту линию к нулю контроллер или еще что-то - не подтвердилось, при подаче 1 на RESET драйвера SO перешел в высокоомное состояние. Что-то я не пойму.... Quote To check the proper function of the serial interface the TLE6240GP provides a “SPI Echo Function”. By entering HLHL as control word, SI and SO are connected during the next CS period. By comparing the bits clocked in with the serial output bits, the proper function of the SPI interface can be verified. This internal loop is only closed once (for one CS period). The “Echo Function” does not cause any internal processing of data and after the next CS signal the SO data is ‘0’ (all registers reset). Режим эха должен включаться в следующем CS-периоде. То есть, нужно подать команду, передернуть CS и получим эхо. Вместе с тем написано, что CS сбрасывает регистры. Так как получить это эхо? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vov4ick 39 3 июля, 2023 Опубликовано 3 июля, 2023 · Жалоба Может надо сначала нужный режим "диагностики" включить, а при включении она выдаёт все нули - все ключи выключены. Для записи слова нужно передёрнуть CS, пишут на стр. 21 паспорта и дальше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 3 июля, 2023 Опубликовано 3 июля, 2023 · Жалоба 11 minutes ago, vov4ick said: Может надо сначала нужный режим "диагностики" включить, а при включении она выдаёт все нули - все ключи выключены. Для записи слова нужно передёрнуть CS, пишут на стр. 21 паспорта и дальше. Я счел включение эха более прогнозируемым по результату действием. А режим диагностики включал - тоже нули. Но вот что интересно. Настроил я SPI на Only master. То есть, перевел SI контроллера в высокоомный режим. И вот что получил Синяя -это SO драйвера. Если коснуться пальцем щупа, то оциллограмма прыгает. То есть линия SO в воздухе. Видно что внутри контроллера что-то происходит, какие-то переключения синхронно с клоком, причем возмущения на линии зависят от того, что на входе (1 или 0) но на линию SO они сильно не влияют. Как будто эта линия в высокоомном состоянии. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vov4ick 39 3 июля, 2023 Опубликовано 3 июля, 2023 · Жалоба В паспорте пишут что SO в Z-состоянии только когда CS=1. Может, ноги попутаны, питание не идёт или микросхема плохая. Ещё там есть RESET и PRG, тоже можно проверить, мало ли что. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 3 июля, 2023 Опубликовано 3 июля, 2023 · Жалоба 12 minutes ago, vov4ick said: В паспорте пишут что SO в Z-состоянии только когда CS=1. Может, ноги попутаны, питание не идёт или микросхема плохая. Ещё там есть RESET и PRG, тоже можно проверить, мало ли что. Одну ошибку нашел - у меня на RESET после старта ноль подавался, а надо единицу. Исправил - больше нет висящей в воздухе линии, драйвер держит ее в нуле. Питание подается, мерял на на ноге микросхемы. PRG не имеет отношения к обмену по SPI. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=AK= 17 4 июля, 2023 Опубликовано 4 июля, 2023 · Жалоба On 6/3/2023 at 5:17 PM, MementoMori said: Посоветуйте что-нибудь доступное в современных условиях. 2N7002 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 4 июля, 2023 Опубликовано 4 июля, 2023 · Жалоба 55 minutes ago, =AK= said: 2N7002 Уже неактуально. Проблемы с SPI актуальны) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 4 июля, 2023 Опубликовано 4 июля, 2023 · Жалоба Друзья, есть еще идеи? Ума не приложу, в чем дело. две микросхемы пробовал (предполагая, что первая неисправна) - бестолку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться