реклама на сайте
подробности

 
 
> Flir Lepton v2 - проблемы с получением кадра
Bakradze
сообщение Jun 27 2018, 15:35
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 432
Регистрация: 17-12-09
Пользователь №: 54 306



Уважаемые специалисты, подскажите какие есть секреты у Lepton v2? Уже который день не получается добиться взаимности от указанного модуля.

Инициализация SPI

void spi_init()
{
SPI_InitTypeDef SPI_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_SPI1);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource5, GPIO_AF_SPI1);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource6, GPIO_AF_SPI1);

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_6 | GPIO_Pin_5;
GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_Init(GPIOA, &GPIO_InitStructure);


SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; //полный дуплекс
SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b; // передаем по 8 бит
SPI_InitStructure.SPI_CPOL = SPI_CPOL_High; // Полярность и
SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge; // фаза тактового сигнала
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; // Управлять состоянием сигнала NSS программно
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2; // Предделитель SCK
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; // Первым отправляется старший бит
SPI_InitStructure.SPI_Mode = SPI_Mode_Master; // Режим - мастер
SPI_Init(SPI1, &SPI_InitStructure); //Настраиваем SPI1
SPI_Cmd(SPI1, ENABLE); // Включаем модуль SPI1
SPI_NSSInternalSoftwareConfig(SPI1, SPI_NSSInternalSoft_Set);
}


Функция чтения пакета имеет следующий вид:

void read_packet(uint8_t j)
{
uint16_t i;
GPIO_ResetBits(GPIOA,GPIO_Pin_4); //CS=0

for(i=0;i<164;i++)
{
SPI_I2S_SendData(SPI1, 0x00);
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET); //ждем окончание передачи
leptonpkt[j][i]=SPI_I2S_ReceiveData(SPI1); //размещаем пакеты в буфер
}

GPIO_SetBits(GPIOA,GPIO_Pin_4); //CS=1

}


В мэйне происходит так:

uint8_t leptonpkt[60][164];

int main()
{

GPIO_SetBits(GPIOA,GPIO_Pin_4);
//задержка
GPIO_ResetBits(GPIOA,GPIO_Pin_4);

for(j=0;j<60;j++) //заполняем буфер строками
{
read_packet(j);
}

}



Проблема заключается в том, что лептон шлет всякую ерунду, при этом ни одного пакета с номером строки. Все настройки - по умолчанию: AGC off, telemetry disabled итд
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Bakradze
сообщение Jun 28 2018, 11:54
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 432
Регистрация: 17-12-09
Пользователь №: 54 306



I2C читается-пишется, по SPI приходят пакеты по виду похожие на дискарды, частота клока около 6МГц

А без чтения версии firmware он не начнет выдавать данные по SPI?
Обязательно ли подключение MOSI?

Если что, тепловизор смонтирован в плату Lepton Breakout Board v 1.4



Сообщение отредактировал Bakradze - Jun 28 2018, 12:24
Go to the top of the page
 
+Quote Post
k155la3
сообщение Jun 29 2018, 06:09
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(Bakradze @ Jun 28 2018, 14:54) *
. . . Обязательно ли подключение MOSI?
судя по док-ии - не обязательно.
Проверьте настройки SPI процессора (полярность, фаза) на соотв-ие требованиям даташита. Неактивное состояние SCK == 1, защелка данных по Raise-фронту.
Если эти настройки не верные, то процессор будет принимать непонятночто. Это "типовая" ошибка в настройках интерфейса SPI.
Проверяйте правильность данных по CRC.
ps - в даташите, то о чем указано выше
Код
The Lepton uses SPI Mode 3 (CPOL=1, CPHA=1). SCK is high when idle. Data is set up
by the Lepton on the falling edge of SCK, and should be sampled by the host controller on
the rising edge of SCK.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th June 2025 - 04:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.01377 секунд с 7
ELECTRONIX ©2004-2016