|
STM32F4 продолжает подкидывать сюрпрайзы, SPI2 не ловит младший бит в байте |
|
|
|
 |
Ответов
(15 - 29)
|
Feb 17 2015, 10:46
|
Местный
  
Группа: Свой
Сообщений: 246
Регистрация: 28-05-08
Из: г. Ижевск
Пользователь №: 37 893

|
Цитата(Dr.Alex @ Feb 17 2015, 12:19)  Тогда будут ВСЕ биты нестабильны. нет, сейчас почти вся цифра очень быстрая и фронты крутые, и редко когда клоки и данные стык в стык меняются. обычно одно относительно другого на 1-10нс сдвинуто ... но иногда с прогревом например сдвигается в обратную сторону - вот тут и вылазят глюки. На моей практике всегда было иначе - что мегабайты успешно проходили и только пара бит проскакивала левых. Поэтому советую проверить так - подключить 1к в разрыв клокам или данным, но не вместе - если глюков больше стало то скорее всего полярность клоков. А так же затронуть пальцем - если повлияли наводки то наводится ложный клок - надо делать клоки круче или ставить фильтры на ложные клоки.
|
|
|
|
|
Feb 17 2015, 11:05
|
Профессионал
    
Группа: Свой
Сообщений: 1 386
Регистрация: 5-04-05
Из: моська, RF
Пользователь №: 3 863

|
Посмотрел как в либе сделано, там конечно 130 строк кода на убогую процедуру передачи :-))) но вроде бы действительно проверяется сначала TXE, а перед выключением ещё и BSY, то есть всё нормально. Кому хочецо осцыллограмму, получайте. Что мы тут видим:: вторым байтом идёт 0х85, но в DR в итоге принимается 0x84. Напоминаю, это вообще-то приём.
Эскизы прикрепленных изображений
|
|
|
|
|
Feb 17 2015, 11:45
|
Профессионал
    
Группа: Свой
Сообщений: 1 386
Регистрация: 5-04-05
Из: моська, RF
Пользователь №: 3 863

|
Цитата(ViKo @ Feb 17 2015, 15:23)  Может, неправильно задана частота периферийных шин микроконтроллера? А чё там может быть? SYSCLK 84 HCLK 84 APB1 42 APB2 84 Ещё пример. Первый байт принимается как 0х83!! Второй как 0х4Е!! :-о
Эскизы прикрепленных изображений
|
|
|
|
|
Feb 17 2015, 12:54
|
Профессионал
    
Группа: Свой
Сообщений: 1 386
Регистрация: 5-04-05
Из: моська, RF
Пользователь №: 3 863

|
Цитата(ViKo @ Feb 17 2015, 15:58)  А если порту, что такты выдает, добавить тока (частоты работы)? Или уменьшить?  В смысле скорость нарастания? Специально поставлена на минимум, чтобы звона и шума не было. Для эксперимента ставил на максимум - существенно ничего не меняется. Цитата(Lerk @ Feb 17 2015, 16:31)  Почему у вас одна осциллограмма с 1мкс/квадрат, а другая 10мкс/квадрат? Это один и тот же SPI? И неплохо бы видеть еще и SS. Ну и на первой осциллограмме у вас что-то странное с уровнями на линии данных. Потому что на разных скоростях пробовал. С НСС всё нормально. Что не так с уровнями? Просто земля, куда щуп прицеплен, немного плавает. Цитата(ViKo @ Feb 17 2015, 16:38)  И, это... Peak Detect у вас включен в осциллографе? А BW Limit выключен? А с подключенным пробником лучше не становится?  Никаких фокусов и полтергейста нет. Вот гладенькие фронты, если чё.
Эскизы прикрепленных изображений
|
|
|
|
|
Feb 17 2015, 13:00
|
Местный
  
Группа: Свой
Сообщений: 339
Регистрация: 5-05-11
Пользователь №: 64 797

|
Цитата(Dr.Alex @ Feb 17 2015, 15:54)  Что не так с уровнями? Просто земля, куда щуп прицеплен, немного плавает. у вас линия данных до начала передачи имеет землю - 0, а во время и после передачи - 0.2В. Не то чтобы сильно большая разница, и может даже не касается темы обсуждения, но в цифровых схемах такого просто так не бывает, и видимо, дизайном не предусмотрено, а значит должна быть найдена и устранена причина плавающего нуля на линии данных. имхо) 2ViKo, f4 же работает и на 1.8В
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|