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

Atmega и SPI
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=2720
Страница 1 от 2

Автор:  Filo [ Чет Авг 03, 2006 5:19 pm ]
Заглавие:  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 пъти

Автор:  miro_atc [ Чет Авг 03, 2006 6:10 pm ]
Заглавие: 

Сигурен ли си че това което четеш не е manufacture ID-то?

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

Автор:  Filo [ Чет Авг 03, 2006 6:42 pm ]
Заглавие: 

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

Автор:  Реконструктор [ Чет Авг 03, 2006 9:31 pm ]
Заглавие: 

Имай предвид, че изходите на SPI тряба да се конфигурират по съответен начин като входове/изходи, в даташита го пише.

Автор:  Cekins [ Пет Авг 04, 2006 12:02 am ]
Заглавие: 

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

Автор:  paregov [ Пет Авг 04, 2006 9:47 am ]
Заглавие:  Re: Atmega и SPI

Filo написа:

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


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

Автор:  Filo [ Пет Авг 04, 2006 10:14 am ]
Заглавие: 

Абе няма ли стандарт за този протокол.

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

Автор:  FiTTiLA [ Пет Авг 04, 2006 10:41 am ]
Заглавие: 

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

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

Автор:  freestyler [ Пет Авг 04, 2006 10:57 am ]
Заглавие: 

Съжалявам за тъпия въпрос,
обаче забелязал ли си че данните от TC77 не са 8 bits ами 12 bits.
Ако не си пробвал с 12 bits, пробвай, може да стане.

Данчо

Автор:  paregov [ Пет Авг 04, 2006 11:09 am ]
Заглавие: 

Filo написа:
Абе няма ли стандарт за този протокол.

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




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

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

Автор:  Filo [ Пет Авг 04, 2006 11:13 am ]
Заглавие: 

Осцилоскопа съм го сложил. Ама така както е направен протокола, се притеснявам че нищо не мога да видя на него. той след като си получи двете думи по 8 бита и вдига CS. При честота 62,5 KHz се съмнявам да видя нещо.

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

Автор:  Filo [ Пет Авг 04, 2006 11:15 am ]
Заглавие: 

[quote="paregov"][/quote]

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

Автор:  paregov [ Пет Авг 04, 2006 11:21 am ]
Заглавие: 

Сигурен ли си, че първо не трябва да кажеш на датчика какво искаш да прочетеш от него?
(Нямам сега време да я чета. ) :D

Автор:  Filo [ Пет Авг 04, 2006 11:26 am ]
Заглавие: 

paregov написа:
Сигурен ли си, че първо не трябва да кажеш на датчика какво искаш да прочетеш от него?
(Нямам сега време да я чета. ) :D


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

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

Автор:  Cekins [ Пет Авг 04, 2006 12:28 pm ]
Заглавие: 

Както по горе писах - най-лесно напиши си модул за четене. Един съвет обаче - вземи TCN75 -Той е I2C и на два кабела можеш да вържеш значително повече устройства а и всички I2C устройства спазват протокола. 75-цата също има и генериране на прекъсване, аларми и други екстри.

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