MMA7455 SPI длина линии
- Войдите на сайт для отправки комментариев
Ср, 17/10/2012 - 11:29
Есть акселерометр MMA7455, подключаю его к Arduino по шине SPI. При короткой линии коммуникации и питания все хорошо работает; при подключении 15м кабеля по питанию (- и +) коммуникации нет с акселерометром. Если один из полюсов питания имеет длинный провод, а другой короткий, то взаимодействие успешно.
Сопротивление 15 метрового кабеля 4 Ом.
Я понимаю, если 15 м по шине комуникации, тогда может и не работать, а тут по питанию такое...
В чем проблема?
Если смогли померить сопротивление проводов, то в чем была трудность померить напряжение питания на акселерометре, когда он не работает?
И еще. Любая линия данных работает относительно одной из линий питания, чаще всего относительно земли (GND), поэтому удлинение линий питания так же может сказываться на связь. Попробуйте снизить скорость SPI:
Длинная линия - это всегда проблемма. Начинает сказываться ёмкость и индуктивность линии (точнее, ее волновое сопротивление), возможно, придется позаботиться о согласовании линии по волновому сопротивлению (входное сопротивление приемника должно быть равно волновому сопротивлению линии). Старайтесь использовать только витые пары и для каждого сигнала - свой земляной провод. То есть если всего 4 сигнальных провода, то потребуется кабель UTP-5 (от комповой сети).
Если смогли померить сопротивление проводов, то в чем была трудность померить напряжение питания на акселерометре, когда он не работает?
С напряжением, кажется все в порядке, это одно из первых что я проверил.
Понижение скорости SPI не желательно.
Длинная линия - это всегда проблемма. Начинает сказываться ёмкость и индуктивность линии (точнее, ее волновое сопротивление), возможно, придется позаботиться о согласовании линии по волновому сопротивлению (входное сопротивление приемника должно быть равно волновому сопротивлению линии). Старайтесь использовать только витые пары и для каждого сигнала - свой земляной провод. То есть если всего 4 сигнальных провода, то потребуется кабель UTP-5 (от комповой сети).
Да, видимо придется заниматься и согласованием и использовать витую пару. Быть может подскажете ссылку на материал, или ключевые слова? Я нашел это: http://habrahabr.ru/post/145612/ - это по моей части?
Да. Это Ваша тема. Если есть возможность измерить ёмкость и индуктивность, то волновое можно посчитать:
Сопротивление терминатора должно быть равно волновому. Это главное условие передачи фронта.
Да. Это Ваша тема. Если есть возможность измерить ёмкость и индуктивность, то волновое можно посчитать:
Сопротивление терминатора должно быть равно волновому. Это главное условие передачи фронта.
Пока такого прибора нет.
Прибор с параметрами подойдет?:
6 Capacitance Measuring Ranges : 1pF to 200uF
Range 1 to 5 : 2000pF / 20nF / 200nF / 2uF / 20uF, +/-2. 5 ;
Range 6 : 200uF, +/-7% ;
4 Inductance Measuring Ranges :20mH / 200mH / 2H / 20H, +/- 2.5%, + 5 digits;
Скорее всего нет, там индуктивность будет в микрогенри. Попробуйте с резистором 100 Ом. Если не пойдет, тогда 75 Ом, потом 50 Ом. Волновое витой пары находится где-то в интервале 50-150 Ом. Точно не помню.
Скорее всего нет, там индуктивность будет в микрогенри. Попробуйте с резистором 100 Ом. Если не пойдет, тогда 75 Ом, потом 50 Ом. Волновое витой пары находится где-то в интервале 50-150 Ом. Точно не помню.
А от длины кабеля не зависит волновое сопротивление?
А от длины кабеля не зависит волновое сопротивление?
Нет. От длины зависит затухание, которое пропорционально активному сопротивлению. Чем длиннее, тем более выражено волновое и тем легче его померить (увеличиваются емкость и индуктивность, их соотношение не меняется), так что если хотите измерить, берите бухту и меряйте любым китайцем, который умеет измерять емкость и индуктивность.
Чтобы было понятнее, пример: берете телевизионный кабель, хоть метр, хоть 100 метров, у него все равно волновое сопротивление 75 Ом.
...
Чтобы было понятнее, пример: берете телевизионный кабель, хоть метр, хоть 100 метров, у него все равно волновое сопротивление 75 Ом.
Спасибо, буду пробовать.
AlexFisher, спасибо, работает, по крайне мере 15 метров, сопротивление терминаторов 100-120 Ом. Работает на скорости
SPI.setClockDivider(SPI_CLOCK_DIV128);
Если терминаторы ставить на все 4 шины на обоих концах, то не работает, я ставил так, с учетом направления передачи сигнала, это работает:
A M
SDA(MOSI) R ====================T M
SDO(MISO) D T==================== A
SCLK(SCL) U T====================T 7
CS I T ====================T 4
N 5
O 5
Правильно. Не пробовали на SCLK и CS тоже только со стороны слейва ставить? Было бы логичнее. Это же тоже однонаправленные линии (на мастере они всегда выходные)