Ich suche nach einer Möglichkeit, einen USB-Stick zu bauen. Ich habe ein bisschen Erfahrung mit dem Arduino, aber für dieses Projekt scheint das ein bisschen übertrieben zu sein.
Der Schlüssel sollte eine eindeutige Seriennummer (EEPROM?) enthalten, entweder zu programmieren oder werkseitig einzustellen (was einfacher ist). Neben der Seriennummer muss ich 3 LEDs steuern. Jede LED hat 3 Zustände (ein, aus und blinkend).
Ich dachte, ich sollte mit einem CP2102-basierten USB-TTL-UART beginnen .
Für das EEPROM: AT25010B (SPI) oder AT24C01B (I 2 C) oder ein dedizierter Chip
Die Software (Linux) sollte mit dem RS232-Port sprechen und in der Lage sein, die Seriennummer abzurufen und jede LED auf die 3 verschiedenen Zustände einzustellen.
Ich habe über I 2 C und SPI gelesen. Ich glaube, SPI ist einfacher zu steuern, aber Sie brauchen mehr Pins, um es anzuschließen.
Meine Fragen sind:
1) Was wäre das bessere Protokoll I2C oder SPI (in Bezug auf die „einfache“ Implementierung)?
2) Angenommen, Sie können die LEDs und das EEPROM nicht direkt an den UART anschließen. Ich brauche einen Typ PIC, um die Kommunikation zu erleichtern. Was wäre ein PIC dafür?
Ich bin mir nicht sicher, ob es wichtig ist, aber: Sobald ich einen funktionierenden Prototyp habe, muss ich in der Lage sein, ein paar Hundert davon in Serie zu produzieren.
Dazu benötigen Sie kein externes EEPROM. Holen Sie sich stattdessen einen Mikrocontroller mit EEPROM, der kleiner und einfacher zu verwenden ist, da Sie kein SPI- oder I 2 C-Modul mehr benötigen. Außerdem können Sie das EEPROM einfach vom Computer aus programmieren.
Im Grunde möchten Sie also einen PIC oder einen anderen Mikrocontroller mit:
Die meisten Mikrocontroller-Hersteller verfügen über ein Teileauswahl-Tool. Für Mikrochip ist das MAPS . So können Sie nachschlagen, welchen Chip Sie benötigen.
Für diese (sehr minimalistischen) Anforderungen reicht ein sehr kleiner Chip. Schauen Sie sich den PIC12F1822 an : 8 Pins, XLP, wenn Sie das brauchen, 256 Bytes EEPROM usw. Dieser Chip hat gerade genug E / A-Pins für Ihre drei LEDs.
Aus Ihrer Frage geht jedoch hervor, dass Sie ein Anfänger in PIC sind, und dann ist vielleicht ein etwas größerer, aber einfacher zu verbindender Chip ein besserer Start. Dann schauen Sie sich den PIC16F88 an : Er hat alles, was Sie brauchen, und mehr I/O-Pins, für mehr LEDs, falls erforderlich. Der Spaß am 16F88 ist, dass es einfacher zu programmieren ist. Für den 12F1822 haben sie alles in eine kleine Box gesteckt und Sie müssen alles (viel!) korrekt initialisieren, was besonders für einen Anfänger schwierig sein kann. Der 16F88 ist für den Anfang einfacher.
Möglicherweise können Sie mit nur einem FTDI USB-> Serial IC wie dem FT232R davonkommen
Ich habe keinen für eine Anwendung wie diese verwendet, aber das Datenblatt besagt, dass während der Herstellung eine Seriennummer eingebrannt werden kann (z. B. zur Verwendung als Sicherheits-Dongle) und der E / A-Port zum Ansteuern von LEDs konfiguriert werden kann.
Der FTDI-Chip hat den Vorteil, dass die Treiber auf vielen Plattformen verbreitet sind und unterstützt werden.
RedGrittyBrick
Jippie
Passant
Roger