|
Чтение по SPI из DRV8303 |
|
|
|
May 11 2018, 07:30
|
Профессионал
    
Группа: Участник
Сообщений: 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
Эскизы прикрепленных изображений
|
|
|
|
|
 |
Ответов
|
May 12 2018, 18:44
|
Частый гость
 
Группа: Участник
Сообщений: 169
Регистрация: 31-08-05
Из: New York
Пользователь №: 8 118

|
Цитата(Jenya7 @ May 12 2018, 13:15)  даже лог. анализатор показывает спад и подъем МИСО синхронизированные с клоком. Так же быть не должно по моему? на подъеме или спаде клока сигнал должен присутствовать. А значения CPOL, CPHA правильно установлены?
--------------------
ASB
|
|
|
|
|
May 13 2018, 04:56
|
Профессионал
    
Группа: Участник
Сообщений: 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
|
|
|
|
|
May 15 2018, 09:06
|

Профессионал
    
Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877

|
Цитата(Jenya7 @ May 13 2018, 07:56)  я не нашел в тех. описании драйвера требуемый СПИ режим поэтому перепробовал все То есть в даташите гадкие TI-шные инженеры спрятали figure 1 "SPI Slave Mode Timing Definition"? Или в reference manual'е не менее гадкие ST'шники убрали картинку "Data clock timing diagram" ? Сложнейшая задача "найди две картинки", не поспоришь...
--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
|
|
|
|
Сообщений в этой теме
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    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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|