Обзор:
Я общаюсь среди 3 пользовательских печатных плат с dspic33 на них, используя SPI. У меня есть ведущий и два ведомых, но я посылаю обоим ведомым одни и те же данные (и позволяю им выбирать, на что обратить внимание).
Настройка оборудования:
Два ведомых устройства имеют встроенные контроллеры двигателя BLDC, и Master управляет этими контроллерами двигателя через SPI. Провода проложены на расстоянии около 3 футов от ведущего к каждому ведомому устройству, а заголовки являются типичными. Заголовки SAMTECH с сквозным отверстием. 1 ". Каждый контроллер мотора имеет свой собственный регулятор на 3,3 В, который управляет электроникой dsPIC / LV. Я использую один регулятор контроллера мотора. (давайте назовем его А) для питания главного DSPIC SPI. К другому контроллеру двигателя (назовем его Б) я просто запускаю линии SPI и заземление от ведущего. CLI SPI работает на частоте 100 кГц.
Приступая к делу (наконец-то):
При отсутствии работающих двигателей все работает нормально, все данные поступают, как и ожидалось, обоим ведомым. Однако, когда я запускаю моторы, Bslave больше не получает правильные данные. Он либо подбирает дополнительные часы, либо сбрасывает их, я полагаю, что делать с дополнительным шумом. В любом случае его контрольные суммы начинают проваливаться. Aslave работает как чемпион, несмотря ни на что.
1) Ожидаете ли вы, что все эти устройства должны работать от одного источника 3,3 В? Если да, можете ли вы убедить меня, говоря о более длинной петле индуктивности и чёрной магии, такой как эта.
2) Есть ли у вас эмпирическое правило относительно того, насколько быстро я могу ожидать, чтобы иметь возможность запустить SPI clk и добиться успеха при такой аппаратной настройке, как указано выше?