Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: demanik, ivan_fd  
разбираюсь с MRF49xa
tesla88 Дата: Пт, 14.03.2014, 00:15  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 114
Репутация: 0   ±
Замечания:   ±
На сайте с 20.11.2010

Статус: Offline

Всем доброго времени суток! собрал я тут на днях сей девайс - http://vrtp.ru/index.php?act=categories&CODE=article&article=2777 , работает прекрасно но я преследую иную цель, а именно научиться работать с микросхемой mrf49xa, и вот тут гора проблем - трансивер общается с контроллером  по spi интерфейсу(который мне практически не знаком), я залез в манцалы и понял что на трансивер необходимо отправлять стартовую конфигурацию , но как это сделать примеров негде не нашёл, речь идёт конкретно о примерах на протон, может кто работал с данной микросхемой и может поделиться опытом? к слову по spi  я понял , что необходимо использовать команду shin и shout ( Shin DTA, CLK, MsbPre, [Var1] )  - но вот как трансиверу передать 16 бит конфигурации в определённый регист при помощи этой команды я так и не понял? sad
ЯНДЕКС Дата: 14.03.2014
ivan_fd Дата: Пт, 14.03.2014, 11:19  |                                                                                                                Сообщение # 2
Группа: Модераторы
Ранг:  Специалист
Сообщений: 894
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Посмотрите вот эти исходники. Правда они на С, но там все понятно.

А передать 16 бит. Если посмотреть документацию на PROTON:

Shout DTA, CLK, MsbFirst, [250\4] - красным выделено количество бит передаваемое по SPI.
tesla88 Дата: Пт, 14.03.2014, 14:58  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 114
Репутация: 0   ±
Замечания:   ±
На сайте с 20.11.2010

Статус: Offline

Прошу прощения если вопрос глупый, но я не имел опыта с spi, интересует сам способ передачи настроек из пика в mrf49xa, ведь как я понимаю - у передатчика (приёмника) есть регистры конфигурации которые имеют свои адреса и собственно сами 16 бит конфигурации, то есть мне надо обращаться к конкретному адресу (регистру) и передавать ему настройку, но данный пример показывает просто передачу данных а не обращение к какому либо регистру -" Shout DTA, CLK, MsbFirst, [250\4] ", мне бы просто увидеть живой пример ( в протоне ) передачи и приёма контроллером.
MiXaS Дата: Пт, 14.03.2014, 18:38  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 549
Репутация: 27   ±
Замечания:   ±
На сайте с 02.10.2010

Статус: Offline

Все очень просто! Смотрите даташит, там есть временные диаграммы, сразу станет многое понятно. spi отличается от остальных интерфейсов еще и тем, что имеет вывод селект слэйв.Если у Вас допустим несколь слэйвов, то шина данных и тактов подключается параллельно ко всем устройствам, а мастер потом с помошью селект слэйв выбирает конкретную микросхему. вот хорошее описание http://www.gaw.ru/html.cgi/txt/interface/spi

так вот, чтобы Вашему трансиверу что–то сказать в конктерный регистр, сначало нужно селект слэйв прижать к земле, потом говорить Shout DTA, CLK, MsbFirst, [Конкретный регистр, значение конкретного регистра]
и опять поднять вверх селект слэйв. Вам обязательно нужно внимательно прочитать шит, потому как скорее всего такие трансиверы перед инициализацией требуют обряд сброса. а потом инизиалазация.
tesla88 Дата: Пт, 14.03.2014, 19:15  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 114
Репутация: 0   ±
Замечания:   ±
На сайте с 20.11.2010

Статус: Offline

Большое спасибо MiXaS , буду разбираться, честно говоря не совсем пойму как правильно выставлять моды ( MsbFirst ) на  стороне мастера и слэйва?
Сообщение отредактировал tesla88 - Пт, 14.03.2014, 19:34
MiXaS Дата: Пт, 14.03.2014, 21:54  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 549
Репутация: 27   ±
Замечания:   ±
На сайте с 02.10.2010

Статус: Offline

Цитата tesla88 ()
моды ( MsbFirst ) на  стороне мастера и слэйва?


Вы настраиваете шину только мастера. Слэйв это ваш трансмитер. Чтобы понять какой режим Вам нужен нужно посмотреть шит. То есть нужно смотреть на временную диаграмму, там будет видно какой бит идет первый (старший или младший), потом такты начинаются с низкого или высогоко уровня. Мне в этом вопросе помогла книга Владимира Хилинского «Учимся программировать микроконтроллеры pic на языке picbasicpro». Прошу прощения если неправильно написал, пишу на память. Так вот там идет описание команды shiftout и по поводу режимов достаточно подробно описано, я проверял с описанием протона все совпадает. Из личного опыта(цап, ацп, трансмитеры, max7221...) на всем, что мне попадалось режим один и тот же MsbFirst. Но для полного понимания, рекомендую открыть книгу в одном окне, диаграму в другом, читать описание и смотреть на диаграмму, сразу станет все ясно. Страшен не spi, а как правильно отконфигурить приемник под передатчик, потом поменять их местами.
tesla88 Дата: Ср, 19.03.2014, 11:58  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 114
Репутация: 0   ±
Замечания:   ±
На сайте с 20.11.2010

Статус: Offline

Для начала я решил связать два пика по spi, но тут возник ряд проблем, мастер отправляет данные как положено, а вот слэйв ведёт себя не адекватно, и непонятно то ли это глюк протеуса толи мой, ниже прилагаю преэкт в протоне и фаил протеуса, но суть такова - как только слэйв видит на линии cs логическую 1 начинает отправлять мастеру синхро импулься причём с совершенно другой частотой , ну и как следствие получается полная каша, причём на всех линиях связи. Я уже по десять раз перечитал книги и мануалы , вроде бы всё правильно , но работать отказывается sad cry

Добавлено (19.03.2014, 11:58)
---------------------------------------------
Дорогие коллеги! прошу вас обратить внимание на предпоследний пост, очень нужен ваш ценный совет!!!

Прикрепления: MRF49XA-cpi.rar (61.4 Kb)

Сообщение отредактировал tesla88 - Вс, 16.03.2014, 16:21
ivan_fd Дата: Чт, 20.03.2014, 00:18  |                                                                                                                Сообщение # 8
Группа: Модераторы
Ранг:  Специалист
Сообщений: 894
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Если Вам очень хочется связать два PIC по SPI, то я бы Вам советовал воспользоватся
встроенным, в контроллер, модулем SPI. А с командами программного SPI у Вас ничего хорошего не получится.
MiXaS Дата: Чт, 20.03.2014, 01:00  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 549
Репутация: 27   ±
Замечания:   ±
На сайте с 02.10.2010

Статус: Offline

Да, я тоже пробовал, чет не пролезло. Вы сразу лучше на ресивер шлите. :-)
  • Страница 1 из 1
  • 1
Поиск: