Forum: Mikrocontroller und Digitale Elektronik Teensy Einsteigerprobleme


von NoTeen (Gast)


Lesenswert?

Habe mit Erfolg einiges mit Tiny- und Mega-AVRs gebaut.
DCF, Frequenzzähler auch mit Reziprokzählung, ...

Um mal nicht so sehr mit RAM knappsen zu müssen, sind mir
die Teensy-3.6-Boards aufgefallen: 256 KB-RAM klingen gut.

Ich bin ja auch bereit, mich mit Standard-Libraries, statt
eigener ASM-Pfriemeleien zu begnügen - das sollte durch
die höhere Taktrate entschärft sein.

Aber in die Doku zur Erstellung eigener Programme finde
ich keinen Zugang:
- Welcher µC-Port ist mit welchem Anschluss-Pin verbunden?
- Welchen µC-Port (Anschluss-Pin) habe ich besetzt, wenn ich
  Funktionen der Standard-Libraries (z.B. LCD-Display) benutze?
- Es gibt die Anschlüsse RX1 und TX1, aber komischerweise
  nur Libraries für Software-UARTS?

Hat hier schon mal jemand was eigenständig auf Teensy gebaut
und hat meine Einsteigerprobleme überwunden?

von Codix (Gast)


Lesenswert?

NoTeen schrieb:
> eigener ASM-Pfriemeleien zu begnügen - das sollte durch
> die höhere Taktrate entschärft sein.

Wer heute noch in Assembler programmiert, dem ist nicht mehr zu 
helfen....

von Frank L. (hermastersvoice)


Lesenswert?

Auf der Seite von PJRC ist doch Alles erklärt was man zum Einstieg 
wissen muss. Wenn man die Arduino Umgebung benutzt muss man nicht wissen 
welcher Pin am Controller mit welchem Pin auf dem Board verbunden ist, 
man benutzt die Arduinonummern. Es gibt aber auch komplette 
Schaltunterlagen für die Dinger, falls man es trotzdem wissen möchte.

von kll (Gast)


Lesenswert?

NoTeen schrieb:
> - Es gibt die Anschlüsse RX1 und TX1, aber komischerweise
>   nur Libraries für Software-UARTS?

Eigentlich ist es genau anders rum. Teensy 3.6 hat 6 Hardware Serial 
Schnittstellen. In deinem Code verwendest du die mit Serial1 (RX1/TX1), 
Serial2 (RX2/TX2), Serial3 usw. Serial (ohne Index) ist die USB 
Schnittstelle.
1
Serial3.begin(9600);
2
Serial3.println("Hallo");

Dies funktioniert ohne weiteres einbinden von Libraries.

Wenn du dir die ausgedruckte Pin Karte anschaust (hättest eine mit dem 
Teensy bekommen müssen) dann ist z.B. RX1 mehrmals vorhanden. Der 
Bezeichner mit der schwarzen Schriftfarbe ist der Standardpin. Die 
grauen sind die alternativen Pins. Umschalten kannst du mit 
Serial1.setRX(21).


Software Serial kann auf dem Teensy 3.X nur eingeschränkt verwendet 
werden. Es ist hier nur ein Wrapper für die bestehenden Hardware Serial 
Schnittstellen. Durch die Verwendung von Software Serial gewinnst du 
keine zusätzliche Schnittstelle. Das Ziel war, dass Libraries die 
SoftwareSerial verwenden einfach eingesetzt werden können.
Auf Teensy 3.2 konnte man mit AltSoftSerial noch eine zusätzliche 
emulierte Schnittstelle erhalten. Status für Teensy 3.6 weiss ich nicht.

Der Entwickler von Teensy vertritt die Philosophie "Der Code ist meine 
Dokumentation". Der Sourcecode ist kaum kommentiert und die Webseite 
(pjrc.com) ist ein Gemisch aus (spärlichen) Informationen für Teensy 2 
(mit ATMEL AVR mcu) und Teensy 3.X (NXP ARM mcu). Das Forum enthält 
ebenfalls viele Informationen - leider sehr verstreut und die 
Suchfunktion ist schlecht.

von NoTeen (Gast)


Lesenswert?

@ kll (Gast)
Danke. - Du liest ja noch die Frage, bevor du antwortest!

Manche scheinen hier nur noch Stichworte zu scannen, um
den Fragensteller umgehend für blöd zu erklären...

Deinen Tipp für die Serial-Nutzung werde ich mal bald probieren!

Es geht eben nicht um den kindischen ASM-Hochsprachen-Streit,
sondern um die Übersicht, welche anderen HW-Ressourcen ich
blockiere, wenn ich eine HW-Komponente nutze.

Bei RX1/TX1 sind z.B. zwei "Touch-Pins" nicht mehr nutzbar.
Intern hat man vielleicht auch einen Timer/Counter "besetzt".

Muss man bei Teensy-Entwicklungen nacheinander gewünschte
HW-Funktionen dem Programms zufügen, bis man Konflikte
merkt? Und sich dann einen anderen Weg suchen?

Klingt erst mal abschreckend!

von Christopher J. (christopher_j23)


Angehängte Dateien:

Lesenswert?

Die Frage was man wie wo anschließen kann lässt sich bei dem Teensy, wie 
auch bei allen anderen Arduino-Boards mit einer simplen 
Google-Bildersuche, in deinem Fall nach "Teensy 3.6 Pinout", klären. Das 
führt z.B. zu angehängtem Diagramm.

Wenn ich das richtig interpretiere, dann sind die Bezeichner in 
Großbuchstaben die Standardeinstellung und die Bezeichner in 
Kleinbuchstaben können alternativ dorthin gemappt werden. Inwieweit das 
in den Libraries implementiert ist weiß ich nicht. Das es 
Überschneidungen gibt ist für heutige ARM-Controller ganz normal. Da 
steckt eben einfach mehr Peripherie drin als man an den Pins insgesamt 
raushauen kann, noch dazu wenn die Anzahl der Pins auf ein Drittel vom 
Ursprünglichen reduziert wird, wie im Falle des Teensy.

von Markus F. (mfro)


Lesenswert?

Wer sich nicht von der Arduino-Umgebung bevormunden lassen will, kann 
die Teensies auch "bare metal" programmieren.

Alles was es dazu braucht, ist hier: 
http://kevincuzner.com/2014/12/12/teensy-3-1-bare-metal-writing-a-usb-driver/ 
ganz gut beschrieben. Dazu noch die richtigen Kinetis-Manuals und 
Arduino kann in die Tonne.

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.