PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datenübertragung über Audiosignale



Mxt
16.08.2019, 10:05
Hallo,

gerade habe ich beim Stöbern im Arduino Blog gelesen, dass sie jetzt einer Firma kooperieren, die eine Software zur Datenübertragung über Audiosignale entwickelt.
https://blog.arduino.cc/2019/08/12/chirp-brings-data-over-sound-capabilities-your-arduino-projects/

Ganz nebenbei finden sich da ein paar andere interessante Fakten:

1) Es gibt jetzt einen offiziellen Arduino mit ARM Cortex M4


Our new Nano 33 BLE Sense board, with a DSP-optimised Arm Cortex-M4 processor, will be the first board in the Arduino range with the power to transmit and receive Chirp audio signals leveraging the board’s microphone as a receiver.

Ist übrigens kein Atmel Controller, sondern einer von Nordic.

2) Die anderen ARM Cortex M0+ basierten Arduinos reichen nur zum Senden von Daten.

3) Es gibt preemtives Multitasking für den neuen Arduino

https://blog.arduino.cc/2019/07/31/why-we-chose-to-build-the-arduino-nano-33-ble-core-on-mbed-os/

Sie benutzen dafür mbed OS.

4) Da steht noch was


As a side effect of reusing its drivers, we can now support every Mbed board in Arduino with minimal to no effort.


Bisher hatte man ja nur bei wenigen Controllern (z.B. Kinetis K64 und K66) die Wahl, ob man sie als Arduino (Teensy 3.5 und 3.6) oder als mbed (FRDM-K64F und FRDM-K66F) haben wollte. Jetzt könnte eine ganze Lawine von STM32xxx, LPCxxx, SciLabs usw. Arduinos hereinbrechen.

HaWe
16.08.2019, 11:46
As many of you may know, Mbed is a fully preemptive RTOS (real-time operating system), meaning you can run multiple “programs” (more specifically, threads) at the same time, much like what happens in your notebook or smartphone

Boards:
https://store.arduino.cc/nano-33-ble-with-headers
https://store.arduino.cc/nano-33-ble-sense

schau mal einer an, sie haben endlich den Sinn von preemptivem MT verstanden
- mein Reden seit 1999! 8)

Ceos
16.08.2019, 12:09
*Blickt in die Schematik, findet keinen USB-Seriell Wandler*

*Sucht im Datenblatt nach DMA Spec ... sieht RAM basierte DMA Deskriptoren ... schüttelt Kopf*

Definitiv ein Kandidat für µPython! Fragt sich nur ob der Unterbau leicht angepasst werden kann oder alles neu verdrahtet werden muss.

Leider kein Kandidat für einen schnellen DMA, aber vielleicht bin ich vom Atmel SAM-DMA geschädigt und sehe hier 27 Takte pro DMA Event wo es nur 5 oder 10 sind ^^

edit: Obwohl gerade die Aussage, dass er Audio besser verarbeiten kann, klingt eher nach einem schnellen DMA, aber vielleicht auch nur im linearen Betrieb

edit2: ein paar mehr Details zum NVIC hätten sie schon dokumentieren könne oder gibts da ein spezifisches Dokument zu dass ich gerade nciht finde?!! Also ISR In und Out Time wäre mal Interessant und ob er NMI mit Interrupt Register Unterstützt für extrem schnelle Interrupts

Mxt
16.08.2019, 12:18
Die Nordic Teile sind eher in Richtung Low Power und drahtlose Anwendungen optimiert. Das der langsamer ist, als andere M4 Implementierungen, ist schon wahrscheinlich.

Die verlinkte Audio Lib verwendet Fixpunktarithmetik und SIMD-Anweisungen dafür. Beides geht erst ab M4 aufwärts. Von DMA habe ich da bisher nichts gelesen.

Ceos
16.08.2019, 12:24
in den von HaWe verlinkten Seiten gibts einen Link zur aktuellen Doku von Nordic selbst

die nennen es EasyDMA aber aus den Beispielen und dem Text lässt sich schon ablesen dass man "Mutliple Instanzen" also mehrere Deskriptoren anlegt und im Controller dann nur Events mit nem Vektor versieht der auf den Deskriptor zeigt

beim AT SAM (im Grunde gleiches Prinzip vermute ich, muss aber nicht) war halt das Problem dass der Wechsel zwischen 2 DMA Transfers von unterschiedlichen Zielen eine Umschaltzeit von bis zu 27 Takten benötigte und das reicht für meinen Zweck einfach nicht aus. Aber für Micropython klignt das Ding echt spannend, 1MB Flash reicht für eine Vollinstallation + 256kB SPIFFS oder wenigstens 128kB

edit: und es hat DIP Format, perfekt fürs breadboard

edit2: Das DMA Thema ist auch nur Nebenschauplatz udn dafür kann cih beim besten Willen kein Arduino nutzen, das geht nur BareMetal

HaWe
16.08.2019, 12:33
gerade fiel mir auf: die 33ble/M4 Boards sind beide nur mit 64MHz getaktet, die M4er von Adafruit und Teensy sind doppelt bis dreimal so schnell.
Schon der Due/M3 läuft ja mit 84MHz.

Mxt
16.08.2019, 12:46
Ja, wie gesagt LowPower, deshalb niedrigerer Takt.

Die 84 MHz beim Due kann man nicht direkt vergleichen, ein M3 hat einen kleineren Befehlssatz und braucht für viele Befehle mehr Takte.

Ein weiterer Unterschied bei Geschwindigkeitsbetrachtungen ist die Speicheranbindung. Der Teensy 3.6 ist ja in manchen Fällen 2-3 mal schneller als der 3.5, obwohl nur 50 % Taktunterschied bestehen. Das liegt am Cache und dem breiteren Speicherinterface. Die MHz Zahl ist nur ein grober Anhaltspunkt.