<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body style='font-size: 10pt; font-family: Verdana,Geneva,sans-serif'>
<p>My mistake. Everything is fine :) The SDI/SDO on one pin is not necessary, even if it would be nice to get some feedback. I still need to figure out though why the display is not refreshing, even when the data input looks fine in the  logicAnalayser. The busy pin has also an expected behavior.</p>
<p>Am 2019-03-06 22:56, schrieb Peter Kietzmann:</p>
<blockquote type="cite" style="padding: 0 0.4em; border-left: #1010ff 2px solid; margin: 0"><!-- html ignored --><!-- head ignored --><!-- meta ignored -->
<div class="pre" style="margin: 0; padding: 0; font-family: monospace">Hi Philipp,<br /> <br /> <br /> Am 28.02.19 um 09:49 schrieb Philipp Blum:
<blockquote type="cite" style="padding: 0 0.4em; border-left: #1010ff 2px solid; margin: 0">Hey,<br /> <br /> I have a weird behavior in my application. Maybe somebody has an idea<br /> what is going on. I am currently writing a driver for an epaper display.<br /> The display only has slave in. There is another mode where the SDI also<br /> acts as SDO, but the reference design does not include that.</blockquote>
<br /> Is the other mode relevant for your driver? I don't think that you can<br /> easily handle a changing SDI/SDO line in RIOT. Actually, we don't even<br /> provide slave implementations.<br /> <br />
<blockquote type="cite" style="padding: 0 0.4em; border-left: #1010ff 2px solid; margin: 0"><br /> So, I checked my wire before. I just pulsed the CS PIN. I can see it in<br /> my logic analyser. There is also a short pulse of down-up and up-down<br /> for SCK and SDI. So, I guess that is the spi_init.<br /> <br /> So, the initialization looks like this:<br /> <br /> |spi_init_pins(config.SPI_BUS); xtimer_usleep(SLEEP_TIME); int cs_init =<br /> spi_init_cs(config.SPI_BUS, (spi_cs_t) config.CS_PIN); if(cs_init !=<br /> SPI_OK){ puts("Something went wrong while initializing the SPI bus with<br /> the CS PIN"); return -1; } |</blockquote>
<br /> AFAIK spi_init_pins() is not a function that needs to called manually.<br /> spi_init() initializes all SPI_NUMOF devices during system startup and<br /> it utilizes the spi_init_pins() function.<br /> <br />
<blockquote type="cite" style="padding: 0 0.4em; border-left: #1010ff 2px solid; margin: 0"><br /> The Microcontroller crashs after the initialization. |ISR stack<br /> overflowed by at least 16 bytes. | I tried it with<br /> |spi_init_pins(config.SPI_BUS);| alone. That works fine. I am using the<br /> hardware MOSI SPI pin. I tried both, the GPIO_PIN and SPI_HWCS.<br /> <br /> |gpio_t cs_pin = SPI_HWCS(1); gpio_t cs_pin = GPIO_PIN(1, 12); |</blockquote>
<br /> Not 100% sure about the HWCS but if I see it correctly, there is only<br /> one HWCS on the bluepill so it would be SPI_HWCS(0), right?<br /> <br />
<blockquote type="cite" style="padding: 0 0.4em; border-left: #1010ff 2px solid; margin: 0"><br /> Has somebody an idea what it potentielly be? I am developing on a bluepill.</blockquote>
<br /> Does test/periph_spi work as expected on your side? I don't have<br /> concrete suggestions right now. Can you point to a branch including test<br /> application to reproduce the issue?<br /> <br /> Cheers<br /> Peter<br /> <br />
<blockquote type="cite" style="padding: 0 0.4em; border-left: #1010ff 2px solid; margin: 0"><br /> <br /> _______________________________________________<br /> users mailing list<br /> <a href="mailto:users@riot-os.org">users@riot-os.org</a><br /> <a href="https://lists.riot-os.org/mailman/listinfo/users">https://lists.riot-os.org/mailman/listinfo/users</a><br /> </blockquote>
</div>
</blockquote>
<p> </p>
<div> </div>
</body></html>