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

 
 
> Чтение по SPI из DRV8303
Jenya7
сообщение May 11 2018, 07:30
Сообщение #1


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

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Есть функции чтения/записи
Код
void DRV8308_WriteRegister(uint8_t address, uint16_t data)
{
    //clear bit7 in address
    address &= 0x7F;
      
    CS1_HI;  //inverse logic!!!
    
    SPI_TransferByte(DRV8308_SPI, address);
    SPI_TransferByte(DRV8308_SPI, data>>8);
    SPI_TransferByte(DRV8308_SPI, data&0xFF);
    
    CS1_LO;
}

void DRV8308_ReadRegister(uint8_t address, uint16_t *data)
{
    uint8_t tmp_data[2]={0};
    
    //set bit7 in address
    address |= 0x80;
  
    CS1_HI;  //inverse logic!!!
    
    SPI_TransferByte(DRV8308_SPI, address);
    tmp_data[0] = SPI_TransferByte(DRV8308_SPI, 0x00);
    tmp_data[1] = SPI_TransferByte(DRV8308_SPI, 0x00);

    CS1_LO;
    
    *data = (tmp_data[0] << 8) | tmp_data[1];
}

Читаю из регистра 0x2A - дефолтное значение 0x18 - получаю 0x08
Для проверки пишу в регистр 0x07
пишу 0x07 - читаю 0x03
пишу 0x0F - читаю 0x07
пишу 0x09 - читаю 0x00
Подсоеденил логик аналайзер - все сигналы в норме - пин МИСО возвращает правильные значения. Единственно что - на 0x07 и 0x0F последний бит почему то дребезжит.Почему контролер ( STM32F303CB) не читает правильно пин МИСО?

Сообщение отредактировал Jenya7 - May 11 2018, 08:23
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
haker_fox
сообщение May 11 2018, 08:55
Сообщение #2


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (Jenya7 @ May 11 2018, 15:30) *
Почему контролер ( STM32F303CB) не читает правильно пин МИСО?

Режим SPI (0, 1, 2, 3) на микроконтроллере правильно настроили? Альтернативную функцию пина включили?)


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
Jenya7
сообщение May 11 2018, 09:14
Сообщение #3


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

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(haker_fox @ May 11 2018, 14:55) *
Режим SPI (0, 1, 2, 3) на микроконтроллере правильно настроили? Альтернативную функцию пина включили?)

я все режимы перебрал
CODE
#define SPIx_SCK_PIN GPIO_Pin_3
#define SPIx_MISO_PIN GPIO_Pin_4
#define SPIx_MOSI_PIN GPIO_Pin_5

#define SPIx_SCK_SOURCE GPIO_PinSource3
#define SPIx_MISO_SOURCE GPIO_PinSource4
#define SPIx_MOSI_SOURCE GPIO_PinSource5

#define SPIx_GPIO_PORT GPIOB
#define SPIx_AF GPIO_AF_5

#define CS1_HI (GPIOB->BSRR = GPIO_Pin_6)
#define CS1_LO (GPIOB->BRR = GPIO_Pin_6)

void SPI_Setup(SPI_TypeDef *SPIx)
{
GPIO_InitTypeDef GPIO_InitStructure;
SPI_InitTypeDef SPI_InitStructure;

uint32_t spi_mode = 0;

CS1_LO;

GPIO_PinAFConfig(SPIx_GPIO_PORT, SPIx_SCK_SOURCE, SPIx_AF);
GPIO_PinAFConfig(SPIx_GPIO_PORT, SPIx_MOSI_SOURCE, SPIx_AF);
GPIO_PinAFConfig(SPIx_GPIO_PORT, SPIx_MISO_SOURCE, SPIx_AF);

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

/* SPI SCK pin configuration */
GPIO_InitStructure.GPIO_Pin = SPIx_SCK_PIN;
GPIO_Init(SPIx_GPIO_PORT, &GPIO_InitStructure);

/* SPI MOSI pin configuration */
GPIO_InitStructure.GPIO_Pin = SPIx_MOSI_PIN;
GPIO_Init(SPIx_GPIO_PORT, &GPIO_InitStructure);

/* SPI MISO pin configuration */
GPIO_InitStructure.GPIO_Pin = SPIx_MISO_PIN;
GPIO_Init(SPIx_GPIO_PORT, &GPIO_InitStructure);

//RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);
if (SPIx == SPI1)
{
RCC->APB2ENR |= RCC_APB2Periph_SPI1;
}
else if (SPIx == SPI2)
{
RCC->APB1ENR |= RCC_APB1Periph_SPI2;
}
else if (SPIx == SPI3)
{
RCC->APB1ENR |= RCC_APB1Periph_SPI3;
}
else
return;

/*!< SPI Config */
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
switch(spi_mode)
{
case 0:
SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;
break;
case 1:
SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
break;
case 2:
SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;
break;
case 3:
SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
break;
}
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_32; //APB1=36Mhz => ~1Mhz //APB2=72Mhz
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
SPI_InitStructure.SPI_CRCPolynomial = 7;
SPI_Init(SPIx, &SPI_InitStructure);

/* SPI enable */
SPIx->CR1 |= SPI_CR1_SPE;
}


Сообщение отредактировал IgorKossak - May 11 2018, 19:07
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Jenya7   Чтение по SPI из DRV8303   May 11 2018, 07:30
|- - Forger   Попробуйте сделать все это "в лоб" - ног...   May 11 2018, 09:54
- - haker_fox   А драйвер SPI вы сами писали? Если нет, то лучше п...   May 11 2018, 14:12
- - k155la3   Проверьте осцилографом уровни на линиях SPI. При н...   May 11 2018, 19:43
|- - Jenya7   Цитата(k155la3 @ May 12 2018, 01:43) Пров...   May 12 2018, 17:15
|- - Aleksandr Baranov   Цитата(Jenya7 @ May 12 2018, 13:15) даже ...   May 12 2018, 18:44
|- - Jenya7   Цитата(Aleksandr Baranov @ May 12 2018, 23...   May 13 2018, 04:56
|- - esaulenka   Цитата(Jenya7 @ May 13 2018, 07:56) я не ...   May 15 2018, 09:06
|- - k155la3   Цитата(Jenya7 @ May 13 2018, 07:56) . . ....   May 15 2018, 09:40
- - Jenya7   Выяснилось что МИСО пин драйвера прямо скажем хилы...   May 17 2018, 12:55
|- - haker_fox   QUOTE (Jenya7 @ May 17 2018, 20:55) Выясн...   May 18 2018, 00:35
|- - k155la3   Цитата(Jenya7 @ May 17 2018, 15:55) Выясн...   May 18 2018, 09:58
|- - Jenya7   Цитата(k155la3 @ May 18 2018, 14:58) Непл...   May 19 2018, 21:16
- - Serge V Iz   постоянная времени при R=3.3k и C=всего лишь 100p ...   May 20 2018, 06:40
|- - Jenya7   Цитата(Serge V Iz @ May 20 2018, 11:40) п...   May 20 2018, 08:11
- - k155la3   Судя по осцилограмме - явный криминал. В линию MIS...   May 20 2018, 16:42
|- - jcxz   Цитата(k155la3 @ May 20 2018, 19:42) где ...   May 20 2018, 16:53
- - Serge V Iz   Да, вроде, в самом деле, ОК. --- Тьфу, не тот обве...   May 20 2018, 17:22


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

 


RSS Текстовая версия Сейчас: 11th August 2025 - 14:17
Рейтинг@Mail.ru


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