Forum: Mikrocontroller und Digitale Elektronik Wie BLE SoC flashen?


von BLE1234 (Gast)


Lesenswert?

Hallo,

bisher habe ich immer mit AVR uCs und dem AVR Dragon zum flashen 
gearbeitet. Für ein neues Bastelprojekt benötige ich eine BLE 
Kommunikation und deshalb wollte ich direkt auf ein entsprechendes SoC 
setzen, dass eine BLE Schnittstelle, sowie einen ARM Controller hat 
(z.B. CC2640 von TI).
Jetzt zu meiner Frage: wie bekomme ich den ARM Controller geflasht? Muss 
ich einen neuen Programmer kaufen oder kann man die SoCs auch über einen 
handelsüblichen Bluetooth Adapter am PC flashen? Wie handhaben andere 
Hersteller (außer TI) das?

Vielen Dank schonmal!

von Chris K. (Gast)


Lesenswert?

Am einfachsten ist es natürlich immer die Tools des jeweiligen 
Herstellers zu nutzen. Von TI kann man zum Beispiel das RF06 Board als 
Debugger für den CC2640 nutzen.
Da es sich aber halt um einen ARM Kern handelt, gibt es eigentlich immer 
die Möglichkeit via JTAG auf den Chip zu kommen.
NXP bietet so zum Beispiel OpenSDA als Möglichkeit an oder man nimmt von 
J-Link von Segger zum Programmieren.

von Jim M. (turboj)


Lesenswert?

Chris K. schrieb:
> Da es sich aber halt um einen ARM Kern handelt, gibt es eigentlich immer
> die Möglichkeit via JTAG auf den Chip zu kommen.

Nix. Grade die kleineren ARM für BTLE kennen oft nur SWD, weil da nur 
2 Pins benötigt werden. Fieserweise hängt das manchmal vom benutzen 
Package ab ob JTAG verfügbar ist oder nicht.

von BLE1234 (Gast)


Lesenswert?

Ich würde den Kauf eines neuen Programmieradapters gerne umgehen. Die 
meisten Wearables updaten ihre Firmware auch über Bluetooth, ohne das 
man sie irgendwo anschließen muss. Werden dort nur teile des Programms 
neu geladen oder wird das gerät wirklich komplett neu geflasht über 
Bluetooth?

von S. R. (svenska)


Lesenswert?

Updates über Bluetooth laufen i.d.R. über die vorhandene Firmware ab, 
die muss dazu natürlich hinreichend funktionieren.

Zum Firmware entwickeln taugt das nicht.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

BLE1234 schrieb:
> Ich würde den Kauf eines neuen Programmieradapters gerne umgehen. Die
> meisten Wearables updaten ihre Firmware auch über Bluetooth, ohne das
> man sie irgendwo anschließen muss. Werden dort nur teile des Programms
> neu geladen oder wird das gerät wirklich komplett neu geflasht über
> Bluetooth?

Die haben dann einen entsprechenden Bootloader mit auf dem Controller. 
Den must Du aber auch erst einmal auf den Controller bringen.

von BLE1234 (Gast)


Lesenswert?

Torsten R. schrieb:
> Die haben dann einen entsprechenden Bootloader mit auf dem Controller.
> Den must Du aber auch erst einmal auf den Controller bringen.

Ok dann werde ich mal schauen ob ich alternativ einen 433 MHz 
Transceiver mit SPI Schnittstelle und AVR nehme oder einen neuen 
Programmer kaufe.
In welchem Preisbereich bewegt man sich für einen neuen Programmer so 
ca?

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

BLE1234 schrieb:
> In welchem Preisbereich bewegt man sich für einen neuen Programmer so
> ca?

Kommt auf's Target an. Bei den meisten Eval-Boards ist ja schon ein 
entsprechender Programmer dabei, der sich meist auch für eigene HW 
nutzen läßt.

von Frank K. (fchk)


Lesenswert?

BLE1234 schrieb:
> Ich würde den Kauf eines neuen Programmieradapters gerne umgehen. Die
> meisten Wearables updaten ihre Firmware auch über Bluetooth, ohne das
> man sie irgendwo anschließen muss. Werden dort nur teile des Programms
> neu geladen oder wird das gerät wirklich komplett neu geflasht über
> Bluetooth?

Für die Entwicklung und die Erstprogrammierung brauchst Du immer den 
passenden Programmieradapter. Später kannst Du dann OTA implementieren, 
was je nach Funknetz und Chip ein mehr oder weniger großer Zusatzaufwand 
ist.

