Schlagwort-Archive: 8051

Gewöhnliche 8051-Programme laufen nicht auf dem CC2541

Mit dem freien 8051-IDE MCU8051IDE haben wir versucht, ein Hallo Welt-Programm auf den CC2541 zu flashen. Das IDE hat uns aus unserem Hallo Welt-Assembler-Code ein 8051-Binärprogramm erzeugt, das wir mit cc-tool auf den CC2541 flashen konnten. Leider hat das Programm dort nicht das getan, was es sollte: eine LED blinken zu lassen.

Grund dafür ist aller Wahrscheinlichkeit nach, dass im CC2541 kein Standard-8051 verbaut ist. Wie im Datenblatt sowie im User Guide nachzulesen ist, gibt es einige Änderungen:

  • teilweise geänderte Adressen der Register im RAM
  • zusätzliche Register für zusätzliche Hardware-Funktionalitäten
  • evtl. Notwendigkeit für Setup-Instruktionen (z.B. Richtung) vor der Ansteuerung von I/O-Pins
  • eine Instruktion pro Takt, anstatt 12 Takte pro Instruktion

Um ein Hallo Welt-Programm auf dem CC2541 zum Laufen zu bekommen, wird es daher notwendig sein, direkt mit der Entwicklung in C mit dem sdcc C-Compiler zu beginnen. sdcc verfügt über eine cc2530.h, die aus einem User Guide abgeleitet wurde, das für CC253x und CC254x gleichermaßen gilt. Sie sollte bei Einbindung die Nutzung aller CC2541-Register sowie der angeschlossenen Funktionalitäten ermöglichen.

Ein Programm in den CC2541 flashen How To

Der Bluetooth 4.0-fähige 8051-Chip CC2541 von Texas Instruments, der auf dem Tinysine HM-10 Modul zu finden ist, besitzt eine Schnittstelle zum hardwarenahen Debuggen, den Debug Port, der aus den zwei Leitungen Debug Clock (DC) und Debug Data (DD) besteht. Die Besonderheit bei diesem Port im Gegensatz zu RS-232 oder SPI besteht darin, dass die Kommunikation in beide Richtungen – Daten vom PC zum Chip und umgekehrt – über denselben Pin erfolgt (und daher auch nicht gleichzeitig stattfinden kann). Takt- und Daten-Pins sind auf dem HM-10 herausgeführt, allerdings nicht auf die 2,54mm-Pins der TinySine Ausbrech-Platine. Sie lassen sich aber leicht nachrüsten (Foto wird nachgereicht). Wenn DC, DD, Reset und GND herausgeführt sind, kann man diese Pins an den CC Debugger von Texas Instruments anschließen. Der SmartRF Programmer hat im Test leider nicht funktioniert, zumindest nicht unter Windows, obwohl er es eigentlich sollte. Der CC Debugger ist sogar offiziell Open Hardware, der Schaltplan ist auf der Seite von Texas Instruments zu finden. Seine Funktionsweise ist im zugehörigen User Guide dokumentiert. Die zum Programmieren der Chips erforderliche Software lässt sich ebenfalls dort herunterladen (wenn man einen TI-Account hat). Nachbauten des SmartRF Programmer lassen sich günstig auf eBay erwerben. Zur Programmierung unter Linux steht cc-tool zur Verfügung. Links: