реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> SPI на скорости 1Мбит между двуми MCU, сбивается при работе устройства.
BECHA1977
сообщение Dec 5 2007, 17:34
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 15
Регистрация: 5-12-07
Пользователь №: 33 008



Силовой преобразователь 2кВт содержит два DSP микроконтроллера Freescale 56F801 и 56F803. Между ними сделан обмен информацией по SPI. Минимальная частота обмена которую можно установить ~1Мбит (40Мгц/32). Кроме того в цепях SPI присутствует гальваническая развязка на базе 6N137. Длина соединительных дорожек около 20см. При работе преобразователя на нагрузку SPI начинает "ловить" помехи передача информации прекращается. Посоветуйте пожалуйста помехоустойчивое схемотехническое решение.
Go to the top of the page
 
+Quote Post
rezident
сообщение Dec 5 2007, 21:39
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Переходите на асинхронный интерфейс и используйте дифференциальные приемопередатчики RS422/RS485.
Кстати, pull-up резистор на выходе у 6N137 какой величины?
Go to the top of the page
 
+Quote Post
yuri_d
сообщение Dec 5 2007, 22:01
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 292
Регистрация: 28-01-05
Из: МО, Мытищи
Пользователь №: 2 274



Непонятно почему Вы указали минимально возможной частоту передачи 40МГц/32. Согласно reference manual на эти процессоры можно установить коэффициент деления 256, тоесть получить частоту в 8 раз меньше.

Если можно менять схему, то попробуйте применить гальваническую развязку с push-pull выходными каскадами. Хорошо будет смотреться ADuM1401 от Analog Devices.

Если схему менять нельзя, то попробуйте поставить RC фильтр непосредственно у входа процессора. Фронты сигнала конечно завалятся, но при этом сильно уменьшится величина помехи от наводки.
Go to the top of the page
 
+Quote Post
BECHA1977
сообщение Dec 6 2007, 07:14
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 15
Регистрация: 5-12-07
Пользователь №: 33 008



Цитата
Переходите на асинхронный интерфейс и используйте дифференциальные приемопередатчики RS422/RS485.
Кстати, pull-up резистор на выходе у 6N137 какой величины?

на коллекторах 6N137 висят 470 резисторы к 3.3В. принимающие ноги MCU зашунтированы 51нФ на землю.

Цитата(yuri_d @ Dec 6 2007, 01:01) *
Непонятно почему Вы указали минимально возможной частоту передачи 40МГц/32. Согласно reference manual на эти процессоры можно установить коэффициент деления 256, тоесть получить частоту в 8 раз меньше.


не знаю где вы увидели 1/256, вот блок-схема модуля SPI


Цитата(yuri_d @ Dec 6 2007, 01:01) *
Если можно менять схему, то попробуйте применить гальваническую развязку с push-pull выходными каскадами. Хорошо будет смотреться ADuM1401 от Analog Devices.

насколько я понял, нужно стаыить развязку как можно ближе к приемнику чтобы токовый сигнал проходил большее расстояние, чем потенциальный. Выходит надо ставить два оптрона около slave mcu (sck+mosi) и один около master mcu (miso) ?

Цитата(yuri_d @ Dec 6 2007, 01:01) *
Если схему менять нельзя, то попробуйте поставить RC фильтр непосредственно у входа процессора. Фронты сигнала конечно завалятся, но при этом сильно уменьшится величина помехи от наводки.

RC есть.

Сообщение отредактировал BECHA1977 - Dec 6 2007, 07:19
Go to the top of the page
 
+Quote Post
spf
сообщение Dec 6 2007, 08:36
Сообщение #5


Странник
****

Группа: Свой
Сообщений: 766
Регистрация: 29-08-05
Из: Екатеринбург
Пользователь №: 8 051



Цитата
насколько я понял, нужно стаыить развязку как можно ближе к приемнику чтобы токовый сигнал проходил большее расстояние, чем потенциальный. Выходит надо ставить два оптрона около slave mcu (sck+mosi) и один около master mcu (miso) ?

Нет, предлагается видимо ставить развязку всего и на каждом конце.
ИМХО. Это не вариант для линии в 20см.
Даже если навертите развязок, то помехи сядут на развязанный участок.
А SPI как известно работает по фронтам, любая помеха на клоках приводит к ошибке.

Цитата
Переходите на асинхронный интерфейс и используйте дифференциальные приемопередатчики RS422/RS485.

+100. Полностью поддерживаю.

PS:
А если и это не поможет, то можно попробовать связать контроллеры при помощи CAN, при возникновении ошибок на линии, передача сообщения будет повторена автоматически.
smile.gif


--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
Go to the top of the page
 
+Quote Post
BECHA1977
сообщение Dec 6 2007, 08:41
Сообщение #6


Участник
*

Группа: Новичок
Сообщений: 15
Регистрация: 5-12-07
Пользователь №: 33 008



Цитата(spf @ Dec 6 2007, 11:36) *
Нет, предлагается видимо ставить развязку всего и на каждом конце.

с двух сторон линии по развязке? а смысл? Изначально развзка нужна т.к. MCU "cидят" на разных землях.

Цитата(spf @ Dec 6 2007, 11:36) *
+100. Полностью поддерживаю.

а трансиверы 485/422 поддерживают скорости порядка 1-2Мбит?

Цитата(spf @ Dec 6 2007, 11:36) *
А если и это не поможет, то можно попробовать связать контроллеры при помощи CAN, при возникновении ошибок на линии, передача сообщения будет повторена автоматически.

56f801 не имеет модуля CAN а в 56F803 CAN "занят".
Go to the top of the page
 
+Quote Post
rezident
сообщение Dec 6 2007, 09:24
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(BECHA1977 @ Dec 6 2007, 13:41) *
а трансиверы 485/422 поддерживают скорости порядка 1-2Мбит?

Да. См., например, у Maxim. По ссылке таблица драйверов >=1Mbps с изоляцией >=1000V. Например, MAX1480A/MAX1490A давно выпускаемые и проверенные драйверы. Правда не самые маленькие по габаритам и цене.
Go to the top of the page
 
+Quote Post
spf
сообщение Dec 6 2007, 10:26
Сообщение #8


Странник
****

Группа: Свой
Сообщений: 766
Регистрация: 29-08-05
Из: Екатеринбург
Пользователь №: 8 051



Цитата(rezident @ Dec 6 2007, 14:24) *
Да. См., например, у Maxim. По ссылке таблица драйверов >=1Mbps с изоляцией >=1000V. Например, MAX1480A/MAX1490A давно выпускаемые и проверенные драйверы. Правда не самые маленькие по габаритам и цене.

Зачем там развязка на 20 см по одной плате, монстр да и только.
Тогда уже проще и дешевле взять TOSLINK, да и не париться. Помех для оптики еще не придумали smile.gif


--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
Go to the top of the page
 
+Quote Post
yuri_d
сообщение Dec 6 2007, 10:30
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 292
Регистрация: 28-01-05
Из: МО, Мытищи
Пользователь №: 2 274



Цитата(BECHA1977 @ Dec 6 2007, 10:14) *
не знаю где вы увидели 1/256, вот блок-схема модуля SPI

Сам с этими процессорами не работал, поэтому взял MC56F0000RM с сайта freescale (http://www.freescale.com/files/dsp/doc/ref_manual/MC56F8000RM.pdf?fsrch=1&WT_TYPE=Reference%20Manuals&WT_VENDOR=FREESCALE&WT_FILE_FORMAT=pdf&WT_ASSET=Documentation). На странице 12-4 ровно такая же диаграмма, но коэффициенты деления от 2 до 256. Возможно у Вас другой (или более старый) документ с описанием SPI.

Цитата(BECHA1977 @ Dec 6 2007, 10:14) *
на коллекторах 6N137 висят 470 резисторы к 3.3В. принимающие ноги MCU зашунтированы 51нФ на землю.

Проверьте еще раз номинал конденсатора на землю. С таким работать не будет вообще: постоянная времени 24 мксек слишком большая для частоты передачи 1МГц. Например на тактовом выводе (SCK) будет пилообразное напряжение с размахом меньше 100 мВ и средним уровнем меньше десятых долей вольта.

Цитата(BECHA1977 @ Dec 6 2007, 10:14) *
насколько я понял, нужно стаыить развязку как можно ближе к приемнику чтобы токовый сигнал проходил большее расстояние, чем потенциальный. Выходит надо ставить два оптрона около slave mcu (sck+mosi) и один около master mcu (miso) ?

Развязку нужно ставить на границе раздела земляных планов. При этом ещё надо следить, чтобы сигналы не проходили над чужой землей.

А сигнал SS у Вас между процессорами не идет? Если так, то могут быть проблемы с синхронизацией.
Go to the top of the page
 
+Quote Post
BECHA1977
сообщение Dec 6 2007, 11:35
Сообщение #10


Участник
*

Группа: Новичок
Сообщений: 15
Регистрация: 5-12-07
Пользователь №: 33 008



Цитата(yuri_d @ Dec 6 2007, 13:30) *
Сам с этими процессорами не работал, поэтому взял MC56F0000RM с сайта freescale (http://www.freescale.com/files/dsp/doc/ref_manual/MC56F8000RM.pdf?fsrch=1&WT_TYPE=Reference%20Manuals&WT_VENDOR=FREESCALE&WT_FILE_FORMAT=pdf&WT_ASSET=Documentation). На странице 12-4 ровно такая же диаграмма, но коэффициенты деления от 2 до 256. Возможно у Вас другой (или более старый) документ с описанием SPI.

да вроде наоборот самый новый.
http://www.freescale.com/files/dsp/doc/use...T=Documentation

Цитата(yuri_d @ Dec 6 2007, 13:30) *
Проверьте еще раз номинал конденсатора на землю.

я ошибся 51пФ а не 51нФ


Цитата(yuri_d @ Dec 6 2007, 13:30) *
Развязку нужно ставить на границе раздела земляных планов. При этом ещё надо следить, чтобы сигналы не проходили над чужой землей.

тогда не понятно как сделать "токовую петлю" на силовой плате - граница раздела земель посредине платы, а MCU ближе к краям.

Цитата(yuri_d @ Dec 6 2007, 13:30) *
А сигнал SS у Вас между процессорами не идет? Если так, то могут быть проблемы с синхронизацией.

не идет, проблемы решаются програмно. на выключенной "силе" сбоев приема/передачи нет.
Go to the top of the page
 
+Quote Post
alexander55
сообщение Dec 6 2007, 12:58
Сообщение #11


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(BECHA1977 @ Dec 5 2007, 20:34) *

1. Преобразователи RS232/RS485.
2. Выполните монтаж диф. пары следующим образом :
- дорожки идут рядышком (как можно ближе)
- отсутствие переходных отверстий между ними.
Попробую найти ссылку (как найду добавлю).
http://www.elart.narod.ru/articles/article27/article27.htm
Здесь много найдете
http://www.elart.narod.ru/
Go to the top of the page
 
+Quote Post
yuri_d
сообщение Dec 6 2007, 14:22
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 292
Регистрация: 28-01-05
Из: МО, Мытищи
Пользователь №: 2 274



Цитата(BECHA1977 @ Dec 6 2007, 14:35) *
да вроде наоборот самый новый.
http://www.freescale.com/files/dsp/doc/use...T=Documentation

Да я ошибся: посчитал, что 56F801 и 56F801X это одно и тоже.

Цитата(BECHA1977 @ Dec 6 2007, 14:35) *
тогда не понятно как сделать "токовую петлю" на силовой плате - граница раздела земель посредине платы, а MCU ближе к краям.

Положение развязки на границе земляных планов - наиболее правильное. При этом одна сторона микросхемы находится над первой землей, а вторая сторона - над второй. При этом ещё обратите внимание на необходимость электростатического барьера (линия выводов одной стороны, затем проводник, подключенный с обоих сторон к земле этой стороны, затем разрыв во всех слоях ПП, затем земляной проводник, подключенны к земле другой стороны, и нанонец линия выводов другой стороны). Если микросхема не SMD, то барьер необходимо строить на всех слоях ПП.

Если под "токовой петлей" подразумевается питание излучающего диода оптопары, то подключайте анод к плану 3.3В, далее непосредственно у вывода катода ставим токозадающий резистор и далее ведем трассу к выводу процессора. Смысл именно такого соединения в уменьшении длинны высокоомной (и следовательно более восприимчивой к помехе) части.

Есть ещё одна высоомная часть: от коллектора выходного транзистора оптопары ко входу микросхемы. При закрытом транзистроре сопротивление источника сигнала - это сопротивление резистора на 3,3В. Будем иметь 470 ом, что на мой взгляд слишком много. Именно поэтому я рекомендую ставить развязку с push-pull выходным каскадом.

А вообще лучше не гадать о причине сбоев, а посмотреть на сигналы осциллографом (лучше цифровым с памятью).
Go to the top of the page
 
+Quote Post
BECHA1977
сообщение Dec 14 2007, 11:38
Сообщение #13


Участник
*

Группа: Новичок
Сообщений: 15
Регистрация: 5-12-07
Пользователь №: 33 008



спасибо всем за ответы - все пляски с бубном не дают глобального решения проблемы. некоторое улучшение заметно, но этого все равно недостаточно. Осциллографом смотрел - на шум появляется, но небольшой, а вот CRC пакетов совпадать перестает - это видно глазами (выведено на светодиод).

Следующий вопрос - есть идея сделать spi или подобный интнрфейс на тех же ногах програмным и более медленным (rs485 на скорости 19200 работает четко). Какие реализации (желательно с примерами) посоветуете?
Go to the top of the page
 
+Quote Post
repairDV
сообщение Dec 17 2007, 10:59
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 578
Регистрация: 7-11-06
Из: Хабаровск
Пользователь №: 22 044



У меня задача аналогичная. Пока не изменил кварцы у 56f803 на генераторы, проц зависал безнадёжно. Также пытался для связи по SPI использовать 6N137. Похоже, эти оптопары для роли связи вообще не подходят. Для связи нужно использовать микросхемы, предназначенные для связи. Серия 56F8xx, по моему личному впечатлению - лучшее, что выпускается в Европе и Америке, но не менее 56f807. Для такого сурьёзного проджекта нужно что-то более позднее.


--------------------
Маленький нанайца. А-а. А-а. Оморочком плыл. Маленький проточка. Осетра ловил.
Go to the top of the page
 
+Quote Post
BECHA1977
сообщение Dec 20 2007, 08:50
Сообщение #15


Участник
*

Группа: Новичок
Сообщений: 15
Регистрация: 5-12-07
Пользователь №: 33 008



Цитата(repairDV @ Dec 17 2007, 13:59) *
У меня задача аналогичная. Пока не изменил кварцы у 56f803 на генераторы, проц зависал безнадёжно. Также пытался для связи по SPI использовать 6N137. Похоже, эти оптопары для роли связи вообще не подходят. Для связи нужно использовать микросхемы, предназначенные для связи. Серия 56F8xx, по моему личному впечатлению - лучшее, что выпускается в Европе и Америке, но не менее 56f807. Для такого сурьёзного проджекта нужно что-то более позднее.


у меня с самими контроллерами никаких проблем - работают как часы.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 01:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01498 секунд с 7
ELECTRONIX ©2004-2016