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!
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.
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.
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?
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.
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.
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?
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.
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
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).
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.
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
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?
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
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
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
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.
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