AVRBoardPortable

Aus LaborWiki
Wechseln zu: Navigation, Suche

AVR Board Portable, neuer Ansatz

Worum es nun geht

Statt die Eierlegenge-Wollmilchsau zu entwickeln soll lieber ein recht einfaches, preiswertes und für Einsteiger geeignetes Teil entwickelt werden, was auch etwas kultig aussehen soll. Das Teil soll aussehen wie eine Art Gameboy, mit Display in der Mitte und Knöpfen an der Seite, Stromversorgung und Programmierung über USB.

Wunsch- und Ideenliste

  • Idee von Tixiv: Bootloader mit Software-USB in Controller knallen, daraus einfachst-Hardware aufbauen
    • Controller, USB-Stecker, Quarz, etwas passives Geraffel + Spielzeug (LEDs, Taster, Buzzer, Steckerzeug)
    • Klasse wäre ein SPI-Display Marke billig-aus-Handy-rausgerupft
      • Nokia 3310 ist gut, wirklich nur für 3,3V?!
      • Dazu 3-4 LEDs (SMD)
      • Dazu 5-6 Taster (wie beim Gameboy, Richtung + A + B)
      • Dazu ein Buzzer (billig und klein)
      • Rest der freien IO auf kleinen Steckverbinder, Quarz ist festgelegt wg. USB
  • Eingebaute Kommunikationsmöglichkeit per USB mit PC entfällt im Standard-Fall, dafür gibts Display
  • Alles so auslegen, dass es normalerweise von USB Versorgt werden kann (warscheinlich läufts auf 3,3V hinaus! -> LDO)
  • Wegen besserer handhabbarkeit aufbauen auch wie Gameboy, Links Steuerkreuz, Mitte Display, Rechts A+B, Oben USB, LEDs und Stecker, Hinten evtl. Batteriehalter
  • ATmega644 ist Pinkomp. zu ATmega32, hat aber mehr RAM und mehr Speed
  • Preisziel: unter 30 EUR für alles inkl. gefertigter Platine (aber als Bausatz)

Umsetzung

Software-USB-Bootloader

Soll hierdrauf basieren, Vorteil: Wird von den Systemen als HID-Device erkannt, programmiert wird mit einem einfachen Executable, welches als Argument lediglich das Hex-File erwartet und welches unter gängigen Betriebsystemen kompilierbar sein müsste. Alternativ (aber nicht als HID-Device) AVRUSBBoot von Thomas Fischl.

Noch einbauen: Reset-Taster und Programmierbutton. USB-Device-Erkunnungswiderstand über AVR-Pin schalten, damit im Normalbetrieb das Teil nicht mit der Meldung "kaputtes USB-Device erkannt" nervt.

Alles über USB in Software: Software-Driven-USB

Display

Es gibt verschiedene Displays, aber alte Handydisplays sind am preiswertesten. Ansteuerung sollte über SPI erfolgen, um Pinne zu sparen. Dafür ne universelle Lib benutzen/abwandeln und STOUT von AVR-LIBC drauf biegen, am besten mit Autoscrollen/Autoumbruch wie bei normalen Terminals, damit printf schön einfach wird.

Nokia 3310 Display

Daten: 84x48 Pixel, Schwarz/Weiss, für unter 4 EUR bei Ebay ersteigerbar.

Ich habe von diesem Display mal 6 Stück aufgetrieben, Ansteuerung mit Sourcen aus dem Netz klappte auf Anhieb. Kontrast ist für ein SW-Display super, keine Schatten, satt schwarze Pixel. Einziges Manko: Wenn der Rahmen des Displays starkem Sonnenlicht ausgesetzt ist, zeigt es nichts mehr an. Schwarzes Klebeband an der Stelle, wo sonst die Hörkapsel vom Handy war beseitigt aber schon das Problem. Das Problem ist hier also nicht das LCD selbst, sondern das IC, was scheinbar nicht genug gegen Licht geschützt ist.

Todo: printf implementieren, evtl. mal Graustufen testen. Links: Microsyl

Nokia 6100 Display

Daten: 132x132 Pixel, 4096 Farben, für unter 20 EUR bei Ebay ersteigerbar. Links: Thomas Pfeifer, Deramon

Taster

Ruhig die billigen von Reichelt nehmen.

Controller

ATmega644 (64K Flash, 4K RAM)

Stromversorgung

Möglichst billig, USB über SMD-Sicherung, dann Schiebeschalter zur Eingangsspannungswahl (Batteriepack vorsehen), LM317 in TO92 für 3,0V, mit 3,0V alles laufen lassen (inkl. Display).

