Hallo,
ich beschäftige mich erst seit kurzer Zeit mit Mikrocontrollern und
bisher nur mit AVR (ATmega und ATxmega) Controllern. Für ein aktuelles
Projekt finde ich allerdings keinen µC von Atmel, der alle meine
Anforderungen erfüllt und über das Sortiment der anderen Hersteller habe
ich keinen Überblick.
Gesucht wird ein µC mit mindestens 30 IO Pins, integriertem USB
Controller und am besten 5V Versorgungsspannung oder wenigstens 5V
tolerante Eingänge. Die 5V Geschichte lässt sich leider nicht vermeiden,
da ich mit alter Hardware (Gameboy Cartridge) kommunizieren möchte.
Einigermaßen passen würden die USB fähigen ATmega allerdings sind diese
auch recht teuer. Geschwindigkeit und Speicher werden nur sehr wenig
benötigt (8KB Flash reichen völlig aus). Sehr von Vorteil wäre natürlich
ein vorinstallierter USB Bootloader, damit ich keinen extra Programmer
anschaffen muss. Das Ganze im kleinen TQFP Gehäuse.
Da ich gerade schon am Fragen bin. Weiß jemand ob die Chips, die vor ca.
20-25 Jahren hergestellt wurden, üblicherweise eine Spannung von 3,3V
als High erkennen? Zumindest für den in Gameboy Cartridges verbauten RAM
konnte ich feststellen, dass dieser bereits 2,2V als High erkennt. Für
den verwendeten ROM und Nintendo eigenen Memory Bank Controller konnte
ich leider kein Datenblatt finden.
Alle uC von NXP sind 5V tolerant (die Versorgung ist aber 3.3V). Der
USB-Bootloader läßt den Flash unter Windows/Linux als Memory Stick
erscheinen, worauf man das Binary ziehen kann.
Der billigste: LPC11U12 TQFP48 16K Flash 2 EUR
Renesas hat ein paar aus der M16C Familie mit integriertem USB. Die
koennten auch noch mit 5V laufen und haben natuerlich einen Bootloader.
Vermutlich sogar mehrere.
Olaf
sebi707 schrieb:> integriertem USB Controller und am besten 5V Versorgungsspannung [...]> (8KB Flash reichen völlig aus).
Für USB wird das knapp. Ich würde nix unter 32KB Flash empfehlen, damit
man noch etwas Platz im Flash übrig hat. Die 3,3 Volt werden von
normalem TTL AFAIK sicher als High erkannt.
> Sehr von Vorteil wäre natürlich ein vorinstallierter USB Bootloader
Da würde mir sponten LPC1343 einfallen, gibt es auch preiswert als
LPCExpresso mit Debugger dran.
Nuvoton hat Cortex M0 MCUs im Angebot, die Versorgung mit 5 Volt und USB
direkt unterstützen.
sebi707 schrieb:> Da ich gerade schon am Fragen bin. Weiß jemand ob die Chips, die vor ca.> 20-25 Jahren hergestellt wurden, üblicherweise eine Spannung von 3,3V> als High erkennen? Zumindest für den in Gameboy Cartridges verbauten RAM> konnte ich feststellen, dass dieser bereits 2,2V als High erkennt. Für> den verwendeten ROM und Nintendo eigenen Memory Bank Controller konnte> ich leider kein Datenblatt finden.
Das kommt drauf an. Bei TTL hast Du ab 2.4V high, bei CMOS ist die
Schwelle üblicherweise Vcc/2. Ansonsten nimm 74HCT541 Buffer mit 5V
versorgt, die sind am EIngang 3.3V CMOS kompatibel.
fchk
Ich hab keine Ahnung ob die Chips TTL oder CMOS sind. Ich weiß nur, dass
alle Chips in der Cartridge eine Versorgungsspannung von 5V haben. Das
ich einen 74HCT541 nehmen kann ist mir schon klar allerdings brauch ich
dann 3 Stück davon + irgendwas bidirektionales und dann bin ich schon
~2€ fürs Pegel wandeln los. Ist zwar nur ein Hobby Projekt aber wenn ich
für 2€ einen µC finde, der alles kann was ich benötige dann nehm ich
doch lieber diesen.
Von den bisher genannten Controllern sehen die LPC einigermaßen
Interessant aus. Vor allem der integrierte Bootloader gefällt mir. Wenn
ich für 25€ noch einen Programmer kaufen muss kann ich auch für 8€ beim
Atmel Controller bleiben.
Ja prinzipiell schon allerdings würde ich gerne meine eigene kleine
Platine erstellen. Mir ist gerade auch mal aufgefallen, dass ich die
nötige Anzahl Output Pins auch durch ein Latch/Schieberegister
vergrößern kann. Eventuell bietet sich dann ein ATMEGA16U2 an. Mit ca.
3€ auch noch relativ günstig und ich kann in meiner bekannten Atmel
Umgebung bleiben. Ich muss mir nur mal vorher anschauen ob 16KB Flash
für mein Programm und virtuellen COM Port ausreichen.
Ein Schieberegister hat jedoch entweder Eingänge oder Ausgänge. Du
schrubst: 30 IOs Minimum. Vielleicht solltest du das alles mal etwas
präzisieren. Schieberegister sind mein derzeitiges "Wow"-Bauteil, damit
geht schon eine Menge. Aber nur, wenn man nicht so straffes Timing
braucht (ATmega liefert maximal 8 MHz, wodurch dann am Ende am
Parallelausgang eines Schieberegisters effektiv maximal 500kHz
überbleiben - wenn du die Daten so schnell durchgeschaufelt bekommst
...)
Alternative wäre natürlich noch, ohne Platine selber zu stricken, ein
billiges STM32F103-Minimum-Board zu rund 6 Euro; IOs bis zum Umfallen,
verdammt schnell. Das steuere ich über einen billigen <2Eur
USB-2-RS232-Wandler an, lässt sich darüber programmieren. Vorteil: Man
lernt dazu :) Wahrscheinlich aber völlig überdimensioniert für dein
Projekt.
Von den 30 IOs sind tatsächlich nur 8 bidirektional und der Rest sind
nur Outputs. Das Timing ist ziemlich egal. Die Cartridge wird ohne
Gameboy gelesen/beschrieben, daher kann ich die Geschwindigkeit
vorgeben.
Momentan würde ich ein Latch allerdings einem Schieberegister vorziehen.
Solange /WR oder /RD nicht auf Low sind ist der Cartridge ziemlich egal
was auf dem Adressbus vor sich geht. Wenn man das Latch für die oberen
8Bit des 16Bit Adressbusses benutzt muss man den Wert nur alle 256 Byte
aktualisieren und man spart sich den seriellen Kram mit dem
Schieberegister.
Frank K. schrieb:> Das kommt drauf an. Bei TTL hast Du ab 2.4V high,
Das gilt für den Sender. Der Empfänger sollte ab 2.0V sicher high
erkennen.
Zum Prozessor: eine mögliche Alternative wäre z.B. ein PIC18F4550
Gruß Anja
sebi707 schrieb:> Gesucht wird ein µC mit mindestens 30 IO Pins, integriertem USB> Controller und am besten 5V Versorgungsspannung oder wenigstens 5V> tolerante Eingänge. Die 5V Geschichte lässt sich leider nicht vermeiden,> da ich mit alter Hardware (Gameboy Cartridge) kommunizieren möchte.> Einigermaßen passen würden die USB fähigen ATmega allerdings sind diese> auch recht teuer. Geschwindigkeit und Speicher werden nur sehr wenig> benötigt (8KB Flash reichen völlig aus). Sehr von Vorteil wäre natürlich> ein vorinstallierter USB Bootloader, damit ich keinen extra Programmer> anschaffen muss. Das Ganze im kleinen TQFP Gehäuse.
SiLabs SiM3U
5V -> 3.3V LDO integriert, kein externer Quarz/Takt für USB nötig, bis
zu 12 x 5V tolerante Eingänge und zusätzlich ein Port der mit bis zu 6V
laufen darf und bis zu 300 mA sink bzw. 150 mA source schafft...
http://www.silabs.com/products/mcu/usb/Pages/SiM3U1xx.aspx
Ansonsten diverse PSoC5LP von Cypress, da kann pro Port die IO-Spannung
zw. 1.2V und 5.5V eingestellt werden