Easyelectronics.ru

Электроника для всех
Текущее время: 05 июн 2020, 13:51

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Не работает SPI ремап с I2С (Решено)
СообщениеДобавлено: 11 мар 2020, 20:05 
Заглядывает иногда

Зарегистрирован: 12 янв 2012, 22:57
Сообщения: 179
Откуда: Томск
Всем привет!
Вылез такой нюанс. В проекте на контроллере STM32F103RBT6 используется I2C1, SPI1 оба мастер. Причём SPI1 ремапнут.
Отладил оба интерфейса по очереди всё работает, I2C c EEPROM, SPI с ENC28J60T.
Собираю всё вместе, сначала происходит инициализация I2C1 потом SPI1. И тут выясняется что SPI1 не работает с инициализированным I2C1.
Начал разбираться убрал всю инициализацию I2C нашёл затык, стоит только подать тактирование на I2C, как SPI уже не получается запустить.

Код:
RCC->APB1ENR   |= RCC_APB1ENR_I2C1EN;


Функция инициализации SPI
Код:
void SPI1_Init(void)
{
   RCC->APB2ENR |= RCC_APB2ENR_SPI1EN;   
   GPIO_Clk(RCC_GPIOA|RCC_AFIO, ON);
   
   //Ремап
   GPIO_RemapConfigLine(GPIO_Remap_SWJ_JTAGDisable, ON);
   GPIO_RemapConfigLine(GPIO_Remap_SPI1, ON);
   
   //Порт
   GPIO_ConfigLine(ENC28J60_CS_PORT, ENC28J60_CS_PIN, MODE_OUT10_PP, HIGH);
   GPIO_ConfigLine(GPIOB, PIN3, MODE_OUT10_APP, LOW); 
   GPIO_ConfigLine(GPIOB, PIN4, MODE_IN_PULL, HIGH);
   GPIO_ConfigLine(GPIOB, PIN5, MODE_OUT10_APP, LOW); 

   SPI1->CR1    |= SPI_CR1_MSTR;   
   SPI1->CR1    |= SPI_CR1_BR_0;   
   SPI1->CR1    |= SPI_CR1_SSI; 
   SPI1->CR1    |= SPI_CR1_SSM;   
   SPI1->CR1    |= SPI_CR1_SPE;
}


Посмотрел осциллографом, видно что нет данных на MOSI, эта же нога в режиме SMBus может быть ALERT, ну я даже её явно пытался отключить:

Код:
   I2C1->CR1 &= ~I2C_CR1_SMBUS;
   I2C1->CR1 &= ~I2C_CR1_SMBTYPE;
   I2C1->CR1 &= ~I2C_CR1_ALERT;

не помогает.
Побывал ещё на отладке с STM32F103C8T6, та же беда.

Блин, неужели они не могут в такой связки работать!?


Вложения:
Безымянный.jpg
Безымянный.jpg [ 180.94 Кб | Просмотров: 426 ]


Последний раз редактировалось ARV 12 мар 2020, 06:37, всего редактировалось 1 раз.
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не работает SPI ремап с I2С
СообщениеДобавлено: 11 мар 2020, 20:21 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 1182
ARV писал(а):
Блин, неужели они не могут в такой связки работать!?

Не могут, в Errata все расписано.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не работает SPI ремап с I2С
СообщениеДобавлено: 11 мар 2020, 20:27 
Заглядывает иногда

Зарегистрирован: 12 янв 2012, 22:57
Сообщения: 179
Откуда: Томск
Reflector писал(а):
ARV писал(а):
Блин, неужели они не могут в такой связки работать!?

Не могут, в Errata все расписано.


воооот же блин!

Спасибо за помощь!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не работает SPI ремап с I2С
СообщениеДобавлено: 11 мар 2020, 21:03 
Старожил
Аватара пользователя

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 1477
Ногодрыг.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не работает SPI ремап с I2С
СообщениеДобавлено: 11 мар 2020, 21:24 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 6755
Причем, ногодрыг I2C.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не работает SPI ремап с I2С
СообщениеДобавлено: 11 мар 2020, 21:40 
Заглядывает иногда

Зарегистрирован: 12 янв 2012, 22:57
Сообщения: 179
Откуда: Томск
u37 писал(а):
Причем, ногодрыг I2C.

Что это значит?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: mab7272, sed_alex


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB