Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Удаленная работа
Помощь проекту


 
Опции темы
Непрочитано 03.12.2019, 00:46  
sat_art
Вид на жительство
 
Регистрация: 27.11.2007
Сообщений: 344
Сказал спасибо: 15
Сказали Спасибо 31 раз(а) в 24 сообщении(ях)
sat_art на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

eddy, SPI_CR2_SSOE - попробуй. Я тоже мучился, что то связано с этим было. Пока не установил, кажется, не запустилось. Сейчас уже не совсем в адеквате, что бы память напрягать.
Реклама:
sat_art вне форума  
Непрочитано 03.12.2019, 00:48  
sat_art
Вид на жительство
 
Регистрация: 27.11.2007
Сообщений: 344
Сказал спасибо: 15
Сказали Спасибо 31 раз(а) в 24 сообщении(ях)
sat_art на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Это же 103... Этим все сказано. Лучше 030 или 405. Гораздо приятней в пользовании.
sat_art вне форума  
Непрочитано 03.12.2019, 00:56  
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 2,847
Сказал спасибо: 90
Сказали Спасибо 662 раз(а) в 468 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от sat_art Посмотреть сообщение
Это же 103... Этим все сказано.
Ну так на 030 и 042 у меня SPI нормально работал. А сейчас надо к 103 прилепить...
Сообщение от sat_art Посмотреть сообщение
SPI_CR2_SSOE
Это как может быть связано? Я вообще не использую SS…
Сообщение от индюк Посмотреть сообщение
настрой порты пины такты афио
Да при чем здесь AFIO, если мне ремап не нужен, а SWDIO/JTAG я не отключаю, т.к. прошиваю через st-link?
__________________
https://github.com/eddyem/
http://stackexchange.com/users/2227375/eddy-em
http://eddy-em.livejournal.com/
In the world, only two things are the worst: Windows and Poettering.
eddy вне форума  
Непрочитано 03.12.2019, 09:57  
dgrishin
Гражданин KAZUS.RU
 
Регистрация: 12.02.2013
Сообщений: 518
Сказал спасибо: 12
Сказали Спасибо 113 раз(а) в 100 сообщении(ях)
dgrishin на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Вот кусок рабочего кода (делал давным давно- выводил по ДМА на графический дисплей Nokia5110 видеообласть памяти)

RCC->APB2ENR |=RCC_APB2ENR_SPI1EN;

SPI1->CR1 |= SPI_CR1_BIDIMODE | SPI_CR1_BIDIOE |
SPI_CR1_BR_0 | SPI_CR1_BR_2 |
SPI_CR1_SSM | SPI_CR1_SSI | SPI_CR1_MSTR ;
//SPI1->CR2 |=
SPI1->CR1 |= SPI_CR1_SPE; // enable SPI;

/////////////////////////// DMA CNF PART /////////////////////////////////
RCC -> AHBENR |= RCC_AHBENR_DMA1EN;
DMA1_Channel3 ->CCR |= DMA_CCR3_DIR | DMA_CCR3_MINC ; // from memory and Mem INC enable
// DMA1_Channel3 ->CCR |= DMA_CCR3_CIRC ;
DMA1_Channel3 ->CMAR = (uint32_t)&LCD_BUFF[0];
DMA1_Channel3 ->CNDTR = 84*6;
DMA1_Channel3 ->CPAR = (uint32_t) &(SPI1->DR);
DMA1_Channel3->CCR |= DMA_CCR3_EN;
SPI1->CR2 |= SPI_CR2_TXDMAEN;
dgrishin вне форума  
Непрочитано 03.12.2019, 13:32  
sat_art
Вид на жительство
 
Регистрация: 27.11.2007
Сообщений: 344
Сказал спасибо: 15
Сказали Спасибо 31 раз(а) в 24 сообщении(ях)
sat_art на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от eddy Посмотреть сообщение
Это как может быть связано? Я вообще не использую SS
Я тоже не использовал. Но как связано не знаю. Помню что немного охренел тогда.
sat_art вне форума  
Непрочитано 03.12.2019, 14:56  
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 2,847
Сказал спасибо: 90
Сказали Спасибо 662 раз(а) в 468 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от sat_art Посмотреть сообщение
Помню что немного охренел тогда.
Ну, надо значит будет вечером эррату почитать. В общем, как сделаю "голый" SPI (без всей прочей обвязки), отпишусь. Возможно, где-то у меня был косяк, из-за которого SPI не работает, либо действительно баг в МК и нужно включать SS.
__________________
https://github.com/eddyem/
http://stackexchange.com/users/2227375/eddy-em
http://eddy-em.livejournal.com/
In the world, only two things are the worst: Windows and Poettering.
eddy вне форума  
Непрочитано 03.12.2019, 19:36  
NewWriter
Почётный гражданин KAZUS.RU
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Сообщений: 2,341
Сказал спасибо: 198
Сказали Спасибо 1,175 раз(а) в 720 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

