Forum: Mikrocontroller und Digitale Elektronik pic harmony USB mal wieder


von A. S. (rava)


Lesenswert?

Hi,

Ich hatte bis vor Kurzem noch etwas Hektik, als es in einem anderen 
Projekt gebrannt hat. Aber jetzt sitze ich wieder an meinem PIC USB 
Device, bei dem ich mit 0 Vorwissen über USB mal für den Lerneffekt ein 
kleines HID implementieren möchte.
Wegen des Umfangs von USB kämpfe ich aber schon mit den Basics.

Hier mein Vorgehen
- Ich arbeite zunächst mit dem PIC32MX220F032B
- Als Framework dient die Harmony Library in v101
- ich benutze außer MPLAB X keine Tools
- jedes nötige file wird einzeln ins Projekt gezogen, anders komm ich 
nicht tief genug in das Thema rein

Aktuell stehe ich ganz am Anfang. Ich habe ein Demoprojekt aufgesetzt 
und die ersten Dateien zusammengeflickt. Mein PIC32 läuft auf dem 
Breadboard mit externem Oszillator und kann eine LED blinken lassen - 
das ganze in der Softwarearchitektur der Harmony Library.


So weit so gut. Jetzt geht's also ans USB.
Anders als bei clk, tmr o.Ä. gibt's in der Library bei USB sowohl einen 
"driver" als auch ein "peripheral" part. Beides wird in der Doku 
getrennt beschrieben. Der "peripheral"-part scheint deutlich 
umfangreicher zu sein und sich auch mit verschiedenen 
Übertragungsgeschwindigkeiten auseinanderzusetzen.

Wie ist denn das gemeint? Arbeite ich mit beiden Paketen? Oder genügt 
eines? Oder führt der "peripheral"-Kram eine zusätzliche 
Abstraktionsebene zum "driver" ein? Muss ich den driver dann gar nicht 
mehr benutzen, wenn ich "peripheral" verwende?
Abhänigkeiten zwischen beiden Paketen sind, so wie ich das mit F3 
beurteilen kann, keine dokumentiert.

Mein Vorgehen wäre jetzt, erstmal mit dem driver anzufangen, die ganze 
Doku zu lesen und zu sehen, wie weit ich komme.

Oder kann ich das Ganze irgendwie beschleunigen?

von Pit (Gast)


Lesenswert?

A. S. schrieb:
> Oder kann ich das Ganze irgendwie beschleunigen?

Indem Du eine lauffähige Demo verwendest und versuchst diese 
nachzuvollziehen.

A. S. schrieb:
> - jedes nötige file wird einzeln ins Projekt gezogen, anders komm ich
> nicht tief genug in das Thema rein

Das ist auch keine gute Idee. Bei einer Lib sind meist Abhängigkeiten 
unter den einzelnen Dateien vorhanden, und da ist es wichtig, dass die 
Dateipfade stimmen.

von Daniel R. (daro6)


Lesenswert?

Pit schrieb
> Das ist auch keine gute Idee. Bei einer Lib sind meist Abhängigkeiten
> unter den einzelnen Dateien vorhanden, und da ist es wichtig, dass die
> Dateipfade stimmen.

Das stimmt. Am beste erstmal die Beispiele direkt in dem Beispiel-Pfad 
öffnen, sonst stimmen die ganzen Abhängigkeiten mehr.

Gruß,
Daniel

von A. S. (rava)


Lesenswert?

Pit schrieb:
> Indem Du eine lauffähige Demo verwendest und versuchst diese
> nachzuvollziehen.

bin heute fertig geworden und habe den Code des hid_basic Beispiels 
soweit ungemodelt, dass er auf meinem PIC theoretisch laufen müsste. 
Leider gibt's mit dem gratis O1 nur code, der nicht in die 32kB Flash 
passt. Für einen 64kB PIC könnte man das Projekt reinkompilieren.
Das fertige hex file lässt etwa 25kB Daten vermuten, die da verteilt 
werden müssten. Keine Ahnung, wie weit es also. fehlt Meldungen bekomme 
ich etwa für 25 object files:
>_udivdi3.o: Link Error: Could not allocate section .text, size = 1088
> bytes, attributes = code
> build/default/production/app/app.o: Link Error: Could not allocate
> section .text, size = 1068 bytes, attributes = code
> fpmod32.o: Link Error: Could not allocate section .text, size = 988
> bytes, attributes = code
>
> ...

So richtig glücklich bin ich nicht. Ich weiß noch nichtmal, ob der Code 
überhaupt noch funktionieren würde, denn immerhin habe ich schon einiges 
geändert. Und jetzt überlege ich schon schon, anzufangen, ihn ungetestet 
noch weiter herunterzukürzen.


Ich fürchte, das führt mittelfristig auch nur zu Frust!

von Frank K. (fchk)


Lesenswert?

Dann tausche Deinen PIC gegen einen PIC32MX250F128B oder 
PIC32MX270F256B.

Wo ist das Problem?

fchk

von vloki (Gast)


Angehängte Dateien:

Lesenswert?

A. S. schrieb:
> Leider gibt's mit dem gratis O1 nur code, der nicht in die 32kB Flash
> passt. Für einen 64kB PIC könnte man das Projekt reinkompilieren.
> Das fertige hex file lässt etwa 25kB Daten vermuten, die da verteilt
> werden müssten.

Brauchst du überhapt einen PIC32 und Harmony ?
Mit der MLA passt die HID-Demo locker in den kleinen PIC18F14k50
oder einen 16f...

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.