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 !!!
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?
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
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 ?!?! ;)
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.
ä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
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.
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).
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.
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 !
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.
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"
Der LPC177x ist doch ein LPC176x mit ext. Memory und Graphic Controller? Dann müsste der mbed Code laufen: https://docs.mbed.com/docs/mbed-os-api-reference/en/5.1/APIs/interfaces/USBDevice/USBMSD/ https://github.com/ARMmbed/mbed-os/tree/master/features/unsupported/USBDevice/USBMSD https://github.com/ARMmbed/mbed-os/blob/master/features/unsupported/USBDevice/targets/TARGET_NXP/USBHAL_LPC17.cpp
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.