Отговори на тема  [ 21 мнения ]  Отиди на страница 1, 2  Следваща
Atmega и SPI 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Чет Юни 16, 2005 11:04 am
Мнения: 37
Мнение Atmega и SPI
За първи път се боря с този протокол и нещо зех да буксувам.

ОПитвам се да чета по SPI данните от няколко АЦПта и датчика. Проблема е следния.
Мегата я настройвам мастър. Опитвам се да чета от ето този датчикhttp://mcu-bg.com/mcu_site/exchange/tc77_442.pdf като MOSI линията я оставям не свързана. Пращам един байт който е 0х00 и след това чета SPDR но не чете адекватно. Връща ми винаги енда и съща дума която не можа да е истина.

Дали не трябва да сложа и MOSI линията на SI/O-то на TC77.


Прикачени файлове:
TC77.pdf [374.99 KiB]
216 пъти
Чет Авг 03, 2006 5:19 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение 
Сигурен ли си че това което четеш не е manufacture ID-то?

ако е така изкарай от shutdown датчика...


Чет Авг 03, 2006 6:10 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Чет Юни 16, 2005 11:04 am
Мнения: 37
Мнение 
Не е схут даун. Подадеш ли му напрежение директно почва да работи. Някъде другаде е бъгнята ама не ми е ясно още къде.


Чет Авг 03, 2006 6:42 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Сеп 25, 2004 12:32 pm
Мнения: 8382
Местоположение: София
Мнение 
Имай предвид, че изходите на SPI тряба да се конфигурират по съответен начин като входове/изходи, в даташита го пише.


Чет Авг 03, 2006 9:31 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение 
По добре не ползвай хардуерното SPI а си напиши сам програмка за четене. Обърни внимание колко бита се четат и пишат. Хардуерния SPI работи на групи по 8 а тук има един път 8 и един път 6 за четенето. Освен това като гледам след CS low веднага се започва клокване на данните. След това чак можеш да му пращаш. Може и да греша но съм борил микрочипско ацп да го пусна с хардуерния SPI, макар че в PDF-a има обяснения как можело да стане. Накрая си написах сам модул специално за него и си заспа. Малко дървено се получава ама пък нямаш грижи.


Пет Авг 04, 2006 12:02 am
Профил ICQ
Ранг: Ориентиран
Ранг: Ориентиран
Аватар

Регистриран на: Сря Мар 01, 2006 2:21 pm
Мнения: 267
Местоположение: Fort Lauderdale, FL
Мнение Re: Atmega и SPI
Filo написа:

Дали не трябва да сложа и MOSI линията на SI/O-то на TC77.


Тогава ще имаш два изхода свързани един към друг, а това не е за препоръчване.

_________________
Всички обичаме да печелим, но колко от нас обичат да тренират!


Пет Авг 04, 2006 9:47 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Чет Юни 16, 2005 11:04 am
Мнения: 37
Мнение 
Абе няма ли стандарт за този протокол.

Четох за Мегата че като е мастър за да получаваш данни първо трябва да изпратиш един байт.
Датчика пък в момтна в който му свалиш CS-a пише че почва да предава. в момента съм оствил MOSI-то не свързано за да мога да пусна клок и да получавам данни. Направо се чудя как да го подхвана.


Пет Авг 04, 2006 10:14 am
Профил
Ранг: Професионалист
Ранг: Професионалист
Аватар

Регистриран на: Сря Май 11, 2005 3:47 pm
Мнения: 534
Мнение 
С какъв процесор си? Имай предвид че ако използваш CS-та и SPI на процесора ти ако е конфигуриран в 8 битов режим, CS се сетва в не активно състояние на всеки 8 бита. Повечето slave схеми на SPI са направени като state машина която се ресетира от не активното състояние на CS. Така че мои съвет е да изпозваш някое IO на процесора, т.е. преди да четеш го сваляш, след като свършиш :) го вдигаш. Първата работа коята трябва да свършиш е да видиш на осцилоскопа какво става по жиците :) на SPI-а.

Edit: Аха ти си Мега, sorry не бях го видял.


Пет Авг 04, 2006 10:41 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пон Ное 07, 2005 9:17 pm
Мнения: 57
Мнение 
Съжалявам за тъпия въпрос,
обаче забелязал ли си че данните от TC77 не са 8 bits ами 12 bits.
Ако не си пробвал с 12 bits, пробвай, може да стане.

Данчо


Пет Авг 04, 2006 10:57 am
Профил
Ранг: Ориентиран
Ранг: Ориентиран
Аватар

Регистриран на: Сря Мар 01, 2006 2:21 pm
Мнения: 267
Местоположение: Fort Lauderdale, FL
Мнение 
Filo написа:
Абе няма ли стандарт за този протокол.

Четох за Мегата че като е мастър за да получаваш данни първо трябва да изпратиш един байт.
Датчика пък в момтна в който му свалиш CS-a пише че почва да предава. в момента съм оствил MOSI-то не свързано за да мога да пусна клок и да получавам данни. Направо се чудя как да го подхвана.




И да свалиш CS-a на датчика, докато не му подадеш тактов сигнал няма да тръгне да предава. С изпращането на тоя байт, ти казваш, че искаш да вземеш данни от Slave-а. Виж картинката :)


Прикачени файлове:
SPI.jpg
SPI.jpg [ 28.7 KiB | Прегледано 1877 пъти ]

_________________
Всички обичаме да печелим, но колко от нас обичат да тренират!
Пет Авг 04, 2006 11:09 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Чет Юни 16, 2005 11:04 am
Мнения: 37
Мнение 
Осцилоскопа съм го сложил. Ама така както е направен протокола, се притеснявам че нищо не мога да видя на него. той след като си получи двете думи по 8 бита и вдига CS. При честота 62,5 KHz се съмнявам да видя нещо.

май ше се хвана да го разпиша че взе да ми писва.


Пет Авг 04, 2006 11:13 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Чет Юни 16, 2005 11:04 am
Мнения: 37
Мнение 
[quote="paregov"][/quote]

Аз CSa го свалям. Изпращам байт от Мегата защото четох че само така като е в режим Мастър може да пуснеш клока и след това чакам да получа данни. Ама нещо по веригата се губи.


Пет Авг 04, 2006 11:15 am
Профил
Ранг: Ориентиран
Ранг: Ориентиран
Аватар

Регистриран на: Сря Мар 01, 2006 2:21 pm
Мнения: 267
Местоположение: Fort Lauderdale, FL
Мнение 
Сигурен ли си, че първо не трябва да кажеш на датчика какво искаш да прочетеш от него?
(Нямам сега време да я чета. ) :D

_________________
Всички обичаме да печелим, но колко от нас обичат да тренират!


Пет Авг 04, 2006 11:21 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Чет Юни 16, 2005 11:04 am
Мнения: 37
Мнение 
paregov написа:
Сигурен ли си, че първо не трябва да кажеш на датчика какво искаш да прочетеш от него?
(Нямам сега време да я чета. ) :D


Сигурен. в даташита казват че свалиш ли му CS-a и почва да предава. Има малко смущаващи неща тука. На всякъде където четох SPI е с 4 линии а при този датчик е с 3. Демек MOSI и MISO влизат на неговия SI/O.

Ама на мен не ми се връзва. За SPI пише че като си мастър трябва да изпратиш "dummy" байт за да почнеш да четеш от слейва.
В даташита на датчика пише че свалиш ли му CS-a почва директно да праща. Цялата история не ми се връзва ама никак.


Пет Авг 04, 2006 11:26 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение 
Както по горе писах - най-лесно напиши си модул за четене. Един съвет обаче - вземи TCN75 -Той е I2C и на два кабела можеш да вържеш значително повече устройства а и всички I2C устройства спазват протокола. 75-цата също има и генериране на прекъсване, аларми и други екстри.


Пет Авг 04, 2006 12:28 pm
Профил ICQ
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 21 мнения ]  Отиди на страница 1, 2  Следваща

Кой е на линия

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


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

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