Forum: Mikrocontroller und Digitale Elektronik USB Mass Storage Software für NXP gesucht


von Schnibbel (Gast)


Lesenswert?

Guten Tag allseits.

Was ist denn aktuell das Mittel der Wahl, wenn man mit einem LPC177x ein 
USB Mass Storage Class Device Full Speed möglichst ohne Lizenzkosten 
implementieren muss?

Bei Rumsuchen hab ich nur uralte NXP Beispiele gefunden

zB
USBHostLite for LPC17xx VBeta 0.01 (Jul 14, 2009) - Attached

auf dieser Seite
https://community.nxp.com/docs/DOC-330850

aber da klappt der Download nicht (mehr?)

Wer hat einen Vorschlag, was zu nehmen ist ?

Danke Vorab !!!

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Schnibbel schrieb:
> USBHostLite

Wie der Name Host schon impliziert ist das nicht das, was Du suchst.

Oder Du hast sehr merkwürdige Vorstellungen davon, was das Wort 
"implementieren" heißt.

Zur Klärung:

Soll Dein LPC177x ein Mass-Storage-Device werden, so daß Du ihn an einen 
PC anschließen kannst, oder willst Du mit Deinem LPC177x ein 
Mass-Storage-Device (wie z.B. einen USB-Stick) ansteuern?

von Schnibbel (Gast)


Lesenswert?

Stimmt, das war in der Tat missverständlich. sry!

gesucht wird, wie im Text beschrieben, Software für ein möglichest 
kostengünstiges Mass Storage DEVICE.

Segger, Keil und Co sind leider zu kostpsielig

von Schnibbel (Gast)


Lesenswert?

hier zum Beispiel

https://community.nxp.com/docs/DOC-330834

steht so nett: (Zitat)

NXP provides complete ready-to-go USB example applications for host and 
device modes that work out of the box on multiple tool chains — all at 
no charge


sehr schön. aber unten sind imo nur käufliche Produkte gelistet ?!?! ;)

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Schnibbel schrieb:
> sehr schön. aber unten sind imo nur käufliche Produkte gelistet ?!?! ;)

Da gab es einen Link unten mit Mass-Storage-Example und wenn man 
draufklickt, landet man hier:

http://www.keil.com/download/docs/307.asp

Da gibt es einen Download-Link und wenn man draufklickt, lädt er ein Zip 
runter.

Vermutlich lässt es sich kostenlos entpacken - das hab ich aber nicht 
getestet.

von Schnibbel (Gast)


Lesenswert?

ähm ja. Das Entpacken wird vermutlich kostenlos sein.

Der Einsatz der Software jedoch sicherlich nicht.
Das wäre extrem ungewöhnlich bei Keil.
Ausserdem sind das afaik ARM7 Devices und nicht M3

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Schnibbel schrieb:
> Der Einsatz der Software jedoch sicherlich nicht.

Hmm, in den Files heißt es:

> Keil extends you a royalty-free right to reproduce
> and distribute executable files created using this software for use
> on Philips LPC2xxx microcontroller devices only. Nothing else gives
> you the right to use this software.

Aber wenn es für ARM7 ist, dann nützt es dir natürlich nichts.

Vorallem Keil ... ?

Muss es ein NXP sein? Darf es ein STM32 sein?

Für letzteres gibt es Libraries, deren Link ich kenne und die sicher 
funktionieren und für Cortex Arm sind.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Naja, klingt sehr seltsam:
1
/*----------------------------------------------------------------------------
2
 *      U S B  -  K e r n e l
3
 *----------------------------------------------------------------------------
4
 *      Name:    USBCORE.C
5
 *      Purpose: USB Core Module
6
 *      Version: V1.10
7
 *----------------------------------------------------------------------------
8
 *      This software is supplied "AS IS" without any warranties, express,
9
 *      implied or statutory, including but not limited to the implied
10
 *      warranties of fitness for purpose, satisfactory quality and
11
 *      noninfringement. Keil extends you a royalty-free right to reproduce
12
 *      and distribute executable files created using this software for use
13
 *      on Philips LPC2xxx microcontroller devices only. Nothing else gives
14
 *      you the right to use this software.
15
 *
16
 *      Copyright (c) 2005-2006 Keil Software.
17
 *---------------------------------------------------------------------------*/

