Forum: Mikrocontroller und Digitale Elektronik USB Flash Programer für AM29F032 - welcher µC?


von debianer (Gast)


Lesenswert?

Hallo!

Ich bin Student in der Fachrichtung Elektrotechnik /Automation 
(DualHochschule BW). In meiner Projektarbeit entwickele ich einen USB 
Flash Programmer.


Das Flashmodul bestehend aus zwei AM29F032 (4Mx8bit), wobei die 
Adressbuse zusammen geschaltet sind und die Datenbuse parallel liegen 
(also 2x8Bit Datenbus).
Das Modul soll dann über den PC mit Daten gefüllt werden (hex-File). Die 
Übertragungsoftware werde ich auch selbst schreiben (müssen).

Oder gibts handliche(!) Geräte dafür schon fertig?

Ich dachte an einen Controller mit integriertem USB. Momentan tendier 
ich zu einem PIC18F87J50 oder PIC24FJ256xx. Die ARM Controller sind doch 
irgendwie zu "fett" und mich verwirren die zig Varianten. Auch sehe ich 
beim Pic vorteile bei der IDE /Libs oder?

Jetzt die Fragen:
-Bisher hab ich mit AVRs, C167 und 8051 gearbeitet in C und ASM.

-macht es Sinn auf einen 16bit oder gar 32bit Controller zu setzen?

-macht es Sinn z.B. einen PIC18F87J50 mit externem Speicherbus zu 
verwenden? Oder lieber über normale Portpins realisieren.
  ->macht ein Hardware CRC-Gen wie im PIC24F Sinn?

Danke schonmal fürs durchlesen ;)

von Michael U. (amiga)


Lesenswert?

Hallo,

ich habe sowas mal für alte Mainboard-Flashbausteine in einen alten AVR 
8515 gepackt. Daten per serielle (kann man natürlich einen FTDI 
dazuhängen), Überttragung in X-Modem aus einem Terminalprogramm. 
Mini-Commandinterpreter so im Stile alter Debugger ist noch drin.

Am längsten dauert dabei natürlich die Datenübertragung, da würde es 
also schon Sinn machen, auf einen USB-fähigen Controller zu setzen, der 
die Daten auch schnell genug abnehmen kann.

Gegenrechnung, ob die nötige Programmierzeit des Flashs da welchen 
Gewinn bringt, wäre wohl sinnvoll.

Oder Tricky: jeweils im Wechsel Pageweise übertragen, dann kann der 
jeweils andere Programmieren (wenn die Flashs das so hergeben).

Gruß aus Berlin
Michael

von debianer (Gast)


Lesenswert?

Vielen Dank erstmal.

So war mein erster Gedanke zur einfachen Realisierung.

Wichtig ist halt, dass die Übertragung sicher funktioniert. Das ganze 
sollte aber trotzdem keine 15min gehen.

Ich versuche trotzdem die Übertragung so schnell wie es geht zu machen, 
vor allem weil ich eben nicht auf einen bestimmten Controller beschränkt 
bin.

von Gruenschnabel (Gast)


Lesenswert?

>Wichtig ist halt, dass die Übertragung sicher funktioniert. Das ganze
>sollte aber trotzdem keine 15min gehen.

Wie oft muß denn der gesamte Bereich umprogrammiert werden? Lohnt sich 
der Entwicklungsaufwand für USB anstatt RS232 zu verwenden?

Mit RS232 und 115kBd erreicht man ca. 8kB/s. Höhere Baudraten verkürzen 
die Zeit. Bei einer RS232 Anbindung würde ein 8-Bitter wohl gut 
ausreichen.

von debianer (Gast)


Lesenswert?

Das weiß ich nicht, aber der Programmer sollte schon so ausgelegt 
werden, dass das gesamte Modul in erträglicher Zeit programmiert werden 
kann. Bei 8MB sind dann halt fast 16min bis das Ding programmiert ist.

Ob sich der Entwicklungsaufwand lohnt weiß ich nicht, weil ich keine 
Erfahrungen mit USB habe.

von teplotaxl (Gast)


Lesenswert?

Nen atmega schafft auch ohne weiteres 1 MBaud.

von Michael U. (amiga)


Lesenswert?

Hallo,

