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

Регистриран на: Пет Фев 17, 2006 9:17 am
Мнения: 765
Местоположение: Стара Загора
Мнение 
По принцип, има 4 начина на работа с SPI. Дали активното ниво на клока е ниско или високо. И дали валидните данните се променят по преден фронт (преход неактивно-активно ниво) на клока или по заден фронт. Ако двете устройства са настроени по различен начин, можеш да очакваш всякакви дивотии.


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

Регистриран на: Вто Май 29, 2007 2:23 pm
Мнения: 3714
Местоположение: Високо в планината
Мнение 
amdatlon написа:
Сега прехвърлям SLAVE-a на платка , и да видя как ще се държи :)

Защо не вържеш един преместващ регистър на мястото на слейва (а защо не и паралелно на него), да изпратиш един байт и да видиш какво се получава. Ще ти трябва преместващ регистър с възможност за паралелно четене на данните.
Можеш да направиш и обратното- да заредиш паралелно един прем. регистър и мастъра да ти го прочете. Но в този случай ще трябва "слейв"-а задължително да е изключен.

_________________
Хайде де!


Сря Фев 23, 2011 5:54 pm
Профил
Online
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Чет Мар 19, 2009 8:33 pm
Мнения: 804
Мнение 
setoy написа:
По принцип, има 4 начина на работа с SPI. Дали активното ниво на клока е ниско или високо. И дали валидните данните се променят по преден фронт (преход неактивно-активно ниво) на клока или по заден фронт. Ако двете устройства са настроени по различен начин, можеш да очакваш всякакви дивотии.


С това поне мисля нямам проблем , настроени са на един режим :)

@dan да това може да се направи ,
но в моя случай мисля няма смисъл, тъй като при къси връзми м/у чиповете данните са си верни :)


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

Регистриран на: Нед Сеп 26, 2004 4:11 pm
Мнения: 3750
Местоположение: София
Мнение 
Добре де, някой разбра ли колко и как са "неверни" данните ? Я дай пример: какво си пратил, какво се е получило.


Сря Фев 23, 2011 10:14 pm
Профил ICQ
Online
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Чет Мар 19, 2009 8:33 pm
Мнения: 804
Мнение 
Примерно :

1. MASTER-a запитва ,
2.SLAVE-a разделя едно Int16 число ( пример 1000= 0х03Е8 ) на 2 байта ( 03 и Е8 ) .
3. Мастера ги чете на два пъти и ги събира двете части за да стане пак Int16 .

И като стане смущаването на трансфера , праща 1000 а мастера е приел 4890 . Като приетото число непрекъснато се мени 5000 , 4500 , 0 , 10000 , 30000 4898 , и така хаотично без да пипам нищо или да променям изпратеното ( 1000) .
Дори да променям изпратеното число , приетото пак си се сменя от горния порядък :)


Чет Фев 24, 2011 1:20 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Сеп 26, 2004 4:11 pm
Мнения: 3750
Местоположение: София
Мнение 
Дай лог на комуникацията.


Чет Фев 24, 2011 11:01 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Сеп 15, 2009 10:44 am
Мнения: 1034
Мнение 
Свържи двете платки с лентов кабел. Всички нечетни жила ги замаси от двете страни. На сигналните проводници (четните жила) включи серийни резистори по 100 ома откъм източника на сигнала.

И като ти остане време, прочети малко за предавателна линия (transmission line) и начините за терминиране. Ако видиш по колко клока постъпват на входа на слейва при всеки преход на мастера с тия хвърчащи жици, свят ще ти се завие.


Чет Фев 24, 2011 11:18 am
Профил
Online
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Чет Мар 19, 2009 8:33 pm
Мнения: 804
Мнение 
bateAz написа:
Дай лог на комуникацията.


:) Да дам , ама като нямам :)

Виждам ги на LCD данните .

@741
Това мога да го направя , благодаря за съвета :)


Чет Фев 24, 2011 2:01 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
Вързал съм SPI на 2MHz(толкова може да даде отдалечения сензор) от TMS320xxxx през 5kV изолатори на TI и RS485 предаватели/приемници на Exar. Хвърлям го засега на 10-тина метра, за в бъдеще ще е до към 20 метра максимум. Няма дертове с капацитети, изпуснати байтове и т.н. Та си мисля, че проблема не е нито в чиповете, нито в капацитетите, ами е по-скоро в софтуера, и разбира се задклавиатурното устройство :-)

Започни с някаква ниска честота на SPI, примерно 1MHz тактова честота, провери всичко ли е наред с данните. След това постепенно я вдигай до възможния максимум. Ако и на 1MHz не работи, копай в софтуера.

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


Чет Фев 24, 2011 4:54 pm
Профил WWW
Online
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Чет Мар 19, 2009 8:33 pm
Мнения: 804
Мнение 
741 написа:
Свържи двете платки с лентов кабел. Всички нечетни жила ги замаси от двете страни. На сигналните проводници (четните жила) включи серийни резистори по 100 ома откъм източника на сигнала.
....


След пренасянето на платка , направих това първо .
Свързах ги с 20 см лентов кабел и съпротивления на предавателните линии .
другите жила ги замасих .
Кварца пак си ми e на 20 МHz , с делител 4 за SPI клока .
И още от първите опити се вижда стабилност на данните :)
Ама нали съм си дебил :) пак почвам да мачкам, усуквам, места, лентовия кабел ,
НО за сега всичко си работи стабилно :D

Благодаря на всички за помоща !


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

Кой е на линия

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


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

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