AVRBoardPortable: Unterschied zwischen den Versionen

Aus LaborWiki
Wechseln zu: Navigation, Suche
Keine Bearbeitungszusammenfassung
 
(11 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{ProjektInfoBox
|name=AVR Board Portable
|status=unknown
|description=Portable AVR Board als Anlehnung an den Gameboy
|platform=AVR
|tags=AVR, Microcontroller & FPGAs, Games,
}}
= AVR Board Portable, neuer Ansatz =
= AVR Board Portable, neuer Ansatz =


Zeile 23: Zeile 30:
Soll [http://www.obdev.at/products/avrusb/bootloadhid.html 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) [http://www.fischl.de/avrusbboot/ AVRUSBBoot von Thomas Fischl].  
Soll [http://www.obdev.at/products/avrusb/bootloadhid.html 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) [http://www.fischl.de/avrusbboot/ 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.  
Noch einbauen: Reset-Taster und Programmierbutton. USB-Device-Erkennungswiderstand über AVR-Pin schalten, damit im Normalbetrieb das Teil nicht mit der Meldung "kaputtes USB-Device erkannt" nervt.  


Alles über USB in Software: [http://www.obdev.at/products/avrusb/index.html Software-Driven-USB]
Alles über USB in Software: [http://www.obdev.at/products/avrusb/index.html Software-Driven-USB]
Zeile 36: Zeile 43:


Todo: printf implementieren, evtl. mal Graustufen testen.
Todo: printf implementieren, evtl. mal Graustufen testen.
Links: [http://www.microsyl.com/ Microsyl]


==== Nokia 6100 Display ====
==== Nokia 6100 Display ====

Aktuelle Version vom 8. April 2017, 00:59 Uhr

 
AVR Board Portable

Release status: unknown [box doku]

Description Portable AVR Board als Anlehnung an den Gameboy
Platform  AVR



AVR Board Portable, neuer Ansatz[Bearbeiten | Quelltext bearbeiten]

Worum es nun geht[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

  • 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[Bearbeiten | Quelltext bearbeiten]

Software-USB-Bootloader[Bearbeiten | Quelltext bearbeiten]

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-Erkennungswiderstand ü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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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

Taster[Bearbeiten | Quelltext bearbeiten]

Ruhig die billigen von Reichelt nehmen.

Controller[Bearbeiten | Quelltext bearbeiten]

ATmega644 (64K Flash, 4K RAM)

Stromversorgung[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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



Alter Ansatz[Bearbeiten | Quelltext bearbeiten]

Worum es geht[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

Ideen/Vorschläge[Bearbeiten | Quelltext bearbeiten]

Haupt-AVR vom USB und Versorgungsteil trennen[Bearbeiten | Quelltext bearbeiten]

  • 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[Bearbeiten | Quelltext bearbeiten]

Wünsche[Bearbeiten | Quelltext bearbeiten]

  • 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[Bearbeiten | Quelltext bearbeiten]

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).