|
SPI1 в STM32F429 считывает 0 в младший бит |
|
|
|
 |
Ответов
|
Jun 23 2016, 17:45
|

Местный
  
Группа: Свой
Сообщений: 270
Регистрация: 8-08-15
Из: Москва
Пользователь №: 87 901

|
Извиняюсь, что немного не в тему, но ситуация тоже с SPI. Сегодня выкопал баг: Код byte SPIRead(byte reg) { volatile short temp; temp=SPI2->DR;// Эти сделаны как заплатка. Без них получается какая-то шляпа temp=SPI2->DR; temp=SPI2->DR; CS_EN; SPI2->DR=reg|0x80; //busy=true; Это я в комментах расскажу while(!(SPI2->SR&SPI_SR_RXNE)); //busy=false; CS_DIS; temp=SPI2->DR; temp>>=8; return temp; } Короче заметил девайс подвисает периодически. Начал дебажить - зависает в while(!(SPI2->SR&SPI_SR_RXNE));. Что в итоге происходит - пока ждем, возникает прерывание системного таймера. Он сам по себе устанавливает 1 флаг в 50 герц, по которому из главного цикла опрашивается акселерометр, это единственная его задача. После обработчика возвращаемся в цикл и больше никогда из него не выходим. То есть если в нем войти в обработчик, то бит RXNE не установится. Юзал бряк busy и через if(busy) в таймере понимал, что мы попали в прерывание во время цикла. В пошаговой отладке этот бит не устанавливается, хотя в ДШ четко сказано: A read access to the SPIx_DR register must be managed by the RXNE event. This event is triggered when data is stored in RXFIFO and the threshold (defined by FRXTH bit) is reached. When RXNE is cleared, RXFIFO is considered to be empty.Или по крайней мере этот бит очень быстро сбрасывается (не понятно почему)
|
|
|
|
|
Jun 24 2016, 07:40
|

Местный
  
Группа: Свой
Сообщений: 270
Регистрация: 8-08-15
Из: Москва
Пользователь №: 87 901

|
Цитата(RadiatoR @ Jun 23 2016, 20:45)  Или по крайней мере этот бит очень быстро сбрасывается (не понятно почему) Разобрался - до сих пор не могу в голову вдолбить, что регистру пофигу кто его читает - mcu или дебаггер. После чтения дебаггером регистра (а он читается автоматически при пошаговой отладке) RXNE сбрасывался и происходило бесконечное ожидание. Дописал timeout на всякий случай. Цитата(Obam @ Jun 24 2016, 09:55)  Не флуда ради, а токмо просвещения для… какое соотношение между частотой ядра и частотой SCK, что все (ну практически все) в примерах с SPI в тупых циклах ожидают изменения флагов, а не используют \шёпотом\ прерывание? 48МГц/93кГц. Все что делает у меня прога это 50раз в сек читает датчик и выкидывает его на CAN шину. Даже заморачиваться не стал с прерываниями.
|
|
|
|
Сообщений в этой теме
Tarbal SPI1 в STM32F429 считывает 0 в младший бит Jun 16 2016, 00:06 RadiatoR Попробуйте прочитать по флагу BSY. Вообще есть ли ... Jun 16 2016, 05:11 scifi Цитата(RadiatoR @ Jun 16 2016, 08:11) По... Jun 16 2016, 07:13 Tarbal Цитата(RadiatoR @ Jun 16 2016, 09:11) По... Jun 16 2016, 12:37  RadiatoR Цитата(Tarbal @ Jun 16 2016, 15:37) Оба к... Jun 16 2016, 18:56  adnega Цитата(Tarbal @ Jun 16 2016, 15:37) Но у ... Jun 16 2016, 19:38   Tarbal Цитата(adnega @ Jun 16 2016, 23:38) Видел... Jun 17 2016, 11:59    adnega Цитата(Tarbal @ Jun 17 2016, 14:59) На фо... Jun 17 2016, 12:15  ViKo Цитата(Tarbal @ Jun 16 2016, 15:37) у мен... Jun 17 2016, 18:52   adnega Цитата(ViKo @ Jun 17 2016, 21:52) Повесьт... Jun 17 2016, 18:56    ViKo Цитата(adnega @ Jun 17 2016, 21:56) Дык, ... Jun 17 2016, 20:12     adnega Цитата(ViKo @ Jun 17 2016, 23:12) И де вы... Jun 17 2016, 22:46      ViKo Цитата(adnega @ Jun 18 2016, 01:46) На вы... Jun 18 2016, 06:32       adnega Цитата(ViKo @ Jun 18 2016, 09:32) "П... Jun 18 2016, 08:40        ViKo Цитата(adnega @ Jun 18 2016, 11:40) На пи... Jun 18 2016, 10:45         adnega Цитата(ViKo @ Jun 18 2016, 13:45) С желез... Jun 18 2016, 11:24          ViKo Цитата(adnega @ Jun 18 2016, 14:24) С чег... Jun 18 2016, 13:01           adnega Цитата(ViKo @ Jun 18 2016, 16:01) С перво... Jun 18 2016, 13:24 SasaVitebsk А какая настройка? Jun 16 2016, 05:45 ViKo Смотря, каким фронтом записываете и читаете. Надо ... Jun 16 2016, 06:06 RadiatoR Вообще сам флаг BSY для приема использовать не пра... Jun 16 2016, 07:34 ViKo Что-то мне подсказывает, что если прочитать руково... Jun 17 2016, 13:16 Tarbal Цитата(ViKo @ Jun 17 2016, 17:16) Не дума... Jun 17 2016, 14:47 Alex11 А у Вас что, на клоке вход и нет ни сигнала ни под... Jun 17 2016, 16:02 Tarbal Цитата(Alex11 @ Jun 17 2016, 20:02) А у В... Jun 17 2016, 18:23 ViKo То, что читалось 0xFE, связано с работой не по ман... Jun 18 2016, 14:07 adnega Цитата(ViKo @ Jun 18 2016, 17:07) Вы прос... Jun 18 2016, 19:25  ViKo Цитата(adnega @ Jun 18 2016, 22:25) Посмо... Jun 19 2016, 15:28   adnega Цитата(ViKo @ Jun 19 2016, 18:28) У меня ... Jun 19 2016, 18:21    adnega Цитата(adnega @ Jun 19 2016, 21:21) ошибк... Jun 19 2016, 19:16     ViKo Цитата(adnega @ Jun 19 2016, 22:16) Вопро... Jun 19 2016, 19:59 Genadi Zawidowski Код отсылки/приёма байта по SPI в студию... Jun 18 2016, 20:04 adnega Цитата(Genadi Zawidowski @ Jun 18 2016, 23... Jun 19 2016, 08:38 Tarbal Вроде нашел в чем дело.
Я поначалу не знал, что ха... Jun 19 2016, 16:42 ViKo Цитата(Tarbal @ Jun 19 2016, 19:42) Бываю... Jun 19 2016, 18:13  Tarbal Цитата(ViKo @ Jun 19 2016, 22:13) Пе-ре-м... Jun 19 2016, 18:57  Tarbal Цитата(ViKo @ Jun 19 2016, 22:13) Пе-ре-м... Jun 19 2016, 20:58 Alex11 http://www.yageo.com/NewPortal/_en/search/search-1... Jun 19 2016, 20:53 ViKo Ага, нашел, jumper. Он еще и точность имеет, и мощ... Jun 19 2016, 21:14 Tarbal Цитата(ViKo @ Jun 20 2016, 01:14) Ага, на... Jun 19 2016, 22:23 Tarbal А замена на такую функцию (без аппаратной поддержк... Jun 20 2016, 00:02 ViKo С HAL мучайтесь сами, мне это не интересно. У меня... Jun 20 2016, 04:52 Tarbal Цитата(ViKo @ Jun 20 2016, 08:52) С HAL м... Jun 20 2016, 12:20  ViKo Цитата(Tarbal @ Jun 20 2016, 15:20) Я уже... Jun 20 2016, 12:52   Tarbal Цитата(ViKo @ Jun 20 2016, 16:52) И какие... Jun 21 2016, 13:47 ViKo Еще бы и программный ногодрыг не работал... Четы... Jun 21 2016, 14:28 adnega Цитата(ViKo @ Jun 21 2016, 17:28) Заметьт... Jun 21 2016, 17:24 Tarbal Цитата(ViKo @ Jun 21 2016, 18:28) Еще бы ... Jun 21 2016, 23:31  ViKo Цитата(Tarbal @ Jun 22 2016, 02:31) Не бу... Jun 22 2016, 05:04   Tarbal Цитата(ViKo @ Jun 22 2016, 09:04) И что с... Jun 22 2016, 21:43 ViKo Ссылку на тему на ST выдайте, please!
"чт... Jun 23 2016, 04:39 Tarbal Цитата(ViKo @ Jun 23 2016, 08:39) Ссылку ... Jun 23 2016, 10:32  ViKo Цитата(Tarbal @ Jun 23 2016, 13:32) Вы ка... Jun 23 2016, 20:24 Tarbal Цитата(ViKo @ Jun 23 2016, 07:39) Ссылку ... Dec 16 2016, 02:42 Obam Цитата(RadiatoR @ Jun 23 2016, 21:45) Из... Jun 24 2016, 06:55  Obam Цитата(RadiatoR @ Jun 24 2016, 11:40) 48... Jun 24 2016, 07:57 RadiatoR наврал. 24/93 Jun 24 2016, 09:20 Obam Цитата(RadiatoR @ Jun 24 2016, 13:20) на... Jun 24 2016, 09:50 Tarbal Я бы провел серию тестов.
Вот такую функцию (сами ... Jun 24 2016, 10:13 RadiatoR Не требуется, я уже все сделал.
В системе тока 1 п... Jun 24 2016, 12:24
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|