Icon Ressource

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

LotadaC

Sehr aktives Mitglied
22 Jan 2009
3.257
59
48
Hennigsdorf
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.
 

achim S.

Premium Benutzer
16 Jan 2010
470
7
18
Nähe Basel
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
 

LotadaC

Sehr aktives Mitglied
22 Jan 2009
3.257
59
48
Hennigsdorf
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

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)