Klingt mir aber eigentlich danach, als dürfte man sie auf LPC2xxx
benutzen und weitergeben.

OK, sehe gerade, dass du einen LPC1xxx hast.  Pech gehabt, denke ich
mal (falls sie nicht zufällig dafür auch etwas haben).

von Jim M. (turboj)


Lesenswert?

Man nehme eine aktuellere Version:
1
/*----------------------------------------------------------------------------
2
 *      U S B  -  K e r n e l
3
 *----------------------------------------------------------------------------
4
 * Name:    usbcore.c
5
 * Purpose: USB Core Module
6
 * Version: V1.20
7
 *----------------------------------------------------------------------------
8
 *      This software is supplied "AS IS" without any warranties, express,
9
 *      implied or statutory, including but not limited to the implied
10
 *      warranties of fitness for purpose, satisfactory quality and
11
 *      noninfringement. Keil extends you a royalty-free right to reproduce
12
 *      and distribute executable files created using this software for use
13
 *      on NXP Semiconductors LPC family microcontroller devices only. Nothing 
14
 *      else gives you the right to use this software.
15
 *
16
 * Copyright (c) 2009 Keil - An ARM Company. All rights reserved.
17
 *----------------------------------------------------------------------------
18
 * History:
19
 *          V1.20 Added vendor specific requests
20
 *                Changed string descriptor handling
21
 *                Reworked Endpoint0
22
 *          V1.00 Initial Version
23
*/

Hier ist das für alle NXP LPC µCs freigegeben.

Das Ding hat übrigens einen Bug im Mass Storage: Bei hoher Interrupt 
Last (und niedriger USB Priorität) kann die State machine in mscuser.c 
durcheinander kommen, weil IN und OUT Interrupts gleichzeitig anstehen 
und dann OUT gewinnt.

Im Beispiel selbst kann das nicht passieren weil der Interrupt Handler 
nicht lang genug ist und es keine weiteren Interrupts mit ausreichen 
hoher Priorität gibt, die den USB Interrupt verzögern können.

Abhilfe: Bulk OUT Endpoint auf höhere Nummer verschieben, in meinem Fall 
war das Nummer 8 Endoint. Bulk IN liegt auf dem Nummer 5 Endpoint.

von Schnibbel (Gast)


Lesenswert?

Herzlichen Dank!

das ist aber nun echt eine Überraschung.
Da kann man mal sehen. Lesen lohnt sich ;)))
(Asche auf mein Haupt)



ich glaube, den USB Core von Keil hab ich noch von einem steinalten HID 
Projekt (mit größerem Budget) in Source herumliegen.
(Bevor Keil auf closed source Libs umgestiegen ist)


Ich glaube, damals hab ich auch an ein paar Stellen Hand anlegen müssen 
;)))


Lustig, dass die das nun so einfach freigeben haben

nochmals:  bedankt !

von Til S. (Firma: SEGGER) (til_s)


Lesenswert?

Schnibbel schrieb:
> Segger, Keil und Co sind leider zu kostpsielig

Wir sind doch nicht kostspielig ;-)
Für was brauchst du das denn? Kommerziell oder privat?
Vielleicht kann man dir ja kostengünstig weiterhelfen.

von Schnibbel (Gast)


Lesenswert?

Jim,

bist Du bitte so nett und nennst mir den Pfad zu den vor Dir angegebenen 
neueren Version? Ich bin blind oder zu blöd. (oder beides)

DANKE !!!


im übrigen für NXP vielleicht auch denkbar:

deren USB Device ROM Stack soll auch für die Größeren Controller auch in 
Source verfügbar sein. Den hab ich allerdings noch nicht als "richtiges" 
Paket gefunden, nur als verlinkte Listingdateien hier

http://docs.lpcware.com/usbromlib/v1.0/index.html

-> die einzelnen Dateien dann entsprechend unter "File List"

von Johannes S. (Gast)


Lesenswert?


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.