1MBaud über einen FTDI sollte doch gehen, habe ich noch nicht getestet.
Wie gesagt, mal den Programmierzyklus durchforsten, was der hergibt.
Es nutzt doch nichts, wenn Du die Daten in einer Sekunde drüben hast, 
diese mühsam zwischenspeichern mußt und dann die Teile doch 2 Minuten 
zum flashen brauchen.

Ich würde erstmal abschätzen, wieviel Daten rüber müssen, um beide Flash 
mit deren maximaler Geschwindigkeit flashen zu können.

Gruß aus Berlin
Michael

von debianer (Gast)


Lesenswert?

Hallo

der Programmer sollte schon so ausgelegt sein, dass der gesamte 
Flashinhalt zügig programmiert wird.

Die Zugriffszeiten werden mit 75-150ns angegeben wobei ein 
Schreibzugriff 4 Zyklen braucht also 450ns. Was trotzdem recht schnell 
ist.

Ich habe mich noch weiter umgeschaut und bin auf die AVRs mit 
integriertem USB-Controller gestoßen (AT90USBxx). Damit könnte ich in 
bekannten Gefielden bleiben und trotzdem Full-Speed USB nutzen. Ich 
denke der AVR ist dem PIC 8bit überlegen oder?

Was ich vielleicht noch hinzufügen sollte: Wichtig wäre auch die 
langfristige Verfügbarkeit des Controllers / der Architektur. Das Gerät 
soll in der Firma eingesetzt werden.

Interessant wäre auch ein ARM Cortex aber damit hab ich noch nie was 
gemacht und die zig verschiedenen Varianten und Software-Tools. Oder 
gibts da außer Keil noch gute Varianten (darf auch kommerziell sein)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Laut Liste der unterstützten Devices kann das hier

http://www.progshop.com/versand/programmiergeraete/galep/galep4.html

AM29F032 programmieren.

Eine Eigenentwicklung für kommerzielle Nutzung ("in der Firma") kostet 
mit an Wahrscheinlichkeit grenzender Sicherheit mehr als die geforderten 
305 EUR.

von debianer (Gast)


Lesenswert?

danke
... den Galep kenn ich natürlich.
Aber es soll halt etwas mobiles sein, das mit USB auskommt und das hab 
ich bisher noch nicht gefunden.

von Gruenschnabel (Gast)


Lesenswert?

>Aber es soll halt etwas mobiles sein,

Ist er doch. Allerdings muß man für den Batteriebetrieb noch AAA-Zellen 
ergänzen. Irgendwo habe ich die schon einmal im Angebot gesehen .. :-)

von debianer (Gast)


Lesenswert?

Ich bin jetzt auf den AVR32UC3Axxx aufmerksam geworden. Die Controller 
haben ein externes Speicherinterface, womit ich mir das ganze 
bit-gewackle erspare. Aber noch schreckt mich die komplexität der AVR32 
ab.
Kommt man mit 1-2 Monat Einarbeitungszeit hin?

Oder doch lieber PIC18 oder PIC24 ... hat da jemand schon erfahrungen 
bezüglich USB?

von Gruenschnabel (Gast)


Lesenswert?

Wenn ich soetwas machen sollte, würde ich einen H8SX1664 nehmen. 
Geschätzte Entwicklungszeit ca. zwei Tage. Sicher gibt es Leute, die 
schneller sind.

von debianer (Gast)


Lesenswert?

Danke für den Tipp.

Zwei Tage, aber nur wenn man den Controller schon kennt.
Hast du vielleicht sonst nochn Tipp, Eval-Board, Software?

von debianer (Gast)


Lesenswert?

Ist der besonders einfach zu Programmieren? Bezüglich USB oder wie 
kommst du auf 2 Tage?

von Gruenschnabel (Gast)


Lesenswert?

>Bezüglich USB oder wie kommst du auf 2 Tage?

Ganz simpel: ich fange einfach an! Wenn Du Dich nicht entscheiden 
kannst, welche Prozessor Du nehmen willst, kann Dir keiner helfen.
Ebenso wenig weiß hier Irgendjemand, wie lange DU für die Lösung 
brauchen wirst. Nicht einmal Dein Problem ist hier genauer bekannt.

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
Noch kein Account? Hier anmelden.