Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Смущения по SPI
http://mcu-bg.com/mcu_site/viewtopic.php?f=2&t=8567
Страница 1 от 3

Автор:  amdatlon [ Съб Фев 19, 2011 10:23 pm ]
Заглавие:  Смущения по SPI

Дано да съм уцелил раздела :oops:

Проблема е че, ползвам SPI връзка м/у два пик-а (18F458 ) , които са на отделни платки и на 15-20 см един от друг .
Идват ми яки смущения на данните , т.е. съвсем неверни стойности.
От разни опити се разбра че, най-вероятно е от смущения по проводниците м/у двата ПИК-а. Като раздалеча трите проводника на разстояние един от друг нещата се подобряват значително .
Сега пък трите проводника са три тънки коаксиални кабелчета . Викам си оплетката ще спира "вредните емисии" , да , ама не !
Разни варианти пробвах , трите оплетки ги свързвах заедно към маса , или пък висящи , или само една към маса , по някой път половин час може всички данни да са верни , при следващ опит пък почват да идват небивалици ... и така :)

Master-а ми е с 20 Мхз кварц , а Slave-a със 16 Мхз . Делителя на SPI Модула е 4 .

Не мога само да разбера дали смущенията са м/у трите линии на SPI -то , или от кварца?!?

Кажете моля някакъв начин за справяне с проблема, ползват ли се някакви екранировки или що .... ?

Автор:  sthx [ Нед Фев 20, 2011 11:33 am ]
Заглавие: 

Aми пусни SPI на 2 кHz и проблемите почти сигурно ще ти се решат. По принцип този интерфейс е създаден за комуникация между схеми на една платка.

Автор:  relsys [ Нед Фев 20, 2011 1:42 pm ]
Заглавие: 

Пробвай с феритно пръстенче. А освен това този контролер има CAN модул.

Автор:  Nikola Kirov [ Нед Фев 20, 2011 2:10 pm ]
Заглавие: 

По вероятно да имаш смущения между масите на двете платки. Пусни една дебела и къса жица между масите им.

Автор:  amdatlon [ Нед Фев 20, 2011 2:37 pm ]
Заглавие: 

:idea:
Много благодаря за идеите !

Почвам да ги пробвам , с феритен пръсен и с дебела маса , ако не стане ще пробвам да бутна честотата .
А това за CAN съм го мислил , но мисля почти всички крачета на пик-а ( МАСТЕР-а) са заети .
Но пък ако не стане по горните начини ще преразгледам схемата ако мога да променя нещо че да се освободят CAN-oвите . Проблема ми е само че платката на мастер-а вече е реализирана , само SLAVE-a е на експериментална платка :)

Автор:  Цецо [ Нед Фев 20, 2011 2:37 pm ]
Заглавие: 

А сигурен ли си че таме проблема? Можеш ли да пробваш с по къси жици :)

Автор:  amdatlon [ Нед Фев 20, 2011 3:13 pm ]
Заглавие: 

Цецо написа:
А сигурен ли си че таме проблема? Можеш ли да пробваш с по къси жици :)


Ами най-първо като пуснах комуникацията , трите жици м/у платките си бяха най обикновенни 20 см медни проводници 0,35 кв.мм , и ги бях вързал на сноп с тиксо .
А данните бяха някакви постоянно подскачащи числа .
Изпращам пакети от по 2 байта ( т.е едно 16 битово число разделено на 2 части )
Станното е че преди всеки пакет си пращам едно число (0х55 ) като контролно и ако другия пик ми върне определено число ( 0х56) , чак тогава запитвам за дугите 2 байта .
И явно контролното число почти винаги минава проверката , но следващите са някакви хаотични числа :(

После разделих трите жици отделно , данните почти заспаха . Примерно на половин час всичко е добре но ако размърам жиците , пак се омазват данните .
Като рестартирам пик-а, се оправят .... и после пак така .

Сега след обяд ще пробвам разните методи които предложихте !

Автор:  relsys [ Нед Фев 20, 2011 4:12 pm ]
Заглавие: 

amdatlon написа:
:idea:
Много благодаря за идеите !

Почвам да ги пробвам , с феритен пръсен и с дебела маса , ако не стане ще пробвам да бутна честотата .
А това за CAN съм го мислил , но мисля почти всички крачета на пик-а ( МАСТЕР-а) са заети .
Но пък ако не стане по горните начини ще преразгледам схемата ако мога да променя нещо че да се освободят CAN-oвите . Проблема ми е само че платката на мастер-а вече е реализирана , само SLAVE-a е на експериментална платка :)


Можеш да сложиш CAN Tranceiver и на SPI.

Автор:  head_up [ Нед Фев 20, 2011 5:12 pm ]
Заглавие: 

@amdatlon, с какво ги храниш тия платки? Ако имаш скоп погледни пакетите - да нямаш повече фронтове в клока отколкото е редно? Че едно калпаво захранване или друг консуматор наблизо и липсващи филтри на твоята платка могат да те вкарат в чудене за дни наред. Ако ползваш импулсно захранваене пробвай да го смениш с някое с траф и простичък стабилизатор с прилежащите му филтри (сещаш се - по всички правила на изкуството, на платката, до чеповете и т.н. ). Защото говориш за връзка между жиците - не че не може, ама ми се струва, че по-скоро нещо външно смущава душения ти мир.

Автор:  Цецо [ Нед Фев 20, 2011 5:20 pm ]
Заглавие: 

amdatlon написа:
После разделих трите жици отделно , данните почти заспаха . Примерно на половин час всичко е добре но ако размърам жиците , пак се омазват данните .
Като рестартирам пик-а, се оправят .... и после пак така .


:)

Ти осцилоскоп ползваш ли? SPI ако не друго, поне е благодатен за контрол интерфейс, всичко е ясно и точно синхронизирано. Погледни си сигналите и ще видиш дали ти е там проблема.

Автор:  amdatlon [ Пон Фев 21, 2011 1:35 am ]
Заглавие: 

Първо бутнах честотата : 100 kHz , 50 kHz и така до към 10 kHz , пробвах и на 2 кхз но взе да дава проблем и изобщо никакви данни не тръгнаха по жицата.
Но при всички случаи беше доста по добре от първоначалната на която бях . Но пак като събера жиците близо и даже не отчита нищо вярно , т.е. и контролния ми байт не минава .

Пробвах с дебела маса м/у платките , но никаква промяна :(

Нещо което забелязах : SLAVE-a ми ще мери едни импулси , а тях сега ги симулирам от паралелния порт на компютъра ( ниско честотни са 0-60-70 Хз ) .
.... та като свъжа масата от компа към оплетката на SPI- Линията , всичко заспива и няма грешки , а като е към масата на платката остават грешките . въпреки че двете маси са свързани ?!?! 8O

както и да е де :)
накрая скъсих максимално жиците 3 - 4 см , даже сложих обикновенни без екранировка и всички аномалии изчезнаха . Пробвах - допирах жиците местих ги , но нямаше за сега грешни данни :)
Даже скоростта на SPI-то пак я върнах на пъвоначалната 1,25 Mbit/s .


@head_up
Захранването си ми е класическо траф-че + 7805 с кондензаторите .... така .
Външни смущеня е почти изключено тъй като всичко е в домашни условия и наоколо до 5-6 метра даже и телевизор няма , само един комп. Но съм пробвал и при изключен комп , ама няма промяна . Пробвал съм и не-мрежово захранване - от акумулатор .

@head_up , @Цецо
Еееех ако имах осцилоскоп , доста главоблъскане бих си спестил :P
Но аз съм един Псолютен начинаещ и тези две платки са ми първия досег с микроконтролери изобщо . На разположение имам един мултицет ( от по-умните - служебен ) и с това ми се изчерпва арсенала от уреди , но както казваше един приятел :имам голяма вътрешна енергия .

Много благодаря за помоща ви !!!

Автор:  Цецо [ Пон Фев 21, 2011 9:17 am ]
Заглавие: 

Ами сега поне има разни осцилоскопчета на цената на средна ръка GSM апарат. Така, че ако човек иска да се занимава като хората с електроника, това е първото нещо което трябва да изгладува. И няма да гладува много, едно време и 10 години да гладуваш - все тая, осцилоскопа струваше колкото 2 апартамента :)

Да работиш без осцилоскоп е безмислено. Губиш време и пропускаш ценни знания и опит в глупави проверки на принципа проба - грешка.

Автор:  marcuka68 [ Пон Фев 21, 2011 11:25 am ]
Заглавие: 

Аз ползвах по-рано един осцилоскоп на компютър. Инсталираш си програмата и през звуковата карта направо мериш. Ползвах го, за да наблюдавам RS485 и вършеше работа. Не е много професионална работа, но като за начало е добро и е без пари.

Автор:  mitko_el [ Пон Фев 21, 2011 3:37 pm ]
Заглавие: 

Вържи от двете страни на "жиците" си по един R 1k към +5V. Капацитет май ти бърка работата... Другата проба , дет се сещам- R 10 кила последователно на "жиците"

Автор:  Cekins [ Пон Фев 21, 2011 4:30 pm ]
Заглавие: 

На мен ми мирише повече на кофти синхронизация. I2C на 100 kHz по 20 метра жица съм пускал. И то в зашумена среда. Не мога да повярвам, че на 10kHz и на 30 см. нещо ще може да го смущава толкова, че да дава чак такива грешки. Още повече SPI.

Страница 1 от 3 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/