<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=46&amp;t=17013&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-12-08T21:29:32+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=46&amp;t=17013&amp;mode</id>
<entry>
<author><name><![CDATA[cebulak]]></name></author>
<updated>2016-12-08T21:29:32+01:00</updated>
<published>2016-12-08T21:29:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17013&amp;p=176919#p176919</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17013&amp;p=176919#p176919"/>
<title type="html"><![CDATA[STM32 F030 SPI dziwny 'szum' błąd]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17013&amp;p=176919#p176919"><![CDATA[
Mam jakiś dziwny jak dla mnie problem ze sprzętowym SPI. Celem programu jest wysłanie sekwencji od 1-7 bajtów po 8 bitów. Niby wszystko dobrze się wysyła jednak jest problem z pojawiającymi się szumami na GPIO. Te szumy powodują przerwanie odbierania danych STLED316S musi mieć stan niski na STB gdy odbiera dane a jest on przerywany czyli transmisja się urywa. Zrobiłem to samo SPI programowym działa a ze sprzętowym jest problem. Korzystam z analizatora logicznego i otrzymuje następujący rezultat<br /><a href="https://obrazkiforum.atnel.pl/8325/2d90303cf6bb47679dc6774ae744f188.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/8325/2d90303cf6bb47679dc6774ae744f188.png" alt="Obrazek" /></a><br />Ewidentnie na kanale 5 widać dziwne piki. Uprzedzając pytanie wiem że analizator SPI, źle pokazuje wysłane bajty ale tylko z powodu szumu przy restarcie STM32 a w tym przypadku restart też jest zarejestrowany. Co do kodu wygląda to w następujący sposób w kolejności inicjalizacja i funkcja:<br />[syntax=c]static void MX_SPI1_Init(void)<br />{<br /><br />hspi1.Instance = SPI1;<br />hspi1.Init.Mode = SPI_MODE_MASTER;<br />hspi1.Init.Direction = SPI_DIRECTION_2LINES;<br />hspi1.Init.DataSize = SPI_DATASIZE_8BIT;<br />hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;<br />hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;<br />hspi1.Init.NSS = SPI_NSS_SOFT;<br />hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8;<br />hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;<br />hspi1.Init.TIMode = SPI_TIMODE_DISABLE;<br />hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;<br />hspi1.Init.CRCPolynomial = 7;<br />hspi1.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;<br />hspi1.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;<br />if (HAL_SPI_Init(&amp;hspi1) != HAL_OK)<br />{<br />Error_Handler();<br />}<br /><br />}[/syntax]<br />[syntax=c]void sendST316LEDS(){<br />HAL_SPI_Init(&amp;hspi1);<br />uint8_t pData&#91;6&#93;={0xB1,0x00, 0x20, 0x1C, 0xB6, 0x1C};<br />uint16_t size=6;<br />uint32_t timeout=10;<br />HAL_GPIO_WritePin(GPIOA, STLED316S_STB_Pin, GPIO_PIN_RESET);<br />HAL_Delay(1);<br /><br />HAL_SPI_Transmit(&amp;hspi1, (uint8_t *)pData, size , timeout);<br /><br />HAL_Delay(1);<br />HAL_GPIO_WritePin(GPIOA, STLED316S_STB_Pin, GPIO_PIN_SET);<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8325">cebulak</a> — 8 gru 2016, o 21:29</p><hr />
]]></content>
</entry>
</feed>