Hardware vom LED-Controller Rev. 4 ist fertig!
Die Hardware von dem neuen RGB LED-Strip Controller in der Revision 4 ist gestern fertig geworden. Nun geht es an den deutlich komplexeren Teil: Die Software. Gestern habe ich mich den ganzen Tag mit der Programmierung des Mikrocontrollers beschäftigt.
Was ich nicht wusste ist, dass die Cortex-M0 Controller von ST (und wahrscheinlich auch von jedem anderen Hersteller) nur eine Art der Programmierung bzw. des Debuggings unterstützen: SWD. SWD steht für Serial Wire Debug und ist eine zwei-draht Schnittstelle, die ausschließlich von ARM Kernen unterstützt wird, anders wie bei JTAG (Join Test Action Group), einer 5-Draht Schnittstelle die von diversen Controllern üblicherweise benutzt wird (u.A. die ATMega16/32 usw...). Glücklicherweise kann mein Interface (ein Entwicklungsboard von Luminary Micro, jetzt TI, das einen Debug-Ausgang hat) mit SWD umgehen. Auch OpenOCD, die OpenSource Software, die ich zum Programmieren benutze, unterstützt SWD. Aber darauf musste ich erstmal kommen.
Denn beim Ersten Test und Anschluss des Debug-Interfaces kam erst einmal eine Fehlermeldung. Nach langer Recherche habe ich herausgefunden, dass der STM32F072 kein JTAG unterstüzt (wichtige Info für alle Nachbauer!!), sondern nur SWD.
Nachdem ich es mit SWD geschafft habe, eine einfache Blinkende LED auf den Controller zu programmieren, hat dies nicht funktioniert. Nach erneuter langer Suche, diversen Änderungen am Code usw. lag es letztendlich an der Platine. Eine Durchkontaktierung war nicht sauber, daher gab es keinen Kontakt und die LED hat kein Signal vom Controller erhalten -.-
Nun funktioniert alles und ich kann mit der richtigen Programmierung beginnen. Als Erstes versuche ich mich an der USB-Schnittstelle, damit ich über CDC (Communications Device Class) über einen virtuellen seriellen Port den Controller via Terminal debuggen kann.
Danach implementiere ich wieder die PWM für die LED Strips und kümmere mich um das "Bit-Banging" für die WS2812B Pixel-LEDs.
Mehr und schnellere Updates zu dem Controller und meiner LED-Binäruhr findet ihr übrigens auf Twitter 18.09.2015 17:43 << Zurück
Was ich nicht wusste ist, dass die Cortex-M0 Controller von ST (und wahrscheinlich auch von jedem anderen Hersteller) nur eine Art der Programmierung bzw. des Debuggings unterstützen: SWD. SWD steht für Serial Wire Debug und ist eine zwei-draht Schnittstelle, die ausschließlich von ARM Kernen unterstützt wird, anders wie bei JTAG (Join Test Action Group), einer 5-Draht Schnittstelle die von diversen Controllern üblicherweise benutzt wird (u.A. die ATMega16/32 usw...). Glücklicherweise kann mein Interface (ein Entwicklungsboard von Luminary Micro, jetzt TI, das einen Debug-Ausgang hat) mit SWD umgehen. Auch OpenOCD, die OpenSource Software, die ich zum Programmieren benutze, unterstützt SWD. Aber darauf musste ich erstmal kommen.
Denn beim Ersten Test und Anschluss des Debug-Interfaces kam erst einmal eine Fehlermeldung. Nach langer Recherche habe ich herausgefunden, dass der STM32F072 kein JTAG unterstüzt (wichtige Info für alle Nachbauer!!), sondern nur SWD.
Nachdem ich es mit SWD geschafft habe, eine einfache Blinkende LED auf den Controller zu programmieren, hat dies nicht funktioniert. Nach erneuter langer Suche, diversen Änderungen am Code usw. lag es letztendlich an der Platine. Eine Durchkontaktierung war nicht sauber, daher gab es keinen Kontakt und die LED hat kein Signal vom Controller erhalten -.-
Nun funktioniert alles und ich kann mit der richtigen Programmierung beginnen. Als Erstes versuche ich mich an der USB-Schnittstelle, damit ich über CDC (Communications Device Class) über einen virtuellen seriellen Port den Controller via Terminal debuggen kann.
Danach implementiere ich wieder die PWM für die LED Strips und kümmere mich um das "Bit-Banging" für die WS2812B Pixel-LEDs.
Mehr und schnellere Updates zu dem Controller und meiner LED-Binäruhr findet ihr übrigens auf Twitter 18.09.2015 17:43 << Zurück