====== Teensy 3.2 ====== ===== Einführung ===== Teensy 3.2 ist ein Arduino IDE kompatibles Entwicklungsboard von [[http://www.http://pjrc.com/|PJRC]]. Das Teensy 3.2 Board ist eine Weiterentwicklung des Teensy 3.1, neu ist ein zusätzlicher Spannungsregler verbaut und der Typ des Bootloader IC wurde geändert. {{ :arm:teensy3:t32_500.jpg |}} Bildquelle: [[https://www.flickr.com/photos/sparkfun/21435170263/in/photolist-aAXrDH-yE9Rk6-zB3mZH-zBVjNH-zyJ83U-zjrkQN-z4uLQX-fJSwwx-Be8GvG-LFgMaC-xYaKnS-HpXczF-9raBxD-zuV3wf-JVRKMD-KMvfYS-J9f7j4-J9f7GZ-Ki8E5R-EDhkT3-KmcBpB-JiGP3H-J15st7-FjZ67n-GcXzK5-Gffu9t-zuWBpf-zLqjW3-yQvb8Y-zKe2wL-zMx11v| Teensy 3.2]] by [[https://www.flickr.com/photos/sparkfun/|SparkFun Electronics]] is licensed under [[https://creativecommons.org/licenses/by/2.0/| CC BY 2.0]] Ein Kopf hinter [[http://www.http://pjrc.com/|PJRC]] ist Paul Stoffregen, er ist massgeblich für die Hardware und Software Entwicklung des Teensy 3.2 verantwortlich. Paul ist nicht Teil des Arduino Teams, besitzt aber dennoch einen Entwickler Zugang zur Arduino Repository und hat schon verschiedene Verbesserungen beigetragen. Entsprechend gut kennt er sich mit den Internas der Arduino Software aus. ===== Hardware ===== Das [[http://www.pjrc.com/teensy/teensy31.html|Teensy 3.2 Board]] basiert auf dem Cortex M4 Prozessor MK20DX256VLH7 von NXP ([[http://www.nxp.com/assets/documents/data/en/data-sheets/K20P64M72SF1.pdf|Datenblatt]]). Folgende Funktionen bietet der Mikroprozessor auf dem Teensy 3.2 Board: * Core: ARM Cortex-M4 * Frequenz: max. 72 MHz (direkt in der Arduino IDE auf 96 MHz übertaktbar, [[http://forum.pjrc.com/threads/25755-Teensy-3-1-overclock-to-168MHz|mit zusätzlichen Änderungen auf bis zu 168 MHz]]) * RAM: 64 KB * Interner Flash: 256 KB * EEPROM: 2KB * PWM Kanäle: 12 * 34 (digitale) Pins mit verschiedenen Funktionen (5V tolerant) * 16 von den 34 Pins können als analoge Eingänge verwendet werden (5V tolerant) * Zusätzlich stehen noch 4 separate analoge Eingänge zur Verfügung (nicht 5V tolerant) * Serielle Schnittstellen: 3 + USB * SPI und I2C Schnittstelle * [[http://de.wikipedia.org/wiki/I%C2%B2S|I2S]] Schnittstelle * Touch Sensing Interface * integrierte Echtzeituhr (RTC) * einen DAC Ausgang mit einer Auflösung von 12 Bit * integrierte [[http://de.wikipedia.org/wiki/Programmable_Gain_Amplifier|PGA]]: 2 * eine [[http://de.wikipedia.org/wiki/Controller_Area_Network|CAN Bus]] Schnittstelle Zusätzlich ist noch ein MKL02 von NXP verbaut, das ist ein Mi­k­ro­con­t­rol­ler mit einem ARM Cortex M0+ Kern. ([[http://www.nxp.com/assets/documents/data/en/data-sheets/KL02P32M48SF0.pdf|Datenblatt]]) In diesem ist der Bootloader gespeichert. Der MKL02 kann nicht über die Arduino IDE gesteuert oder programmiert werden. ==== Schema ==== [[http://www.pjrc.com/teensy/schematic.html|direkter Link zum Schema auf der Teensy 3.2 Projektseite]] ==== Pinbelegung ==== [[http://www.pjrc.com/teensy/pinout.html|direkter Link zur Pinbelegung auf der Teensy 3.2 Projektseite]] ==== 5V tolerante Eingänge ==== Alle digitale Pins des Teensy 3.2 Boards sind 5V tolerant. Das heisst, auch wenn die Speisung nur 3.3V beträgt, dürfen Signale mit bis zu 5V an den entsprechenden Pins angeschlossen werden. Als nicht digitale Pin gelten die folgenden Pins und dürfen daher mit maximal 3.3V verbunden werden: Program, Reset, VBat, A10, A11, A12, A13, A14 und AREF. (An 3.3V, GND und AGND dürfen auch keine 5V Signale angeschlossen werden). Alle anderen Pins sind 5V tolerant. ==== Unterschied Reset und Program ==== Das Teensy 3.2 Board besitzt einen //Reset// und einen //Program// Eingang. Durch das Verbinden des //Reset// Eingangs mit 0V, wird ein Reset durchgeführt. Wird an den //Program// Eingang 0V angelegt, wird das Teensy 3.2 Board in den Programmier-Modus versetzt. Der kleine Taster auf dem Board ist mit dem //Program// Eingang verbunden. ==== Echtzeituhr (RTC) aktivieren ==== Um die integrierte RTC verwenden zu können, muss ein zusätzlicher Quartz eingelötet werden. Die Spezifikation: * Frequenz: 32.768 kHz * Kapazität: 12.5 pF * radiale Bauform mit einer Länge von max 6 mm Passend ist zum Beispiel der CFS206-32.768KDZF-UB von Citizen. Bezugsquelle: [[http://ch.mouser.com/Search/ProductDetail.aspx?R=CFS206-32.768KDZF-UBvirtualkey69500000virtualkey695-CFS206-327KF-U|Mouser]] [[http://www.digikey.ch/product-detail/en/CFS206-32.768KDZFB/300-1002-ND/283736|Digikey]] Auf der unteren Seite des Teensy 3.2 Boards kann der Quarz eingelötet werden. Die Position ist markiert. Eine Beispielanwendung ist unter //Beispiele/Time/TimeTeensy3// in der Arduino IDE abrufbar. Zusätzlich existiert noch der Befehl ''Teensy3Clock.compensate(num);'' Mit der Funktion //compensate(num)// kann die RTC kalibriert werden, falls sie zu schnell oder langsam läuft. Mit einer positiven Zahl wird die Uhr beschleunigt, mit einer negativen Zahl verlangsamt. Der Wert ist in ppm / 8 (parts per million). Mit //compensate(-40)// wird die Geschwindigkeit der Uhr um 5ppm verlangsamt. Damit die RTC bei einem Speisungsunterbruch die aktuelle Zeit nicht vergisst, kann eine zusätzliche Backup Batterie angeschlossen werden. Dazu kann eine 3V Knopfzelle verwendet werden, angeschlossen an den //VBat// Eingang, verhindert sie das stehen bleiben der internen Uhr. ==== Eagle PCB Library ==== Eine Eagle Library mit verschiedenen Teensy 3.2 Footprints kann [[https://bitbucket.org/thewknd/tlib|hier (bitbucket.org)]] heruntergeladen werden. ===== Software ===== Das Teensy 3.2 Board kann mit Hilfe der [[http://pjrc.com/teensy/teensyduino.html|Teensyduino Erweiterung]] in der normalen Arduino IDE programmiert werden. Dazu muss zuerst die Arduino IDE von [[http://arduino.cc/en/Main/Software|Arduino.cc]] heruntergeladen und installiert werden. Danach wird die [[http://pjrc.com/teensy/td_download.html|Teensyduino Erweiterung]] heruntergeladen und installiert. In der Arduino IDE kann unter Tools/Board //Teensy 3.2 / 3.1// ausgewählt werden. Wird nun Programmcode auf das Teensy 3.2 Board übertragen, öffnet sich automatisch der Teensyduino Loader und erklärt den nächsten Schritt. ==== Bibliotheken ==== Die Teensyduino Erweiterung bringt viele zusätzliche Bibliotheken mit, die während der Installation mitinstalliert werden könne. Ob eine Bibliothek mit dem Teensy 3.2 Board kompatibel ist, kann auf [[http://www.pjrc.com/teensy/td_libs.html|dieser Seite]] nachgeschaut werden. ===== Ressourcen ===== * [[http://shop.boxtec.ch/teensy-usb-board-p-42496.html|Link zu Produkt im Boxtec.ch Shop]] * [[http://www.pjrc.com/|PJRC]] * [[http://forum.pjrc.com/forum.php|PJRC Forum]] * [[http://pjrc.com/teensy/teensy31.html|Zusammenfassung Teensy 3.1 und Teensy 3.2]] * [[http://pjrc.com/teensy/td_download.html|Teensyduino download]] * [[http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/kinetis-cortex-m-mcus/k-series-performance-m4/k2x-usb/kinetis-k20-72-mhz-full-speed-usb-mixed-signal-integration-microcontrollers-mcus-based-on-arm-cortex-m4-core:K20_72|Startseite von NXP zur Kinetis K20 Serie]] * [[http://www.nxp.com/assets/documents/data/en/data-sheets/K20P64M72SF1.pdf|Datenblatt: Technische Informationen]] * [[http://www.nxp.com/assets/documents/data/en/reference-manuals/K20P64M72SF1RM.pdf|Referenz Handbuch]]