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

 
 
> w5100 + STM32- не корректно принимаю данные по SPI
Метценгерштейн
сообщение Jan 30 2013, 15:25
Сообщение #1


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

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



В своей программе в терминалке получаю ответ от визнета 0x12, но осциллом вижу, что визнет выдает мне число 0х13, значит я не корректно его обрабатываю. Из даташита по визнету по SPI понятно, что данные выставляются, когда sck период только начался и он еще в лог.0. Так же и на картинке осцилла. Т.е. возможные комбинации выставлены как положено.
Код
      SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
      SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;

тогда почему мой STM32 не хочет видеть число 0x13 ?




здесь D4- MISO, т.е. вход STM32

перепробовал все полярности в STM32- ничего не улучшилось.
замыкал напрямую в STM32 MISO на MOSI- принимаю то, что отправляю. Если разъединяю перемычку, принимаю 0xFF, а с соединенной, именно то, что отправил.

Что еще можно предпринять?

Сообщение отредактировал Метценгерштейн - Jan 30 2013, 18:35
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Метценгерштейн
сообщение Jan 31 2013, 16:43
Сообщение #2


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

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



Код
void WIZ_SPIInit()
{      
        // настройка SCS вывода (GPIOB, GPIO_Pin_8)  
      GPIOB->MODER |= GPIO_MODER_MODER8_0;  //output
    GPIOB->OTYPER &= ~GPIO_OTYPER_OT_8;  //Output push-pull
    GPIOB->OSPEEDR |=GPIO_OSPEEDER_OSPEEDR8;  //40 MHz
    GPIOB->PUPDR &=~GPIO_PUPDR_PUPDR8;  //No pull-up, pull-down
    
        // настройка TestPin выхода  (GPIOB, GPIO_Pin_7)
    GPIOB->MODER |= GPIO_MODER_MODER7_0;  //output
    GPIOB->OTYPER &= ~GPIO_OTYPER_OT_7;  //Output push-pull
    GPIOB->OSPEEDR |=GPIO_OSPEEDER_OSPEEDR7;  //40 MHz
    GPIOB->PUPDR &=~GPIO_PUPDR_PUPDR7;  //No pull-up, pull-down
    
        // настрока вывода Reset   (GPIOB, GPIO_Pin_5)    
    GPIOB->MODER |= GPIO_MODER_MODER5_0;  //output
    GPIOB->OTYPER &= ~GPIO_OTYPER_OT_5;  //Output push-pull
    GPIOB->OSPEEDR |=GPIO_OSPEEDER_OSPEEDR5;  //40 MHz
    GPIOB->PUPDR &=~GPIO_PUPDR_PUPDR5;  //No pull-up, pull-down
    
        // Линини SPI1 (Master) настройка SCLK, MISO и MOSI
        // PA12(MOSI), PA11(MISO), PA5(SCK), PA4(NSS) - AF, Push-Pull, AF5(SPI1)
      GPIOA->MODER |= GPIO_MODER_MODER12_1 | GPIO_MODER_MODER11_1 | GPIO_MODER_MODER5_1; //Alternate function
      GPIOA->OTYPER &= ~(GPIO_OTYPER_OT_12 | GPIO_OTYPER_OT_11 | GPIO_OTYPER_OT_5); //Push-Pull
      GPIOA->AFR[1] |= (5<<16 | 5<<12); //PA12 = AF5, PA11 = AF5
      GPIOA->AFR[0] |= (5<<20 | 5<<16); //PA5 = AF5, PA4 = AF5

        // настройка внешнего прерывания на PB3
      RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN;
      SYSCFG->EXTICR[0] |= SYSCFG_EXTICR1_EXTI3_PB; // Connect EXTI line 3 to PB
      EXTI->IMR |= EXTI_IMR_MR3; // какую линию выбираем из 23-х (у нас 3-я)
      EXTI->FTSR |= EXTI_FTSR_TR3; // настройка фронта-среза на акт. 0
      NVIC_EnableIRQ(EXTI3_IRQn);  // NVIC_DisableIRQ(EXTI0_IRQn);
      NVIC_SetPriority(EXTI3_IRQn, 1); //приоритет
      
        // SPI1  
        RCC->APB2ENR |= RCC_APB2ENR_SPI1EN; //Тактирование модуля SPI1        
        SPI1->CR1 = 0
        | SPI_CR1_BR_2 | SPI_CR1_BR_0 //Baud rate = Fpclk/64
        | 0 * SPI_CR1_CPOL //Полярность тактового сигнала
        | 0 * SPI_CR1_CPHA //Фаза тактового сигнала
        | 0 * SPI_CR1_DFF //8 бит данных
        | 0 * SPI_CR1_LSBFIRST //MSB передается первым
        | 1 * SPI_CR1_SSM //Программный режим NSS
        | 1 * SPI_CR1_SSI //Аналогично состоянию, когда на входе NSS высокий уровень
        | 1 * SPI_CR1_MSTR //Режим Master
        | 1 * SPI_CR1_SPE; //Включаем SPI1
         ;
        SPI1->CR2 = SPI_CR2_SSOE; //Вывод NSS - выход управления slave select
}
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Метценгерштейн   w5100 + STM32- не корректно принимаю данные по SPI   Jan 30 2013, 15:25
- - Метценгерштейн   новая вводная: замкнуты напрямую MISO на MOSI. ини...   Jan 31 2013, 13:40
|- - AHTOXA   Покажите настройки ног SPI.   Jan 31 2013, 16:17
|- - AHTOXA   А зачем у вас включается альтернативная функция дл...   Jan 31 2013, 17:58
- - Метценгерштейн   исправил. инициализация портов Кодvoid WIZ_SPIInit...   Jan 31 2013, 18:39
|- - AHTOXA   А, вот ещё что. MISO нужно настроить как вход, а н...   Jan 31 2013, 18:52
- - Метценгерштейн   похоже, что не надо. т.к. в одном GPIOA->MODER...   Jan 31 2013, 19:26
|- - AHTOXA   Окей. Попробуйте ещё не полагаться на значения по ...   Feb 1 2013, 03:59
- - Метценгерштейн   попробую все проделать. плата STM32L152RBT6 такая ...   Feb 1 2013, 08:15
- - Метценгерштейн   причесал чужой код под свой проц. в отдельном прое...   Feb 1 2013, 12:20
- - Метценгерштейн   Продолжение исследования: удаляя файл startup_stm...   Feb 2 2013, 20:53
|- - AHTOXA   Удаляя файл startup_stm32l1xx_md.s, вы удаляете та...   Feb 3 2013, 06:46
- - Метценгерштейн   нет, один файл стартапа. проблема не в нем- пробле...   Feb 3 2013, 07:56
|- - AHTOXA   Цитата(Метценгерштейн @ Feb 3 2013, 13:56...   Feb 3 2013, 14:56
- - Метценгерштейн   не знаю, что остается) Мусор какой-то. И благодаря...   Feb 3 2013, 15:41
|- - AHTOXA   Цитата(Метценгерштейн @ Feb 3 2013, 21:41...   Feb 3 2013, 16:25
- - Метценгерштейн   UART использует стандартные библиотеки, где в зави...   Feb 3 2013, 19:04
|- - AHTOXA   Дело в том, что ваша функция main() вызывается из ...   Feb 4 2013, 03:20
- - Метценгерштейн   этот файл включен только в проект. больше нигде ег...   Feb 4 2013, 08:36
- - Метценгерштейн   в общем, пришел к такому выводу: при настройке в у...   Feb 9 2013, 19:18
- - Golikov A.   Сейчас у меня нет под рукой СТМ и ИАР не могу пров...   Feb 15 2013, 15:27
- - Golikov A.   В теме откуда я пришел, эта проблема решилась выст...   Feb 18 2013, 15:33


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

 


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


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