Stránka 1 z 1

Deska s STM32F103C8T6 - komunikace SPI a I2C

Napsal: 25 črc 2017, 10:20
od petan
Má někdo zkušenosti s deskou s procesorem STM32, známou taky jako "STM32F103C8T6 Minimum System Board"?
Jde mi o komunikaci SPI a I2C.

Komunikace s jedním zařízením na každé sběrnici mi funguje. Ale potřeboval bych rozchodit dvě zařízení na SPI a dvě na I2C.

Re: Deska s STM32F103C8T6 - komunikace SPI a I2C

Napsal: 25 črc 2017, 14:57
od zbysek
A je problém u konkrétní desky, nebo jen nevíte, jak se s těmito sběrnicemi pracuje?

U I2C máte vše připojené na stejné vodiče. Jen dochází k adresaci.
U SPI máte sdílené vodiče + pro každé zařízení vlastní "select" vodič SS.

Re: Deska s STM32F103C8T6 - komunikace SPI a I2C

Napsal: 25 črc 2017, 15:49
od petan
zbysek píše:
25 črc 2017, 14:57
U I2C máte vše připojené na stejné vodiče. Jen dochází k adresaci.
U SPI máte sdílené vodiče + pro každé zařízení vlastní "select" vodič SS.
Jo, to vím, jak sběrnice pracují. Jde o to, jak to přepínat. I2C jsem zatím tolik neřešil - to možná rozchodím.

Ale potřebuju přepínat komunikaci s displejem a detektorem. Oboje mám propojeny pomocí MOSI, MISO, SCK a ke každému mám sólo CS signál. Na displej používám knihovnu Adafruit. Jak vůbec přepínat komunikaci mezi zařízeními. Možná budu muset měnit i rychlost sběrnice a mód. Musím před komunikací změnit nastavení, nebo si vytvořit dvě instance SPI? Byl bych vděčný za nějaký easy příklad - jenom takovej nástřel.

Zatím jsem to jen oťukával. Navíc na desce s STM32 procesorem a ten je trochu jinačí proti Atmelům.

Re: Deska s STM32F103C8T6 - komunikace SPI a I2C

Napsal: 25 črc 2017, 20:02
od zbysek
Pokud ta zařízení mají vlastní knihovnu, tak by mělo stačit vytvořit pro každé zařízení vlastní instanci s nastaveným SS. Záleží ale také na tom, jak jsou implementované knihovny - jestli si například před komunikací ověří, jestli komunikují se správným zařízením apod. Ale měly by.

Pokud budete psát vlastní řešení, tak je to vlastně o přepínání dvou pinů a komunikace na SPI. Princip je naznačený třeba zde: http://www.learningaboutelectronics.com ... roller.php.

Docela pěkně je SPI popsané tady: https://www.arduino.cc/en/Reference/SPI. Řeší se tam i změna módů apod.

S vaší deskou ale zkušenosti nemám, tak asi víc neporadím.

Re: Deska s STM32F103C8T6 - komunikace SPI a I2C

Napsal: 25 črc 2017, 23:22
od petan
Už se mi podařilo rozchodit na sběrnici I2C RTC a Vlhkoměr SHT21 bez knihoven. Barometr mám nějakej pojebanej už od Číňana. Při připojení SDA na sběrnici mi ji to shodí - přestanou komunikovat i hodiny. Zejtra na to mrknu na osciloskopu.

SPI bych nejradši taky rozchodil bez knihoven, ale displej bych rozhodně nedal. Takže používám Adafruit_GFX_AS a Adafruit_ILI9341_STM. K tomu chci připojit ... tramtadadááá ... detektor blesků AS3935. Ten musí komunikovat maximální rychlostí 2 MHz, v MODE1 a kdoví co ještě. Zatím jsem to ještě úplně laborovat nezkoušel. Ani vlastně nevím jak komunikuje displej, když to celý šteluju přes knihovny...

STM32 má nevýhodu, že si nenechá úplně všechno líbit - s těma knihovnama je to kříž. Navíc jsem s tím včera začal - nikdy předtím jsem STM32 neměl v ruce. A s Arduinem jsem postavil jen ten sodobar. Ale zas na druhou stranu, není to taková lemra líná jak Arduino (poměr cena/výkon).


V příloze je takovej nástřel.. Nahoře je čas a datum, pod tím teplota a vlhkost (průměr z poslední minuty), podtím jednotlivé náměry z kterých se počítá průměr (dva řádky), ve třetím řádku jsou jednotlivé průměry z minut, a ve spodním řádku je na druhým a třetím místě průměr z posledních pěti minut (teplota a vlhkost). To se vykresluje do grafu - graf jakoby couvá - teď jsem to zapnul, tak sjou skoro všude nuly.Ráno udělám aktualizaci. Snad mi to tu v noci nebouchne :D

Re: Deska s STM32F103C8T6 - komunikace SPI a I2C

Napsal: 26 črc 2017, 18:29
od petan
Jedem grafy 8-) Jde vidět, jak člověk zadejchá místnost přes noc - stoupá vlhkost.
Asi ještě přidám nějaký čidlo kvality vzduchu...ale jsou drahý potvory. Uvidím, jak se mi podaří rozchodit tu komunikaci přes SPI...