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

 
 
> Чтение по 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
Ответов
k155la3
сообщение May 11 2018, 19:43
Сообщение #2


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

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



Проверьте осцилографом уровни на линиях SPI. При несоответствии уровней для лог. анализатора они может и "прокатывают",
и Вы видете как-бы идеальные диаграммы на ЛА, а процессор их видит неправильно.
На самом деле могут быть "зализанные", задавленные итп. импульсы-уровни по разным причинам.
Имеет смысл это проверить чтобы исключить из "реестра" возможных ошибок.
Go to the top of the page
 
+Quote Post
Jenya7
сообщение May 12 2018, 17:15
Сообщение #3


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

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



Цитата(k155la3 @ May 12 2018, 01:43) *
Проверьте осцилографом уровни на линиях SPI. При несоответствии уровней для лог. анализатора они может и "прокатывают",
и Вы видете как-бы идеальные диаграммы на ЛА, а процессор их видит неправильно.
На самом деле могут быть "зализанные", задавленные итп. импульсы-уровни по разным причинам.
Имеет смысл это проверить чтобы исключить из "реестра" возможных ошибок.
даже лог. анализатор показывает спад и подъем МИСО синхронизированные с клоком. Так же быть не должно по моему? на подъеме или спаде клока сигнал должен присутствовать.
Go to the top of the page
 
+Quote Post
Aleksandr Barano...
сообщение May 12 2018, 18:44
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 169
Регистрация: 31-08-05
Из: New York
Пользователь №: 8 118



Цитата(Jenya7 @ May 12 2018, 13:15) *
даже лог. анализатор показывает спад и подъем МИСО синхронизированные с клоком. Так же быть не должно по моему? на подъеме или спаде клока сигнал должен присутствовать.

А значения CPOL, CPHA правильно установлены?


--------------------
ASB
Go to the top of the page
 
+Quote Post
Jenya7
сообщение May 13 2018, 04:56
Сообщение #5


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

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



Цитата(Aleksandr Baranov @ May 12 2018, 23:44) *
А значения CPOL, CPHA правильно установлены?

я не нашел в тех. описании драйвера требуемый СПИ режим поэтому перепробовал все
Код
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;
  }

но если я правильно понимаю значение на МИСО пине берется либо по переднему либо по заднему фронту. А если они синфазны? мы не увидим правильные данные?
поэтому наверное когда МИСО возвращает 0x07 - 0111 - контролер видит 0x03 - 0011 - биты идут подряд и два последних бита он берет по клоку.
а скажем 0x09 - контроллер читает как 0 - биты стоят отдельно.

Сообщение отредактировал Jenya7 - May 13 2018, 05:54
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Jenya7   Чтение по SPI из DRV8303   May 11 2018, 07:30
- - haker_fox   QUOTE (Jenya7 @ May 11 2018, 15:30) Почем...   May 11 2018, 08:55
|- - Jenya7   Цитата(haker_fox @ May 11 2018, 14:55) Ре...   May 11 2018, 09:14
|- - Forger   Попробуйте сделать все это "в лоб" - ног...   May 11 2018, 09:54
- - haker_fox   А драйвер SPI вы сами писали? Если нет, то лучше п...   May 11 2018, 14:12
|- - 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 Текстовая версия Сейчас: 21st June 2025 - 02:30
Рейтинг@Mail.ru


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