Microkontroller und I2C Bus Board 2 Teil1 Hardware 2018-10-06

Ein kleines Board mit dem Attiny 2313

  1. achim S.

    achim S. Mitglied

    Registriert seit:
    16. Januar 2010
    Beiträge:
    380
    Zustimmungen:
    6
    Punkte für Erfolge:
    18
    Sprachen:
    C
  2. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    2.979
    Zustimmungen:
    45
    Punkte für Erfolge:
    48
    Sprachen:
    BascomAVR, Assembler
    Oho, ein Tiny...

    Zu den Features hast Du ja einiges geschrieben. Der Tn2313/2313A/4313 ist abgesehen vom Tn441/841 der kleinste konventionelle (=non-TPI, non-X-Core) Tiny mit Hardware-UART. Dafür besitzt er aber keinen ADC.
    Nach dem ursprünglichen Tn2313 wurde die picoPower-Variante (A) entwickelt, mit zwei möglichen Speicheraussatttungen 2313A, 4313 (warum da das "A" fehlt, weiß wohl nicht mal Micromel).
    Abgesehen von picoPower und der damit nicht mehr nötigen Selektion lowVoltage vs highSpeed wurden noch folgende Änderungen/Verbesserungen vorgenommen:
    • alle I/Os können als PinChangeInterrupt verwendet werden (vorher nur PortB)
    • dem USI-Empfänger wurde ein Buffer-Register hinzugefügt
    • das USART-Modul beherrscht MSPIM (Master SPI MODE) - kann also als Hardware-SPI-Master eingesetzt werden.
    Folgende Designentscheidungen bei Deiner Platine sind mir nicht klar:
    • Fest mit D0 und D1 verdrahtete Taster - damit nimmst Du Dir die Verwendbarkeit des U(S)ARTs.
    • Fest mit A0 und A1 verdrahteter Quarz - der Tiny besitzt einen internen 8Mhz-Oszillator.
    • Warum ein 16MHz-Quarz, der Tiny könnte auch 20MHz.
    • Fest mit D2 verdrahteter Taster - D2 ist der Takt-Pin des USART-Modules. Oder alternativ der externe Interrupt-0.
    • Fest mit D3 verdrahtete LED - das wäre der zweite externe Interrupt -> keine LowLevel-IRQs möglich.
    • Fest mit D4 verdrahtete LED - D4 könnte als Takteingang von Timer0 verwendet werden.
    • Fest mit D5 verdrahtete LED - D5 könnte Takteingang von Timer1 sein, oder Output-Compare-B von Timer0.
    • Fest mit D6 verdrahteter Summer - D6 könnte als Input Capture Pin von Timer1 verwendet werden.
    • (Die Pullups an den drei Tastern sind unnötig.)
    Effektiv legst Du also neun der achtzehn I/Os fest, den Reset und den I²C-Bus (via USI) nicht mitgezählt.
    Frei verwendbar ist nur noch PortB.
    Insbesondere sperrst Du den (Master-SPI-fähigen) USART, beide externe Interrupts, beide Timer als Counter, das (einzige) Input-Capture-Unit und einen der vier PWM-Kanäle.
    Verwendbar sind nur noch diverse PinChangeInterrupts, der Analog-Comperator, drei PWMs und (wegen Anbindung an den I²C-Bus eingeschränkt) das USI.
     
  3. achim S.

    achim S. Mitglied

    Registriert seit:
    16. Januar 2010
    Beiträge:
    380
    Zustimmungen:
    6
    Punkte für Erfolge:
    18
    Sprachen:
    C
    Hallo
    Danke für deine Info
    Das Board 2 ist entstanden wie ich von einigen Zusammenhänge keine Ahnung hatte. Die Erkenntnisse sind erst später gekommen. Versuche mal einiges zu erklären.
    Die 16M habe ich immer genommen um Abweichungen durch die Ungenauigkeit des Internen Oszi zu vermeiden. Es sollte nur eine kleine Version mit einem Port zu sein und halt nur ein paar Taster und LEDs haben. Mit usart oder SPI bin ich nie klar gekommen, deshalb war nur I2C für mich wichtig. Den Analog Comperater hatte ich damals vollkommen übersehen.
    Mach doch mal einen Vorschlag für ein optimales Board 2. Wo Taster und LEDs besser dran sind und der Analog Comperator und anderes nutzbar sind. Mach mir gern die Arbeit alles zu verändern. Höhe ist immer gleich und die Breite kann ich ohne Probleme ändern. Idee dazu?
    achim
     
  4. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    2.979
    Zustimmungen:
    45
    Punkte für Erfolge:
    48
    Sprachen:
    BascomAVR, Assembler
    Ich finde gerade UART und SPI viel einfacher als I²C. Aber Du wirst Dich da sicher auf fertige Hochsprachen-Bibliotheken beziehen.

    Bei den Tinies wurden immer mehr Funktionen eingebaut - mit trotzdem wenigen Beinen. Logischerweise kommen sich dann einige Funktionsblöcke in die Quere - der Anwender muß sich entscheiden.
    Bei einer Platine, die genau für einen konkreten Zweck festgelegt ist, kann man diese feste Entscheidung ins Layout einfließen lassen.
    Will man hingegen 'ne flexible Experimentierplatine, sollte man versuchen, die Flexibilität im Layout zu behalten. Das(!) wäre mein(!) Ziel.
    Eine Variante wäre, alle Beine über Wannenstecker verfügbar zu machen, und LEDs, Taster usw dort beliebig anzustecken (ob diese dann auf jeder Platine verbaut sein sollen, und über Jagwires verdrahtet werden können, oder auf einer seperaten Platine, ist 'ne andere Frage.)
    Den Quarz könnte man eventuell sockeln (um zB auch Baudratenquarze verwenden zu können) - jedenfalls würde ich den Quarz bei Bedarf über einen (zwei) Jumper ankoppeln.
    Eine zweite Variante wäre, die von Dir fest verdrahteten Beine über Jumper koppelbar zu machen. Dann hast Du zumindest die Option, die Hardware zu nutzen. Natürlich erfordert 'ne entsprechende Stiftleiste mehr Platz, und sicher (wieder) Hirnschmalz beim Layout.
    Du hast Dich für bedrahtete Bauteile auf einer einseitigen Platine entschieden/festgelegt. Ich würde inzwischen SMDs oder gemischt bevorzugen, wobei ich doppelseitige Platinen im heimischen Keller auch vermeiden will...

    OT: ich bin seit längerer Zeit mit einer Erweiterung des STK500 beschäftigt - Ziel ist eine Topcard, die diverse Controller (THT und SMD) aufnehmen kann, und die an die Netze des STK anbindet. Das STK bietet (unter anderem) je acht Taster und LEDs, ich würde einen Drehgeber und Pegelwandler (+Spannungsregler) für I²C und SPI/UART/IO hinzufügen (-> und'n Sockel-Konzept für OLED-Displays).
     
  • Über uns

    Unsere immer weiter wachsende Community beschäftigt sich mit Themenbereichen rund um Mikrocontroller- und Kleinstrechnersysteme. Neben den Themen Design von Schaltungen, Layout und Software, beschäftigen wir uns auch mit der herkömmlichen Elektrotechnik.

    Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  • Coffee Time

    Unser makerconnect-Team arbeitet hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und unser eigener makerconnekt-Server regelmäßig gewartet wird. Wir nehmen das Thema Datensicherung und Datenschutz sehr ernst und sind hier sehr aktiv, auch sorgen wir uns darum, dass alles Drumherum stimmt!

    Dir gefällt das Forum und die Arbeit unseres Teams und du möchtest es unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft, unser Team freut sich auch über eine Spende für die Kaffeekasse :-)
    Vielen Dank!
    Dein makerconnect-Team

    Spende uns! (Paypal)
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren und die Seite optimal für dich anzupassen. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden