Отговори на тема  [ 40 мнения ]  Отиди на страница Предишна  1, 2, 3  Следваща
Смущения по SPI 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
Единия(главния) е на 20MHz, другия на 16MHz, делителя на 4, първия модул ще работи на 5MHz, втория на 4MHz, дали изчисляваш правилно максимално допустимата скорост на която може да отговаря подчинения процесор ?

_________________
Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....


Пон Фев 21, 2011 4:36 pm
Профил WWW
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Чет Мар 19, 2009 8:33 pm
Мнения: 804
Мнение 
¶ написа:
Единия(главния) е на 20MHz, другия на 16MHz, делителя на 4, първия модул ще работи на 5MHz, втория на 4MHz, дали изчисляваш правилно максимално допустимата скорост на която може да отговаря подчинения процесор ?


И това си го мислих , че като са на различна честота и Слейв-а не се вписва добре , но пък сега с по къси проводници работи добре :)

@Cekins Може и да си прав , и нали съм ламер , е възможно да бъркам някъде .
То аз си нагласих по някава моя си представа , как да работи връзката м/у двата пик-а :oops:
та може и в това да има грешка . Но накратко правя така :
Мастер-а праща едно запитване към Слейв-а , а той след това си приготвя в буфера за пращане съответия отговор . Следва отново същото запитване от Мастер-а ( или само пуска Клок сигнал ) и с едновременно прочита вече готовия отговор .

Може тотално да съм убил смисъла на асинхроната връзка но , съм си го пригодил за моите нужди :)



@marcuka68
И аз съм ползвал звуковата карта преди , но беше за нискочестотни сигнали , ама сега на 1 мхз дали ще хване нещо :?


Пон Фев 21, 2011 9:26 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Яну 24, 2006 6:34 pm
Мнения: 1753
Местоположение: Варна
Мнение 
amdatlon написа:
... но пък сега с по къси проводници работи добре :)


Не съм казал, ама да повторя :) . Капацитет...

_________________
За пари сичко праим,даже и работим...


Пон Фев 21, 2011 9:47 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Юни 01, 2008 9:54 pm
Мнения: 1503
Местоположение: Пловдив
Мнение 
amdatlon написа:
ама сега на 1 мхз дали ще хване нещо :?


не, разбира се. Хайде отиди до близкото ТНТМ, електротехникум, технически университет, или кварталния дето ремонтира телевизори (дано поне той има) или както му викат се помоли за 10 мин на саме с осцилоскопа :D То за това бяха полезни кръжоците едно време - не че човек не може да си вземе от магазина шепа чаркове и да сглобява, ама си е друго като имаш пред теб що ти апаратура поискала сърце., а и имаше кой да те насочи къде да си търсиш грешката.. Та това му е майката - като нямаш скоп се разтърси в околията - колкото до това да погледнеш няколко сигнала не мисля, че ще ти откажат дори в университет, нищо че не си техен студент - по-скоро ще ти се зарадват.

И наистина се замисли дали да не поспестиш 400-500 лв за един втора ръка, ще ти е от полза както и да го погледнеш.


Пон Фев 21, 2011 9:47 pm
Профил WWW
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Чет Мар 19, 2009 8:33 pm
Мнения: 804
Мнение 
mitko_el написа:
amdatlon написа:
... но пък сега с по къси проводници работи добре :)


Не съм казал, ама да повторя :) . Капацитет...



:D
Тъй като се позамисля, дали няма да е капацитета :D

..... Сега сериозно ... наистина го каза и изглежда е така :)

@head_up е ако се разтъся все някой ще се съгласи да услужи със скоп :)
А иначе наистина е добре човек да го има под ръка , но за сега това ми е само като хоби след работа в свободното време . Но ако човек се занимава професионално като повечето от вас , е наложително да го има :)


Пон Фев 21, 2011 10:12 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Яну 24, 2006 6:34 pm
Мнения: 1753
Местоположение: Варна
Мнение 
Ако е това дето го мисля , не мож го видя със скоп. Като допреш сондите и проблема ще изчезне...Нямам идея коаксиалните телове дето ги слагаш колко "С" вкарват , ама си на ръба... Имах преди ядове от тоз сорт, ама сигналите ги пращаш към TTL схеми , пък те са си бързаци в сравнение с проца май, май...

_________________
За пари сичко праим,даже и работим...


Пон Фев 21, 2011 10:32 pm
Профил ICQ
Ранг: Популярен
Ранг: Популярен