Für TI-ARM ist ein XDS100v3 oder ein XDS110 zu empfehlen, aber 
prinzipiell geht jeder JTAG-Adapter für ARM. Es kommt halt darauf an, 
welche Entwicklungsumgebung Du nutzen willst. TI unterstützt für die 
CC-Arm Serie IAR und sein eigenes CCS 6 oder 7.

Für die 8051-Chips (zB CC2541) brauchst Du zwingend IAR EW8051 und den 
CC-Debugger - hier gibts keine Alternativen. Dafür sind die Chips selber 
schön billig.

Einen XDS100v3-Nach bau gibts bei Olimex:
https://www.olimex.com/Products/DSP/Emulators/TMS320-XDS100-V3/

fchk

von Christopher J. (christopher_j23)


Lesenswert?

BLE1234 schrieb:
> wie bekomme ich den ARM Controller geflasht?

Entweder per Bootloader, sei er im ROM oder im Flash, oder eben per 
Debugger.

Für gewöhnlich benötigt man zum Debuggen zwei Dinge:

1. den Debug-Adaper, also die Hardware
2. einen sogenannten GDB-Server der die Kommunikation zwischen 
Debug-Adapter und sonstiger Software übernimmt

Die wohl am verbreitetsten GDB-Server sind OpenOCD und der 
JLink-GDB-Server. Letzterer funktioniert nur mit den Debug-Adaptern von 
Segger und ist ein Profi-Werkzeug, wobei man als Student oder Hobbyist 
einen J-Link Edu für 50€ bekommt. Der "richtige" J-Link, der auch für 
kommerziellen Einsatz freigegeben ist kostet dagegen deutlich mehr. Jede 
Hersteller-IDE die etwas auf sich hält bietet von Haus aus Support für 
den J-Link und viele Hersteller (z.B. Nordic) packen einen J-Link Lite 
als Debug-Adapter auf ihre Dev-Boards. Debuggen und flashen kann man mit 
dem J-Link so ziemlich jeden Cortex-M der auf dem Markt ist.

OpenOCD hingegen ist eine ziemliche Universallösung und funktioniert mit 
einer Viehlzahl an Debug-Adaptern und einer noch größeren Zahl an 
Debug-Zielen. Da das Debug-Protokoll (SWD - Serial Wire Debug) innerhalb 
der Cortex-M-Familie standardisiert ist, ist bei OpenOCD die Kombination 
von Debug-Adapter und Ziel-Hardware egal, solange beide unabhängig 
voneinander von OpenOCD unterstützt werden. D.h. man kann zum Beispiel 
mit einem ST-Link nicht nur STM32 debuggen und flashen, sondern z.B. 
auch einen NRF51822 von Nordic oder auch einen LPC800 von NXP. Genauso 
kann man mit einem LPC-Link auch STM32 Chips debuggen und flashen. Die 
Preise für die Debug-Adapter reichen von ca. 2€ für den ST-Link V2 Klon 
aus China, bis zu den mehrere hundert Euro teuren J-Link (die auch von 
OOCD unterstützt werden).

: Bearbeitet durch User
von BLE1234 (Gast)


Lesenswert?

Von Cypress gibt es ein Eval Board mit Programmer für 42€ bei Mouser 
evtl. bestelle ich mir das dann mal. Aus deren Informationen werde ich 
allerdings nicht ganz schlau, kann ich in der PSoC Creator IDE von 
Cypress auch ausschließlich in C Programmieren oder muss ich zwangsweise 
die grafische Programmierung nutzen? Hat jemand evtl. schon damit 
gearbeitet?

Das CY8CKIT-042-BLE-A Eval-Board sieht auf den ersten Blick gar nicht 
mal so schlecht aus oder kann mir jemand etwas ähnliches empfehlen? Am 
liebsten wäre es mir wenn ich mit dem Eval Board auch andere Controller 
(des gleichen Herstellers) zusammen mit der kostenlosen IDE vom 
jeweiligen Hersteller flashen und debuggen könnte.

von Frank K. (fchk)


Lesenswert?

BLE1234 schrieb:
> Von Cypress gibt es ein Eval Board mit Programmer für 42€ bei Mouser
> evtl. bestelle ich mir das dann mal.

Das darfst Du eigentlich als Privatperson nicht in die EU einführen, 
weil es keine EU-Funkzulassung hat, sondern nur eine für USA, Kanada und 
Japan. Steht so in der Doku drin. Zoll und Bundesnetzagentur können es 
aus dem Verkehr ziehen. Grund dafür ist vermutlich, dass in USA/CDN 
höhere Sendeleistungen im 2.4 GHz ISM-Band erlaubt sind (bis 1W, hier 
sind es nur 100 mW).

