Ich möchte über den USB port einen spezial flash speicher programmieren und lesen, dazu brauche ich mindestens 24 frei programmierbare IO leitungen die ich aber gerne vom Host PC aus programmieren will. Weil ich mich mit Mikrocontrollern noch nicht so gut aus kenne und ein mikrocontroller mit USB a) ziemlich teuer ist und b) schwer zu programmieren ist (da muss man sich bestimmt erstmal in das USB protokol einarbeiten was für einen Anfänger wohl eher schwer ist). Ich habe die FTDI chips gefunden, da ist mir vor allem dieser hier aufgefallen: http://www.ftdichip.com/Products/FT2232C.htm Läuft dieser chip auf full speed USB? Low speed USB wäre glaube ich zum programmieren eines flash speichers zu langsam, aber 12 mb/s sollte schon genug sein... Als, eigentlich perfekte Lösung für einen Anfänger wie mich, ist mir noch der IO-Warrior40 von www.codemercs.com aufgefallen, aber der chip läuft ja leider nur auf USB low speed und das ist ja noch nicht mal 1.5 mb/s :( Es wäre echt toll wenn ihr gute Lösungsvorschläge hättet, aber es sollte möglichst eine einfache Lösung sein die nicht so viel Programmierung erfordert. Vielen Dank, Ralph
Einen Flash ohne µC zu programmieren dürfte schwer bis unmöglich sein. Es gibt da nämlich auch maximale Zeiten einzuhalten, die nicht überschritten werden dürfen und sowas kannst Du mit den großen Latenzzeiten von USB nicht machen. Erheblich langsamer bist Du ohne µC auf jeden Fall. Peter
Hast Du denn schon mal einen Anhaltspunkt, welchen Durchsatz Du überhaupt benötigst?
hmm, ich hab mir das nicht so schwer vorgestellt :) Also der flash speicher ist nur 512kb groß... Was wäre denn ein guter Mikrocontroller um den flash zu beschreiben? Ich hab gesehen das man USB mit jeden Atmel chip realisieren kann (auch die ohne USB unterstützung) aber da hab ich mir sagen lassen das s das ziemlich lahm, ausserhalb der spezifikationen und wohl auch nicht so einfach zu programmieren ist. Ich hab mir die PICs mit USB angeschaut, die sind echt komisch zu programmieren und auch nur low speed, damit müsste ich mich erstmal eine weile beschäftigen... Die Atmel chips mit USB sind alle in VQFP bauform oder so (schaut halt sehr fummelig aus und den bekomme ich auf meine loch-platine bestimmt nicht rauf ;)). Btw, das lesen/beschreiben des flashs geht per lpt indem man einfach einen 82C55 IO chip benutzt, ich wollte für mein Projekt aber gerne, aus verschiedenen Gründen, USB verwenden.
Das Beschreiben eines Page Mode Flash Speichers geht nur unter echtem DOS am LPT, denn zwischen zwei Bytes dürfen nicht mehr als 100us liegen. USB benötigt 1ms für ein Datenpacket, soviel zu diesem Thema. High Speed USB macht wenig Sinn, denn ein Byte Mode Flash Speicher benötigt ca. 10us um ein Byte zu schreiben. Das macht 100kByte/s bzw. 1MBit. Das schaffen die meisten USB-RS232 Konverter problemlos. Die Daten dann per UART in einen mega8515, der diese dann in den Flash schreibt.
Kann ich den FTDI chip dafür benutzen oder gibt es da einen besseren der vielleicht noch einfacher ist? Brauche ich dann noch das extra eeprom dafür? Ausserdem scheint es den FTDI chip nur als LQFP bauweise zu geben was irgendwie zum experimentieren ziemlich schlecht ist... Sorry das ich soviel frage, aber ich weiss halt nix ;( Danke erstmal für die Antworten, ich wollte eigentlich eine kostengünstige und einfach herzustellende (so das jemand ohne Lötkenntnisse auch damit zurecht kommt) lösung haben aber ich nehme mal an USB ist einfach nicht so billig zu haben ;)
bei chip45 gibt es ein Modul http://www.chip45.com/crumb/crumb128/index.html das hat einen ATMega128 und einen USB2.0 Converter drauf. Die Peripherie Signale können alle an Pfostensteckern mit 2,54 mm Rastermass abgegriffen werden. Im Controller müsste ein Programm laufen das die Daten blockweise puffert und dann dein Flash programmiert. Der Crumb128 kann wg. eingebautem Bootloader direkt über die serielle Schnittstelle programmiert werden, ist ein schickes Teil und nicht zu teuer (ca. 50).
Reichelt: USB-RS232 Konverter für 10, fertig aufgebaut. Ist billiger als der FTDI Chip und macht mindestens 115200Baud, vermutlich noch etwas mehr.
Ich hab mich jetzt hierfür entschieden (war doch irgendwie naheliegend): http://shop.mikrocontroller.net/csc_article_details.php?nPos=0&saArticle[ID]=60&VID=YsgZGC75iZE1MZrr&saSearch[word]=&saSearch[category]=AVR&saSearch[special]= Danke für eure Ideen und Ratschläge, dieses Crumb128 sieht echt gut aus aber der USB controller darauf ist glaube ich in deutschland nur schwer zu bekommen ausserdem ist der SMD bauweise (das ist ganz übel...) und einen Atmega128 brauche ich glaube ich auch nicht... wahrscheinlich tut es schon ein Atmega8 wie es Benedikt vorgeschlagen hat. Den USB-RS232 konverter habe ich nicht gefunden... Der FTDI kann zwar, soweit ich das verstanden habe, nur low-speed USB aber das müsste reichen weil ich ja nur 512kb speicher schreiben will und da ich einen AVR zum schreiben der Daten verwenden will habe ich ja auch keine extra-daten die ich noch schreiben muss wie zB bei einer direkten IO lösung wie sie momentan mit dem LPT port gehandled wird. Ich hoffe ich habe jetzt die richtige entscheidung getroffen :)
Erst mal zur Richtigstellung: - die FTDI-Chips sind Full-Speed Devices - PICs gibt es ebenfalls mit Full-Speed-Brige Ich habe mir mal einen MP3-Player mit einem FT245BM (Yampp 3U) aufgebaut. Die erreichbare Datenübertragungrate liegt bei rund 0,5MB/Sekunde (sonst nur Maus und Kleinkram an USB). Sollte also für dein Vorhaben mehr als ausreichen. MfG
Schau doch mal unter www.ic-board.de. Das Modul ICmega8-8-USB oder ICmega8-16-USB müßte genau Deinen Anfordeungen gerecht werden. Und teuer ist das auch nicht. Microcontroller programmieren und fertig.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.