Bisher habe ich meist mit MSP430 gearbeitet, aber die Preise für den MSP430F5310 sind inzwischen derart hoch, dass ich mich nach Alternativen umgeschaut habe und nun beim STM32L051 gelandet bin (Cortex M0+, Low-Power, 64 kB Flash). Bevor ich nun die erste LP zum Fertiger schicke, ein paar Fragen. Wenn einige ein bisschen seltsam wirken, liegt das ggf. daran, dass ich von einer anderen µC-Familie komme. Und ja, RTFM, aber einige Punkte habe ich schlicht noch nicht gefunden. - Sehe ich es richtig, dass der STM32L0 nur eine Clock hat, von der alles andere (auch die Peripherie-Clocks) abgeleitet werden? - Der STM32L051 in QFN32 hat den LPUART nicht nach außen geführt. Aus der Beschreibung von LPUART und USART bin ich nicht recht schlau geworden: kann ich bei Beginn einer UART-Übertragung aus dem Low-Power-Sleep aufwachen, oder geht das nur aus dem "normalen" Sleep? - Kann ich mit einer steigenden oder fallenden Flanke an jedem beliebigen GPIO einen Interrupt auslösen, oder ist das auf einzelne GPIOs begrenzt? - Kann der Interrupt nur auf steigende oder fallende Flanke auslösen oder auf beide? - Mit dem MSP430 kann ich aus einem 32kHz-Quarz über eine PLL eine der drei Clocks hochskalieren und diese dann über einen Pin (ohne Timer) nach außen geben. Geht etwas Ähnliches mit dem STM32 auch? - Spricht etwas dagegen, statt StdPeriphLib oder gar Cube zu verwenden, einfach auf Basis des Reference Manuals direkt die Register zu manipulieren? So kenne ich es vom MSP430, und was ich über die ST-Libraries gelesen habe, war alles andere als freundlich. Max
So ziemlich alle deine Fragen werden beantwortet wenn Du dir STM32CubeMX etwas genauer ansiehst. Alles schön graphisch dargestellt für den jeweiligen µC. Auch wenn Du HAL nicht nutzen möchtest ist das die z.Z. beste Vorlage bzw. Lerngrundlage. Wenn Du in die Funktionen des erzeugten Codes gehst kommst Du bis auf die Registerebne. Dazu noch ein Nucleo Board, dann sollte der Umstieg recht komfortabel sein.
Max G. schrieb: > - Spricht etwas dagegen, statt StdPeriphLib oder gar Cube zu verwenden, > einfach auf Basis des Reference Manuals direkt die Register zu > manipulieren? So kenne ich es vom MSP430, und was ich über die > ST-Libraries gelesen habe, war alles andere als freundlich. Nein, spricht nichts dagegen. Mach ich auch.
Max G. schrieb: > - Sehe ich es richtig, dass der STM32L0 nur eine Clock hat, von der > alles andere (auch die Peripherie-Clocks) abgeleitet werden? Fast, aber der clock tree von den STM32Lx ist leider ziemlich komplex. Im Grunde gibt es vier unterschiedliche Clock-Quellen, aus denen dann die System Clock erzeugt wird. Die System Clock ist zwar die wichtigste Clock, aber die low power peripherals können anders gespeist werden. > - Der STM32L051 in QFN32 hat den LPUART nicht nach außen geführt. Aus > der Beschreibung von LPUART und USART bin ich nicht recht schlau > geworden: kann ich bei Beginn einer UART-Übertragung aus dem > Low-Power-Sleep aufwachen, oder geht das nur aus dem "normalen" Sleep? Ja, denn low power sleep ist wie normaler sleep, nur ist der Regulator im Stromsparmodus und braucht länger um hochzufahren. > - Kann ich mit einer steigenden oder fallenden Flanke an jedem > beliebigen GPIO einen Interrupt auslösen, oder ist das auf einzelne > GPIOs begrenzt? Gehen alle, nur wird ein IRQ-Handler zwischen den gleichen Pins auf unterschiedliche Ports geteilt, da muss man im IRQ-Handler einfach abfragen welcher Pin denn den IRQ ausgelöst hat. > - Kann der Interrupt nur auf steigende oder fallende Flanke auslösen > oder auf beide? Beides geht. > - Mit dem MSP430 kann ich aus einem 32kHz-Quarz über eine PLL eine der > drei Clocks hochskalieren und diese dann über einen Pin (ohne Timer) > nach außen geben. Geht etwas Ähnliches mit dem STM32 auch? Nicht direkt... Es gibt den MSI, der kann solche niedrigen Frequenzen (bis ~4MHz), ist aber ungenau (ist per SW trimmbar).
Vielen Dank an alle, dann schaue ich mal, ob ich das so zum Laufen bringe. Max
Max G. schrieb: > Spricht etwas dagegen, statt StdPeriphLib oder gar Cube zu verwenden Für den STM32L0xx gibt es (leider) kein StdPeriphLib. Wer (wie ich) sich mit dem Cube nicht anfreuden kann, ist gezwungen, direkt auf die Registerebene herabzusteigen. Um die Einstiegsschwelle nicht ganz so hoch anzusetzen, hat ST eine Sammlung von Snippets herausgegeben. Z.Zt. vers. 1.2.0 http://www.st.com/web/en/catalog/tools/PF260788# Noch eine persönliche Meinung zu STM32L0xx: würde ich jetzt nicht als Einstiegsmodell empfehlen.
Mehmet K. schrieb: > Um die Einstiegsschwelle nicht ganz so hoch anzusetzen, hat ST eine > Sammlung von Snippets herausgegeben. Z.Zt. vers. 1.2.0 > http://www.st.com/web/en/catalog/tools/PF260788# Cool, danke für den Tipp! Max
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.