SPI

Michal Grunt michal.grunt na vynet.cz
Sobota Srpen 24 13:13:20 CEST 2013


Tak po odpojení modulu jde MISO do H (když jsem měl modul zapojený zkoušel jsem MISO i ručně donutit he stavu H, ale nešlo nic, pořád zůstával ve stavu L). Zkusím překontrolovat HW modulu.

________________________________________
Odesílate: hw-list-bounces na list.hw.cz [hw-list-bounces na list.hw.cz] za uživatele Pavel Kutina [hw na prelude.cz]
Odesláno: 24. srpna 2013 01:38
To: HW-news
Předmět: Re: SPI

A bez karty nebo bez celeho modulu je take stale v nule (jen pro vylouceni
HW problemu)? O STM nevim nic, ale zrovna vcera mne podobne vyskolil
Stellaris od TI na daleko trivialnejsi zalezitosti - ja se snazil cist dve
tlacitka, jedno chodilo, druhe ne, navic to, ktere chodilo, melo navic
nejakou sdilenou funkci pinu, takze tam bylo o dost vic prostoru pro chybu,
to druhe bylo ciste.

Inicializoval jsem je stejne, jen to na tom cistem GPIO nejelo. Nakonec jsem
zjistil, ze jsem je inicializoval blbe oba dva GPIO, jen to na tom sdilenem
pinu melo pull-up hardwarovy jeste "pres neco" externe na desce, takze i
kdyz jsem zkonil inicializaci GPIO, stejne tam byl a tlacitko do nuly vesele
spinalo... To potesilo - asi dve hodiny procitani dokumentace, nastavovani
registru - a nenapadlo me podivat se do schematu i na ten funkci pin...

Takze pokud je to SW spravne (asi ano, tenhle kod vypada podezrele podobne:
https://my.st.com/public/STe2ecommunities/mcu/Lists/STM32Discovery/Attachments/4993/main.c)
tak bych se zkusil podivat po zeleze...

Pavel Kutina


----- Original Message -----
From: "Michal Grunt" <michal.grunt na vynet.cz>
To: <hw-list na list.hw.cz>
Sent: Saturday, August 24, 2013 1:02 AM
Subject: SPI


Zdravím, už pár hodin bojuju s SPI na STM32 (F0) a nějak nemůžu přijít na to
kde je problém. Na logickem analyzátoru vidím průběhy MOSI, SCK a CS, ale
MISO si ani neškrtne, je pořád v L (jedná se o připojení SD karty s tímto
modulem http://www.ebay.com/itm/251289364968 ). SD karty jsem zkoušel dvě
(2GB a 256MB). Mám vůbec dobře nakonfigurované GPIO?

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);

// MISO -> PA6
GPIO_StructInit (&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_PinAFConfig(GPIOA, GPIO_PinSource6, GPIO_AF_0); // MISO

Pro jistotu ještě uvedu konfiguraci SPI

SPI_Cmd(SPI1, DISABLE);
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_128; //
42000kHz/128=328kHz < 400kHz
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
SPI_InitStructure.SPI_CRCPolynomial = 7;
SPI_Init(SPI1, &SPI_InitStructure);
SPI_RxFIFOThresholdConfig(SPI1, SPI_RxFIFOThreshold_QF);
SPI_CalculateCRC(SPI1, DISABLE);
SPI_Cmd(SPI1, ENABLE);

Děkuji za odpověď, MG
_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list

_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list