В "передаче данных" накосяпорено. Сначала сбрасываем флаги прерываний канала DMA, которые могли остаться от пердыдущ. работы. Теперь настраиваем канал DMA, затем включаем в SPI запросы DMA TX, затем включаем канал DMA (тут можно и наоборот), и только потом включаем SPI.
NSS в режиме автоматического управления переводится в OD-режим и требует внешнего подтяг.резист.
NewWriter вне форума  
Непрочитано 03.12.2019, 21:17  
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 2,847
Сказал спасибо: 90
Сказали Спасибо 662 раз(а) в 468 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Итак, действительно, косяк был не в отсутствии SPI_CR2_SSOE, а в отсутствии SPI_CR1_SSM | SPI_CR1_SSI !!!
Я, честно говоря, охренел: зачем SPI в режиме master нужно указывать, что у него SS софтово управляется? Какое ему вообще дело до SS, если он - мастер? Или это для мультимастера важно и мастер все равно должен обращать на это внимание?
Вот работающий код. И тупая передача по байту работает, и при помощи DMA.
Для передачи посредством DMA нужно сделать лишь это:
Код:
    DMA_SPI_Channel->CCR &=~ DMA_CCR_EN;
    DMA_SPI_Channel->CMAR = (uint32_t)buf;
    DMA_SPI_Channel->CNDTR = len;
    DMA_SPI_Channel->CCR |= DMA_CCR_EN;
Больше никаких регистров трогать не надо - они во время инита уже заполнены. Если буфер для передачи и его длина - константы, а меняется лишь содержимое буфера, то вообще нужно лишь заново запустить передачу, т.е. лишь последняя строка нужна.
Первую строку тоже можно нафиг выкинуть, если добавить проверку: не ведется ли передача по DMA в данный момент. По-хорошему, надо либо вернуть юзеру ошибку, либо подождать. Но не сбрасывать предыдущую передачу.
__________________
https://github.com/eddyem/
http://stackexchange.com/users/2227375/eddy-em
http://eddy-em.livejournal.com/
In the world, only two things are the worst: Windows and Poettering.

Последний раз редактировалось eddy; 03.12.2019 в 21:19.
eddy вне форума  
Непрочитано 03.12.2019, 21:20  
sat_art
Вид на жительство
 
Регистрация: 27.11.2007
Сообщений: 344
Сказал спасибо: 15
Сказали Спасибо 31 раз(а) в 24 сообщении(ях)
sat_art на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от eddy Посмотреть сообщение
Итак, действительно, косяк был не в отсутствии SPI_CR2_SSOE, а в отсутствии SPI_CR1_SSM | SPI_CR1_SSI
А наоборот не пробовал?
sat_art вне форума  
Непрочитано 03.12.2019, 21:45  
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 2,847
Сказал спасибо: 90
Сказали Спасибо 662 раз(а) в 468 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Пробовал - первым делом выставил SPI_CR2_SSOE. Не работает.
Почему в errata не написано про SPI_CR1_SSM | SPI_CR1_SSI в режиме master — непонятно! Либо я действительно хреново читал даташит и это нужно даже в мастере для мультимастера...
__________________
https://github.com/eddyem/
http://stackexchange.com/users/2227375/eddy-em
http://eddy-em.livejournal.com/
In the world, only two things are the worst: Windows and Poettering.
eddy вне форума  
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Школа АRMрестлинга Uragan90 Микроконтроллеры, АЦП, память и т.д 54 22.08.2011 16:13
ARM Cortex M3 + Linux SiMiLya Микроконтроллеры, АЦП, память и т.д 10 17.06.2011 17:20
Помогите с STM32 - очень нужно... yakuzaa Микроконтроллеры, АЦП, память и т.д 60 04.08.2010 11:04
Как добавить поддержку для STM32 SFHK Микроконтроллеры, АЦП, память и т.д 11 18.12.2009 18:09


Часовой пояс GMT +4, время: 19:58.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot