|
SPI на скорости 1Мбит между двуми MCU, сбивается при работе устройства. |
|
|
|
Dec 5 2007, 17:34
|
Участник

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

|
Силовой преобразователь 2кВт содержит два DSP микроконтроллера Freescale 56F801 и 56F803. Между ними сделан обмен информацией по SPI. Минимальная частота обмена которую можно установить ~1Мбит (40Мгц/32). Кроме того в цепях SPI присутствует гальваническая развязка на базе 6N137. Длина соединительных дорожек около 20см. При работе преобразователя на нагрузку SPI начинает "ловить" помехи передача информации прекращается. Посоветуйте пожалуйста помехоустойчивое схемотехническое решение.
|
|
|
|
|
Dec 6 2007, 07:14
|
Участник

Группа: Новичок
Сообщений: 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
|
|
|
|
|
Dec 6 2007, 08:36
|

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

|
Цитата насколько я понял, нужно стаыить развязку как можно ближе к приемнику чтобы токовый сигнал проходил большее расстояние, чем потенциальный. Выходит надо ставить два оптрона около slave mcu (sck+mosi) и один около master mcu (miso) ? Нет, предлагается видимо ставить развязку всего и на каждом конце. ИМХО. Это не вариант для линии в 20см. Даже если навертите развязок, то помехи сядут на развязанный участок. А SPI как известно работает по фронтам, любая помеха на клоках приводит к ошибке. Цитата Переходите на асинхронный интерфейс и используйте дифференциальные приемопередатчики RS422/RS485. +100. Полностью поддерживаю. PS: А если и это не поможет, то можно попробовать связать контроллеры при помощи CAN, при возникновении ошибок на линии, передача сообщения будет повторена автоматически.
--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
|
|
|
|
|
Dec 6 2007, 08:41
|
Участник

Группа: Новичок
Сообщений: 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 "занят".
|
|
|
|
|
Dec 6 2007, 10:26
|

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

|
Цитата(rezident @ Dec 6 2007, 14:24)  Да. См., например, у Maxim. По ссылке таблица драйверов >=1Mbps с изоляцией >=1000V. Например, MAX1480A/MAX1490A давно выпускаемые и проверенные драйверы. Правда не самые маленькие по габаритам и цене. Зачем там развязка на 20 см по одной плате, монстр да и только. Тогда уже проще и дешевле взять TOSLINK, да и не париться. Помех для оптики еще не придумали
--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
|
|
|
|
|
Dec 6 2007, 10:30
|
Местный
  
Группа: Свой
Сообщений: 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 у Вас между процессорами не идет? Если так, то могут быть проблемы с синхронизацией.
|
|
|
|
|
Dec 6 2007, 11:35
|
Участник

Группа: Новичок
Сообщений: 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 у Вас между процессорами не идет? Если так, то могут быть проблемы с синхронизацией. не идет, проблемы решаются програмно. на выключенной "силе" сбоев приема/передачи нет.
|
|
|
|
|
Dec 6 2007, 12:58
|
Бывалый
    
Группа: Свой
Сообщений: 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/
|
|
|
|
|
Dec 6 2007, 14:22
|
Местный
  
Группа: Свой
Сообщений: 292
Регистрация: 28-01-05
Из: МО, Мытищи
Пользователь №: 2 274

|
Цитата(BECHA1977 @ Dec 6 2007, 14:35)  Да я ошибся: посчитал, что 56F801 и 56F801X это одно и тоже. Цитата(BECHA1977 @ Dec 6 2007, 14:35)  тогда не понятно как сделать "токовую петлю" на силовой плате - граница раздела земель посредине платы, а MCU ближе к краям. Положение развязки на границе земляных планов - наиболее правильное. При этом одна сторона микросхемы находится над первой землей, а вторая сторона - над второй. При этом ещё обратите внимание на необходимость электростатического барьера (линия выводов одной стороны, затем проводник, подключенный с обоих сторон к земле этой стороны, затем разрыв во всех слоях ПП, затем земляной проводник, подключенны к земле другой стороны, и нанонец линия выводов другой стороны). Если микросхема не SMD, то барьер необходимо строить на всех слоях ПП. Если под "токовой петлей" подразумевается питание излучающего диода оптопары, то подключайте анод к плану 3.3В, далее непосредственно у вывода катода ставим токозадающий резистор и далее ведем трассу к выводу процессора. Смысл именно такого соединения в уменьшении длинны высокоомной (и следовательно более восприимчивой к помехе) части. Есть ещё одна высоомная часть: от коллектора выходного транзистора оптопары ко входу микросхемы. При закрытом транзистроре сопротивление источника сигнала - это сопротивление резистора на 3,3В. Будем иметь 470 ом, что на мой взгляд слишком много. Именно поэтому я рекомендую ставить развязку с push-pull выходным каскадом. А вообще лучше не гадать о причине сбоев, а посмотреть на сигналы осциллографом (лучше цифровым с памятью).
|
|
|
|
|
Dec 14 2007, 11:38
|
Участник

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

|
спасибо всем за ответы - все пляски с бубном не дают глобального решения проблемы. некоторое улучшение заметно, но этого все равно недостаточно. Осциллографом смотрел - на шум появляется, но небольшой, а вот CRC пакетов совпадать перестает - это видно глазами (выведено на светодиод).
Следующий вопрос - есть идея сделать spi или подобный интнрфейс на тех же ногах програмным и более медленным (rs485 на скорости 19200 работает четко). Какие реализации (желательно с примерами) посоветуете?
|
|
|
|
|
Dec 20 2007, 08:50
|
Участник

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

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