Регистриран на: Сря Яну 25, 2006 12:47 pm
Мнения: 305
Местоположение: Varna
Мнение 
amdatlon написа:
¶ написа:
Единия(главния) е на 20MHz, другия на 16MHz, делителя на 4, първия модул ще работи на 5MHz, втория на 4MHz, дали изчисляваш правилно максимално допустимата скорост на която може да отговаря подчинения процесор ?


И това си го мислих , че като са на различна честота и Слейв-а не се вписва добре , но пък сега с по къси проводници работи добре :)

@Cekins Може и да си прав , и нали съм ламер , е възможно да бъркам някъде .
То аз си нагласих по някава моя си представа , как да работи връзката м/у двата пик-а :oops:
та може и в това да има грешка . Но накратко правя така :
Мастер-а праща едно запитване към Слейв-а , а той след това си приготвя в буфера за пращане съответия отговор . Следва отново същото запитване от Мастер-а ( или само пуска Клок сигнал ) и с едновременно прочита вече готовия отговор .

Може тотално да съм убил смисъла на асинхроната връзка но , съм си го пригодил за моите нужди :)





@marcuka68
И аз съм ползвал звуковата карта преди , но беше за нискочестотни сигнали , ама сега на 1 мхз дали ще хване нещо :?


Съдейки по този пост си мисля, че проблемът е по - скоро софтуерен и произлиза от недобро разбиране същностна на SPI комуникацията.
Ако позволиш малко разяснение:
Прдстави си че SPI модула на всеки от процесорите е един 8 битов преместващ регистър от едната страна му влизат данните, а от другата му излизат. И двата са вързани един след друг като на броеница Мвход -> Мизход -> Свход ->Сизход ->Мвход. Само и единствнно мастера генерира клока и в този смисъл разликата м/у работните честоти на двата проца няма значение. Не можеш да пуснеш "само клок" както казваш по - горе, както и неможеш да изпратиш данни без да приемеш други. Най - просто изглежда така: Двата проца слагат по един байт данни в регистъра, Мастера изтактува един байта и в резулата на което двата байта си разменят местата. При този сценарий трябва да се съблюдават три неща 1. Двта SPI модула да са настроени на един и същи Mode ( а те са 0..3) 2. Слейв-а винаги да държи в регистъра валиден байт ( в твоя случай отговора на синхро байта на мастера) и 3. SPI - я на Слейв-а задължително да работи в прекъсване с висок приоритет, защото ако SPI -я на Мастера е с много висока честота, то е възможно Слейва да не сварва да вкарва байтовете за отговор. В този случай Мастера ще си приема (от време на време) собствния байт или може и да е омазан, ако в момента на предаване Слейва го подмени. За това последното не съм сигурен, не си спомням дали SPI модулите на ПИК-те го позволяваха в момент на тактуване.
SPI е една от най - лесните и приятни за реализация и съм сигурен, че ако си огледаш добре кода ще оправиш нещата. И нещо много важно ти каза Никола - щом двете ти платки са на различно захранване ( а пък и да не са ), задължително трябва да пуснеш 4-та жица м/у тях за да изравниш масите, защото нали това е все пак напреженов, а не токов интерфейс. А по отношение на PullUp-ите, молся, че само от
едната страна на линията(Мастера) са достатъчни и ПИК-те си ги имат вградени, само трябва да ги разрешиш. Ако ги имаш и от другата страна, те ще ти помогнат да не ти се изтактува някой бит или цял байт, но само в случай че жиците са разкачени.
Предполагам че си ги вързал правилно: Master SDO -> Slave SDI, Slave SDO -> Master SDI и Master Clock -> Slave Clock
Извинявай за подробностите, дано това не те обижда, но понеже каза че си начинаещ...
Успех

EDIT: И още нещо - SPI комуникацията не е Асинхронна, както казваш по - горе, напротив много синхронна си е даже :)


Вто Фев 22, 2011 12:01 am
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Чет Мар 19, 2009 8:33 pm
Мнения: 804
Мнение 
@bkulev :D
Напротив изобщо не се обиждам , даже се радвам че си направил труда да ми разясниш по-разбираемо механизъма на работа на SPI-то .
Там където написах асинхронна връзка всъщност си мислех и имах в предвид синхронна,
и незнам що написах асинхронна :oops:

Както и да е ,
За SPI -> горе долу и аз това бях разбрал за начина на работа , ама доста си блъсках главата докато го схвана , щото английският ми е малко крив :)
Като казах че пускам само клок сигнал , имах предвид че пращам "0" , колкото д мастера да може да приеме числото от буфера на слейв-а.


Цитат:
..
И нещо много важно ти каза Никола - щом двете ти платки са на различно захранване ( а пък и да не са ), задължително трябва да пуснеш 4-та жица м/у тях за да изравниш масите, защото нали това е все пак напреженов, а не токов интерфейс
...


ДА това го направих още тогава с по дебела жица , иначе си имах пак мост , но с по тънка .

Много се радвам на съветите и идеите ви , всички са полезни !


Вто Фев 22, 2011 12:57 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
amdatlon написа:
¶ написа:
Единия(главния) е на 20MHz, другия на 16MHz, делителя на 4, първия модул ще работи на 5MHz, втория на 4MHz, дали изчисляваш правилно максимално допустимата скорост на която може да отговаря подчинения процесор ?


И това си го мислих , че като са на различна честота и Слейв-а не се вписва добре , но пък сега с по къси проводници работи добре :)



По принцип това, че двата процесора работят на различна честота на осцилатора не е проблем, проблем е ако обаче си набримчил максимална скорост на SPI на този с по-високата честота, тогава този с по-ниската честота на осцилатора може и да не може да смогне да обработва данните на бързия SPI clock. Затова трябва да изчислиш максимално допустимата от позицията на по-слабата страна и да осигуриш главния да не надхвърля тази скорост.

_________________
Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....


Вто Фев 22, 2011 2:59 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение 
А не може ли "мастера" като му потрябват данните само да каже на "слейва" пък той като е готов сам да ги клокне. С други думи да си разменят ролите в комуникацията :)


Вто Фев 22, 2011 9:42 pm
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Чет Мар 19, 2009 8:33 pm
Мнения: 804
Мнение 
Ами може ли така ? т.е Слейв-а да ги пуска клок-а ?
Или имаш в пред вид мастера да стане слейв , а слейв-а - мастер :)

Но тогава и в Мастера трябва да вкарам прекъсване като се появат данни по SPI , а това пък може да попречи на нормалната UART комуникация на Мастера с друго у-во .

А да попитам:
CAN-a има ли нещо по особено в подкарването или няма да имам проблем, ...
ако измисля как да ползвам него . До колкото прочетох си е серийна комуникация , и би свършила идеална работа


Сря Фев 23, 2011 1:33 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
amdatlon написа:
CAN-a има ли нещо по особено в подкарването или няма да имам проблем, ...
ако измисля как да ползвам него . До колкото прочетох си е серийна комуникация , и би свършила идеална работа


CAN работи със съобщения, т.е. не можеш да пуснеш поток от непрекъснати байтове както може при SPI. Освен това CAN-а изисква повечко познания, ако ще си разписваш сам управлението му. И е доста по-бавен от SPI на къси разстояния. Основно се използва когато устройствата са отдалечени едно от друго.

_________________
Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....


Сря Фев 23, 2011 2:25 am
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 25, 2005 11:41 am
Мнения: 1680
Мнение 
amdatlon написа:
А да попитам:
CAN-a има ли нещо по особено в подкарването или няма да имам проблем, ...
ако измисля как да ползвам него . До колкото прочетох си е серийна комуникация , и би свършила идеална работа


Ако компилаторът ти има библиотека с драйвери за CAN, може да го подкараш относително лесно. Но ако ще го започваш от нула, по - добре не се захващай с него сега, защото доколкото разбирам нямаш опит в материята като цяло.


Сря Фев 23, 2011 10:05 am
Профил ICQ WWW
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Чет Мар 19, 2009 8:33 pm
Мнения: 804
Мнение 
Ползвам CCS И видях че има драйвер за CAN .
Но за сега ще го остява да изчаква . Сега прехвърлям SLAVE-a на платка , и да видя как ще се държи :)


Сря Фев 23, 2011 1:54 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Съб Юни 24, 2006 8:25 pm
Мнения: 2292
Мнение 
Ако имаш SCI (rs232) по-добре ползвай него вместо САN. За пакет от 2-3 байта не си струва да се мъчиш с CAN.

_________________
Две плюс две е приблизително равно на четири. Факт!


Сря Фев 23, 2011 2:39 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 40 мнения ]  Отиди на страница Предишна  1, 2, 3  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 4 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни