|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 11:01 pm
| Автор |
Съобщение |
|
setoy
Ранг: Почетен член
Регистриран на: Пет Фев 17, 2006 9:17 am Мнения: 765 Местоположение: Стара Загора
|
По принцип, има 4 начина на работа с SPI. Дали активното ниво на клока е ниско или високо. И дали валидните данните се променят по преден фронт (преход неактивно-активно ниво) на клока или по заден фронт. Ако двете устройства са настроени по различен начин, можеш да очакваш всякакви дивотии.
|
| Сря Фев 23, 2011 5:52 pm |
|
 |
|
dan
Ранг: Форумен бог
Регистриран на: Вто Май 29, 2007 2:23 pm Мнения: 3714 Местоположение: Високо в планината
|
Защо не вържеш един преместващ регистър на мястото на слейва (а защо не и паралелно на него), да изпратиш един байт и да видиш какво се получава. Ще ти трябва преместващ регистър с възможност за паралелно четене на данните.
Можеш да направиш и обратното- да заредиш паралелно един прем. регистър и мастъра да ти го прочете. Но в този случай ще трябва "слейв"-а задължително да е изключен.
_________________ Хайде де!
|
| Сря Фев 23, 2011 5:54 pm |
|
 |
|
amdatlon
Ранг: Почетен член
Регистриран на: Чет Мар 19, 2009 8:33 pm Мнения: 804
|
С това поне мисля нямам проблем , настроени са на един режим
@dan да това може да се направи ,
но в моя случай мисля няма смисъл, тъй като при къси връзми м/у чиповете данните са си верни 
|
| Сря Фев 23, 2011 9:11 pm |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
Добре де, някой разбра ли колко и как са "неверни" данните ? Я дай пример: какво си пратил, какво се е получило.
|
| Сря Фев 23, 2011 10:14 pm |
|
 |
|
amdatlon
Ранг: Почетен член
Регистриран на: Чет Мар 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 |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
Дай лог на комуникацията.
|
| Чет Фев 24, 2011 11:01 am |
|
 |
|
741
Ранг: Форумен бог
Регистриран на: Вто Сеп 15, 2009 10:44 am Мнения: 1034
|
Свържи двете платки с лентов кабел. Всички нечетни жила ги замаси от двете страни. На сигналните проводници (четните жила) включи серийни резистори по 100 ома откъм източника на сигнала.
И като ти остане време, прочети малко за предавателна линия (transmission line) и начините за терминиране. Ако видиш по колко клока постъпват на входа на слейва при всеки преход на мастера с тия хвърчащи жици, свят ще ти се завие.
|
| Чет Фев 24, 2011 11:18 am |
|
 |
|
amdatlon
Ранг: Почетен член
Регистриран на: Чет Мар 19, 2009 8:33 pm Мнения: 804
|
 Да дам , ама като нямам
Виждам ги на 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 |
|
 |
|
amdatlon
Ранг: Почетен член
Регистриран на: Чет Мар 19, 2009 8:33 pm Мнения: 804
|
След пренасянето на платка , направих това първо .
Свързах ги с 20 см лентов кабел и съпротивления на предавателните линии .
другите жила ги замасих .
Кварца пак си ми e на 20 МHz , с делител 4 за SPI клока .
И още от първите опити се вижда стабилност на данните
Ама нали съм си дебил  пак почвам да мачкам, усуквам, места, лентовия кабел ,
НО за сега всичко си работи стабилно
Благодаря на всички за помоща !
|
| Пет Фев 25, 2011 3:55 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 1 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|