<?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=16301&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-09-26T12:06:56+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=46&amp;t=16301&amp;mode</id>
<entry>
<author><name><![CDATA[Jaglarz]]></name></author>
<updated>2016-09-26T12:06:56+01:00</updated>
<published>2016-09-26T12:06:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16301&amp;p=169640#p169640</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16301&amp;p=169640#p169640"/>
<title type="html"><![CDATA[Re: STM32f4discovery problem z fatfs]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16301&amp;p=169640#p169640"><![CDATA[
<!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic7402.html" >topic7402.html</a><!-- l --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=471">Jaglarz</a> — 26 wrz 2016, o 12:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[dawidos145]]></name></author>
<updated>2016-09-25T21:46:29+01:00</updated>
<published>2016-09-25T21:46:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16301&amp;p=169616#p169616</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16301&amp;p=169616#p169616"/>
<title type="html"><![CDATA[STM32f4discovery problem z fatfs]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16301&amp;p=169616#p169616"><![CDATA[
Witajcie, próbóję podłączyć do stm32 kartę microsd, przez slot zamontowany na wykonanej płytce drukowanej, PIN CS mam na PE15, SCK -PB13 , MISO - PB14, MOSI - PB15 <br /><br />zastanawiam się czy CS nie powinien być na PB12, tak pokazuje cubeMx w podpowiedziach kiedy zaznaczam NSS. Niestety płytka jest już gotowa, czy ktoś ma pomysł jak to &quot;przepinować&quot;, czy można zrobić zworkę z pinu PE15 na pin PB12 ?<br /><br />korzystam z gotowego programu na fatfs przez spi, lecz niestety fresult ciągle ukazuje wartość &quot;FR_NOT_READY&quot; a na końcu FR_INVALID_OBJECT, nie wiem gdzie szukać problemu. <br /><br />zmiana na inną kartę pamięci 2gb nie pomaga.<br /><br />mam pytanie wszystkie linie podłączone są bezpośrednio do portów, jedynie SD CS podniesione jest przez rezystor 10kΩ do +3V. <br />czy linię MISO,MOSI,SCK też trzeba podnieść ? i czy można to zrobić programowo ?<br /><br />konfiguracja SPI<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">void SPI_SD_Init( void ) <br />{ <br />        RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE); //taktowanie dla SPI2 <br />    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE); //taktowanie dla B <br /><br />    // GPIOB - PE15( CS ) <br />        GPIOE-&gt;MODER |= GPIO_MODER_MODER15_0; <br />        GPIOE-&gt;OSPEEDR |= GPIO_OSPEEDER_OSPEEDR15; <br /><br />    //sck <br />        GPIO_InitTypeDef GPIO_InitStruct; <br /><br />        GPIO_PinAFConfig(GPIOB, GPIO_PinSource13, GPIO_AF_SPI2); <br />        GPIO_InitStruct.GPIO_Pin = GPIO_Pin_13; <br />        GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF; <br />        GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; <br />        GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP; <br />        GPIO_Init(GPIOB, &amp;GPIO_InitStruct); <br /><br />    //MISO <br />        GPIO_PinAFConfig(GPIOB, GPIO_PinSource14, GPIO_AF_SPI2); <br />        GPIO_InitStruct.GPIO_Pin = GPIO_Pin_14; <br />        GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF; <br />        GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; <br />        GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP; <br />        GPIO_Init(GPIOB, &amp;GPIO_InitStruct); <br />    //MOSI <br />        GPIO_PinAFConfig(GPIOB, GPIO_PinSource15, GPIO_AF_SPI2); <br />        GPIO_InitStruct.GPIO_Pin = GPIO_Pin_15; <br />        GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF; <br />        GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; <br />        GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP; <br />        GPIO_Init(GPIOB, &amp;GPIO_InitStruct); <br /><br />    //SPI <br />        SPI_InitTypeDef SPI_InitStruct; <br /><br />        SPI_InitStruct.SPI_Direction = SPI_Direction_2Lines_FullDuplex; <br />        SPI_InitStruct.SPI_Mode = SPI_Mode_Master; <br />        SPI_InitStruct.SPI_DataSize = SPI_DataSize_8b; <br />        SPI_InitStruct.SPI_CPOL = SPI_CPOL_High; <br />        SPI_InitStruct.SPI_CPHA = SPI_CPHA_1Edge; <br />        SPI_InitStruct.SPI_NSS = SPI_NSS_Soft; <br />        SPI_InitStruct.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256; <br />        SPI_InitStruct.SPI_FirstBit = SPI_FirstBit_MSB; <br />        SPI_InitStruct.SPI_CRCPolynomial = 7; <br />        SPI_Init(SPI2, &amp;SPI_InitStruct); <br /><br />        SPI_CalculateCRC(SPI2, DISABLE); <br />        SPI_Cmd(SPI2, ENABLE); <br /><br />        RCC-&gt;APB1RSTR |= RCC_APB1RSTR_SPI2RST; <br />        delay_ms( 10 ); <br />        RCC-&gt;APB1RSTR &amp;= ~RCC_APB1RSTR_SPI2RST; <br /><br /><br />    DESELECT(); <br />} <br /><br />static <br />void xmit_spi (BYTE Data)  // Wyslanie bajtu do SD <br />{ <br />    u8 D = 0; <br /><br />    while( !( SPI2-&gt;SR &amp; SPI_SR_TXE )); <br />    SPI2-&gt;DR = Data; <br />    while( !( SPI2-&gt;SR &amp; SPI_SR_RXNE )); <br />    D = SPI2-&gt;DR; <br />} <br /><br />static <br />BYTE rcvr_spi (void)         // Odebranie bajtu z SD <br />{ <br />  u8 Data = 0; <br />u8 i; <br />    while( !( SPI2-&gt;SR &amp; SPI_SR_TXE )); <br />    SPI2-&gt;DR = 0xFF; <br />    while( !( SPI2-&gt;SR &amp; SPI_SR_RXNE )); <br />    for(i=0;i&lt;10;i++); <br />    Data = SPI2-&gt;DR; <br /><br />  return Data; <br />}</div><br /><br />Main.<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">/* <br /> * main.c <br /> *      Author: Grzegorz H. <br /> */ <br />#include &quot;stm32f4xx.h&quot; <br />#include &quot;system_stm32f4xx.h&quot; <br />#include &quot;delay.h&quot; <br />#include &quot;fpu.h&quot; <br />#include &quot;spi_sd.h&quot; <br />#include &quot;ff.h&quot; <br /><br />#define SysTick_Frequency 21000000 <br /><br />FATFS fatfs; <br />FIL plik; <br />FRESULT fresult; <br />UINT zapisanych_bajtow = 0; <br />UINT zapianie_bajtow = 0; <br />char * buffor = &quot;123456789abcdef\r\n&quot;; <br />uint16_t i; <br /><br />int main( void ) <br />{ <br />    SystemInit(); <br /><br /><br /><br />    fpu_enable(); <br />    delay_init( 168 ); <br />    SPI_SD_Init(); <br /><br />    SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); <br />     SysTick_Config(SysTick_Frequency / 100); <br /><br />    fresult = f_mount( 0, &amp;fatfs ); <br />    fresult = f_open( &amp;plik, &quot;demo.wav&quot;, FA_OPEN_ALWAYS | FA_WRITE ); <br />    if( fresult == FR_OK ) <br />    { <br />        for( i = 0; i &lt; 1000; i++ ) <br />            fresult = f_write( &amp;plik, ( const void * ) buffor, 17, &amp;zapisanych_bajtow ); <br />    } <br /><br />    fresult = f_close( &amp;plik ); <br /><br />    for(;;) <br />    { <br /><br />    } <br /><br />    return 0; <br />} <br /><br />void SysTick_Handler() <br />{ <br />    disk_timerproc(); <br />}<br /></div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14975">dawidos145</a> — 25 wrz 2016, o 21:46</p><hr />
]]></content>
</entry>
</feed>