Warum hast Du Dich dafür entschieden? Weil es billig ist (Eval-Boards 
sind oft vom Hersteller subventioniert) oder weil Du die 
PSOC-Programmierung so geil findest? Und ja, Du musst die Hersteller-IDE 
verwenden, um die Konfigurationsdaten für die Peripherie zu generieren.

fchk

: Bearbeitet durch User
von BLE1234 (Gast)


Lesenswert?

Frank K. schrieb:
> Das darfst Du eigentlich als Privatperson nicht in die EU einführen,
> weil es keine EU-Funkzulassung hat

Danke für den Hinweis!

Frank K. schrieb:
> Warum hast Du Dich dafür entschieden? Weil es billig ist (Eval-Boards
> sind oft vom Hersteller subventioniert) oder weil Du die
> PSOC-Programmierung so geil findest?

In erster Linie weil es das einzige "bezahlbare" Eval Board war, das ich 
auf die schnelle finden konnte. Als Alternative gäbe es z.B. das 
595-CC2650DK von TI. Kostet allerdings >300€...
Ich werde mal noch etwas rumsuchen, bis  100€ wären ok aber darüber 
lohnt es sich nicht wirklich, da ich es nach dem Projekt auf absehbare 
Zeit nicht wieder brauchen werde.
Welche Hersteller kommen denn noch in Frage für ähnliche Eval Boards?

von Christopher B. (chrimbo) Benutzerseite


Lesenswert?

Hallo,
bei Cypress hat's auch noch das
http://www.cypress.com/documentation/development-kitsboards/cy8ckit-145-40xx-psoc-4000s-capsense-prototyping-kit
da ist ein BLE Modul mit drauf. So eins hab ich sogar noch rumliegen.
-> Beitrag "Re: [V] Entwicklungskits STK500, Discovery, Nucleo, Nucleo Expansions"

LG
Christopher

von Hans M. (Gast)


Lesenswert?

Du kannst auch eins der billigen China NRF51xx/NRF52xx Boards nehmen.
Dann noch das kleinste STM32 Nucleo (falls Du nicht schon iwo eins rum 
liegen hast). Den ST-Link da drauf flasht du zu nem J-Link um, brichst 
es runter und bastelst es an das NRF Board.
Und programmieren/debuggen kannst dann mit der ARM Keil IDE.

Hans

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

BLE1234 schrieb:

> In erster Linie weil es das einzige "bezahlbare" Eval Board war, das ich
> auf die schnelle finden konnte. Als Alternative gäbe es z.B. das
> 595-CC2650DK von TI. Kostet allerdings >300€...

Die Boards von Nordic liegen so bei 40-50€ und haben einen 
JLink-Programmer mit an board. Bei Nordic wird man auch nicht dazu 
gezungen, irgend einen Eclipse Clone des Herstellers für die 
SW-Entwicklung zu verwenden.

Von TI würde ich echt die Finger lassen, wenn Dir Dein Sehenheil etwas 
wert ist ;-)

mfg Torsten

von Frank K. (fchk)


Lesenswert?

BLE1234 schrieb:

> In erster Linie weil es das einzige "bezahlbare" Eval Board war, das ich
> auf die schnelle finden konnte. Als Alternative gäbe es z.B. das
> 595-CC2650DK von TI. Kostet allerdings >300€...

Suche mal auf ebay nach CC2640R2F. Du solltest da diverse Treffer haben, 
die alle so im Bereich 12...18€ liegen. Ist sogar BT 5.0. Einen 
JTAG-Debugger brauchst Du dann trotzdem noch, aber den kannst Du ja 
später noch für andere Projekte verwenden.

fchk

von Robin (Gast)


Lesenswert?

Frank K. schrieb:
> die EU einführen, weil es keine EU-Funkzulassung hat, sondern nur eine
> für USA, Kanada und Japan. Steht so in der Doku drin

Das BLE Mudul ist auch für die EU zertifiziert, da sollte es keine 
Probleme geben.

http://www.cypress.com/knowledge-base-article/rf-regulatory-certifications-cy8ckit-143a-and-cy5676a-ble-256kb-module


Die mcu wird ganz normal in c programmiert, die grafische Oberfläche 
dient nur der Konfiguration der Hardware. Wobei auch die wie gewohnt 
über Register möglich wäre, ist nur komplizierter.

von BLE1234 (Gast)


Lesenswert?

Torsten R. schrieb:
> Die Boards von Nordic liegen so bei 40-50€ und haben einen
> JLink-Programmer mit an board.

Danke, hab mir das nRF52 DK rausgesucht, der ARM ist zwar etwas 
überdimensioniert für mein Vorhaben aber das sollte kein Problem sein.
Werde das ganze dann bei nächster Gelegenheit mal bestellen. Danke 
nochmals an alle die geholfen haben :D

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
Noch kein Account? Hier anmelden.