|
|
  |
STM32F4 продолжает подкидывать сюрпрайзы, SPI2 не ловит младший бит в байте |
|
|
|
Feb 18 2015, 17:15
|
Профессионал
    
Группа: Свой
Сообщений: 1 386
Регистрация: 5-04-05
Из: моська, RF
Пользователь №: 3 863

|
Цитата(blackfin @ Feb 18 2015, 21:01)  Я могу представить.. Слейв неверно определяет границы байта. Скорей всего сигнал "слейв селект" не синхронизирован с клоком и данными..  Это шутко? Цитата(ViKo @ Feb 18 2015, 21:05)  Но, тем не менее, исправно выдает в шину правильные бит за битом? С передачей проблем не замечено.
|
|
|
|
|
Feb 18 2015, 17:22
|
Гуру
     
Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261

|
Цитата(Dr.Alex @ Feb 16 2015, 21:22)  Ещё используются SPI4 и SPI6, передача на всех трёх без вопросов, приём на 4-ом тоже без проблем, 2-й вот почему-то глючит. Цитата(ViKo @ Feb 18 2015, 20:05)  Но, тем не менее, исправно выдает в шину правильные бит за битом? Ну, может, не слейв, а FSM мастера SPI2. Либо из-за неверного сброса FSM, либо из-за того, что где-то нарушается времянка setup для первого клока, FSM пропускает первый бит и все последующие байты принимает со сдвигом на один бит. Возможно битый МК. Хорошо бы проверить на другой такой же плате.
|
|
|
|
|
Feb 18 2015, 17:28
|
Профессионал
    
Группа: Свой
Сообщений: 1 386
Регистрация: 5-04-05
Из: моська, RF
Пользователь №: 3 863

|
Цитата(blackfin @ Feb 18 2015, 21:22)  Ну, может, не слейв, а FSM мастера SPI2. Либо из-за неверного сброса FSM, либо из-за того, что где-то нарушается времянка setup Паффторяю:: никакого слэйва вооообще нет и никогда не было. Не существует в природе. В принципе. А сигнал на лапе MISO появляется случайно, за счёт возмущений в хаотичном движении электронов в проводе. Если этот сигнал нарушает протокол SPI и какие-то сетап-холды, это должно быть видно из осциллограммы. А если на осциллограмме всё ОК (как оно и есть), то поблагодарим послушные электроны и займёмсо делом.
|
|
|
|
|
Feb 18 2015, 18:16
|
Профессионал
    
Группа: Свой
Сообщений: 1 386
Регистрация: 5-04-05
Из: моська, RF
Пользователь №: 3 863

|
Цитата(ViKo @ Feb 18 2015, 21:57)  В сообщении №19 младший бит не берется из предыдущего байта. Не может быть. В то время я просто не очень смотрел на предыдущий байт, поскоку ещё не понял в чём дело. При этом сам этот первый байт менялся. То есть, именно в тот раз наверняка действительно принялось 0x85, хотя я написал что якобы 0x84. Цитата(blackfin @ Feb 18 2015, 22:10)  Нужно попробовать задержать клок и данные друг относительно друга на несколько нс. Еще хорошо бы сравнить длины проводников клока и данных с длинами проводников в тех портах, которые работают без ошибок, например, с SPI4. Хосспади, ну какие наносекунды, когда там и так сдвиг на полтакта.. Все "участники рынка" выставляют данные по отрицательному фронту, а фиксируют по положительному.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|