Adapterleiste

Billig für an Flachbandkabel, damit in Gruppen zum Breadboard gehen.



Alter Ansatz

Worum es geht

Das bisherige Laborboard ist groß, schlecht portabel, braucht eine externe Stromversorgung, benötigt ein externes Programmiergerät und sieht auf der Lochrasterplatine nicht besonders professionel aus. Die Programmierung erfolgt bisher über ein Kabel für den Parallel-Port, der auch an immer mehr Notebooks nicht mehr vorhanden ist. Da sich das Laborboard aber großer beliebtheit erfreut und für den Einsteiger eine schöne Grundlage für einfache und komplexe Entwicklungen bietet, ist eine Neuauflage angedacht. Doch zunächst einmal soll eine Wunschliste über Eigenschaften des Boards aufgestellt werden.

Wunschliste

Was eine neue Auflage vom Laborboard bieten könnte:

  • Kompatibilität zum alten Board
  • Kleiner, industriell gefertigte Platine, dann durchaus mit SMD Technik
  • USB-Interface
    • zum Programmieren
    • zur Stromversorgung (aber mit wirksamen Schutzmaßnahmen um die Sicherheit des PCs zu gewährleisten
    • mit serieller Schnittstelle zum einfachen Debuggen (printf, scanf)
  • ATmega32 in SMD ist eigentlich keine schlechte Wahl
  • extra AVR zur Programmierung
  • sinnvolle, einfach zu bauendes Steckerkonzept (Pfostenleisten für Standard-Flachbandkabel wäre sinnvoll)
  • Stromversorgung, per Jumper einstellbar USB oder Extern, evtl. Schaltregler einsetzen für höhere Leistung (für viele LEDs :-)
  • Möglichkeit zur Montage von Füsschen unter der Platine (Schutz gegen kleine Seen aus Mate und anderem Zeugs)
  • 80x100 cm² oder kleiner wäre nicht schlecht (= preiswerter!)
  • Wenn Platz bleibt: Lochrasterfeld für 1,27mm Zeug
  • USB-Anschluss aber über A-B Kabel, damit der USB-Port nicht ausleiert
  • Hardware auf der Platine: LEDs, Mäuseklaviere, Buzzer
  • Beim Rausführen der Ports die Verbinder bitte so wählen, das man ganze Platinen aufstecken kann (Also Steckverbinder die sich beidseitig auf Platinen löten lassen ohne Kabel dazwischen)
    • Für die billigen Pfostenwannen gibt es auch Gegenstücke, die direkt auf Platinen aufgelötet werden können. Wären dann normale Pfostenwannen OK?
  • Komplexere Variante sollte mind. auch mit 3,3V IO-Spannung klar kommen (am besten ganz flexibel)

Konkretisierung

Ideen/Vorschläge

Haupt-AVR vom USB und Versorgungsteil trennen

  • USB, Versorgung und Programmier-AVR vom Rest des Boards teilen/trennen
    • Vorteil: Kleiner wenn man mit externen Schaltungen entwickelt
    • Interessant für alle, die bereits das Labor-Board gebaut haben und nur eine Möglichkeit zur Versorgung, Programmierung und zum Debuggen per USB wünschen
    • Nachteil: Zwei Platinen auf dem Tisch
    • Lösungsweg: Platine vom Mega32 trennbar machen

Es läuft also wohl oder übel auf einen möglichst universellen, hyper-dyper-Programmierer inkl. Stromversorgung aus USB oder anderen Quellen hinaus und auf ein warscheinlich sehr primitives Laborboard (wenn überhaupt...). Interessant wäre auch, das ganze auch für LPC213x-Controller nutzbar zu machen und dem AVR mal was potenteres an die Seite zu Stellen...


mögliche Programmiergeräte

Wünsche

  • Kompatibel und erweiterbar möglichst auch für versch. Programmer
  • Sollte Taktgenerator für "verlorene" AVRs bieten
  • Es gibt ein STK500 V2 Protokoll, wo bei neuen AVRs nicht mehr das Programmiergerät geupdatet werden muss
    • Sehr interessant, da zukunftssicher
    • Implementiert im Programmer von hier: tuxgraphics
    • Inklusive Software-USB: Ullihome

Umsetzung

Tut (Lutz Lißeck) kümmert sich um das CAD-Design des Schaltplans und des Boards. Die Platinen kann ich warscheinlich über eine befreundete Firma ordern (bei MultiPCB).