Перейти к содержанию

glykon

Members
  • Постов

    2
  • Зарегистрирован

  • Посещение

Электроника

  • Стаж в электронике
    1-2 года

Достижения glykon

Новичок

Новичок (1/14)

0

Репутация

  1. Добрый день! Немного отпечатался 0x0900 это чтение, 0х2800 это запись, сейчас исправлю. По настройкам. Как я писал в начале, основную часть сгенерировала среда разработки, я снизил скорость передачи до 1,3 мб/с, так как в описании на микросхеме указана максимальная скорость передачи 5 Мбод. Также я изменил разрядность буфера микроконтроллера( с 8 бит на 16 бит ) не у верен, что тут прав, но в описании на ключ указано, что его буфер 16 битный. По сигналу ss(cs) смотрел осциллографом, примерно за 5 микросекунд до первого импульса sck, ss переходит в низкий уровень, а вот с возвращением, есть два варианта, если использовать функции колбэка и там его поднимать, то он поднимается примерно через 4 мкс после последнего такта sck, но я пробовал и сам поднимать по таймеру, сразу за последним тактом sck.
  2. Столкнулся с необходимость управлять 18 канальным силовым ключом TLE6244x через SPI. Уже неделю бьюсь. Если я правильно понял, то TLE6244x по умолчанию настроен на работу с SPI в режиме Slave, дополнительных настроек не требуется. В качестве mastera используется микроконтроллер stm32f407zgt6. Настройки SPI сгенерированы при помощи STM32Cube. Для обмена данными использую HAL библиотеку. //ABE подтянут к 5 в //RST сконфигурировано как GPIO out и после подачи питания находится в высоком уровне. Вот кусок кода. uint16_t data2Send [2] = { 0 }; uint16_t dataReceive [2] = { 0 }; uint16_t data2Send [0] = 0x0900; //WR_SCON0 включение выходов 1-8 0 вкл, 1 выкл. HAL_GPIO_WritePin( CSM1_GPIO_Port, CSM1_Pin, GPIO_PIN_RESET ); // Переключаем ss в низкий уровень, который вернется в высокий после прерывания ( завершения передачи ). HAL_SPI_TransmitReceive_IT ( &hspi2, (uint8_t*)data2Send,(uint8_t*)dataReceive, (uint16_t)1 ); // сама передача
×
×
  • Создать...