Maple Mini Spi Slave - Данные развращаются

NCW2K69
Ср. 27 июля 2016 г. 8:56 вечера
Всем привет,
Мне нужна помощь! :(
По протоколу SPI в режиме рабов, через некоторое время (5-10 минут) байт, который я получил от Master, поврежден, данные о логическом анализаторе показывают правильно.
После того, как я попытаюсь отправить байт на магистр, интерфейс SPI становится без реагирования, но остальная часть кода работает.
Я протестировал с 2 кленовыми мини -платами, одну в главном режиме, а другой в рабе, они, кажется, работают нормально, но не работает с другим процессором, который я описал.
Я пытаюсь разделить процессор по панцире с дисплея с клавиатурами. После использования логического анализатора I предположил, что протокол общения составляет SPI, у меня есть одна линия данных (приема трансмитения), часовая линия, выбор чипа и строка запроса клавиши, которая подходит высоко при нажатии клавиши. Размер упаковки - один байт (8 бит), а режим/фаза SPI - 1,1 SOR SPI_MODE_3

Для кода я использую Leaflab IDE, зеленый...

На arduino uno программа работает правильно

Пито
Ср. 27 июля 2016 г. 8:59 вечера
Имейте в виду, что скорость тактовой скорости SPI раб обычно ограничена. Так что дважды проверьте скоростные скорости SPI.

NCW2K69
Ср. 27 июля 2016 г., 21:02
ЦП, который я пытаюсь обвязать, составляет около 175 кГц... или что -то в этом роде очень старое.
В моем случае мастер SPI (ЦП) отправляет часы, а не раб
... или я делаю что -то не так

Пито
Ср. 27 июля 2016 г., 21:11
Твой
ММ - раб
Old_cpu - мастер? Это Old_cpu 3.3V -сигнализация SPI?

NCW2K69
Ср. 27 июля 2016 г. 9:15 вечера
ЦП ГП (мастер) - Maple Mini (Slave) на SPI 2 - Когда я делаю SPI.Передача я получаю поврежденную байт
Maple Mini (Master) - дисплей с клавиатурой (Slave) SPI 1 - этот работает отлично

Старый ЦП - 5 В, и я использую логический конвертор от 5 В до 3.3В

Я пытаюсь разместить Maple Mini между процессором и дисплеем

Пито
Ср. 27 июля 2016 г., 21:19
Логический конвертор = проблемы :)
Что ты используешь?

NCW2K69
Ср. 27 июля 2016 г., 21:20
В моем районе я использую этот https: // www.Робофун.RO/Logic-уровни-Conv ... 0convertor
Я думаю, что клон Sparkfun или что -то...

Пито
Ср. 27 июля 2016 г., 21:32
Когда старая_кпу является мастером, как вы прочитаете регистр SPI в SPI? Не уверен, что Maplemini получил режим рабов, реализованный через SPI.передача..
http: // www.STM32duino.com/viewtopic.PHP ... = 10#p13036

NCW2K69
Ср. 27 июля 2016 г., 21:37
SPI.начинается, а затем создал новый метод, который проверяет, есть ли у меня данные в буфере, если это правда, я делаю SPI.Читать или SPI.передача
Я опубликую код, который использую после того, как вернусь с работы :рулон:

Стивестронг
Чт 28 июля 2016 г. 8:28 утра
Прием буфера переполнен? (но только через некоторое время? хм)
Как вы различаете SPI.Читать и SPI.передача?
На самом деле, при получении данных SPI, некоторые данные в любом случае будут зачитаны из Мастера, и если вы не установите, случайные данные могут нарушить ваш мастер SPI.

NCW2K69
Пт 29 июля 2016 г. 8:09
Благодаря Pito, удастся заставить его работать, я поменял позицию резисторов с Master - Res - Conv - Mini to Master - Conv - Res - Mini, и теперь у меня есть сильный выход сигнала данных от Master

Martinayotte
Пт 29 июля 2016 г., 13:36
Вы имеете в виду, что вы поместили подтягивание на неправильную сторону конвертера ?
Изображение
Здесь мы видим подтягивания с обеих сторон, но это потому, что это двунаправленный уровень уровня, такой как i2c.
При использовании в качестве управляющего Uni-направляющего, только сторона приемника требует подтягивания.

NCW2K69
Пт 29 июля 2016 г., 17:55
В оригинальной схеме для процессоров, на проводах коммутации представлены резисторы последовательно, см. Прикрепленное изображение

Martinayotte
Пт 29 июля 2016 г. 18:31
Зачем вам эти резисторы последовательно ?
Плата, которую вы используете.

NCW2K69
Пт 29 июля 2016 г. 18:47
Я думаю, что они были помещены туда, чтобы ограничить ток, когда дисплей входит/выходит

NCW2K69
Пт 29 июля 2016 г., 19:15
это способ сбросить из кода на Maple Mini?

Martinayotte
Пт 29 июля 2016 г., 8:51 вечера
Вы можете перейти к вектору сброса, но он не будет таким же, как выполнение внешнего сброса, особенно линия сброса также используется для сброса внешнего периферийного устройства.
Но вы также можете использовать GPIO, прикрепленный к RES и запустить его из программного обеспечения.

NCW2K69
Пт 29 июля 2016 г., 21:11
удалось выполнить функцию сброса, он работает
//hardware\leaflabs\cores\maple\nvic.h void nvic_sys_reset();

TX2 RX2... Я что -то упускаю?