hallo
ich benütze MPLABX und kenne die Microchip Solution Libraries. leider
ist's so dass, wenn ich die öffne, viele zeilen mit fehlern markiert
sind diese aber trotzdem ohne fehler kompilierbar sind (von dieser
eigenschaft liest man vermehrt auf dem internet). nach 2 abenden den
fehler suchen, zweifle ich nicht mehr an mir sondern am compiler...
könnte mir jemand ein hex-file generieren für HID USB Bootloader für den
PIC24FJ64GB004, wobei der interne RC-clock gebraucht wird? es kann das
bestehende Microchip-projekt verwendet werden, jedoch folgende
config-anpassungen:
ICS_PGx1 -> ICS_PGx3
FNOSC_PRIPLL -> FNOSC_FRCPLL
mit dem hex-file könnte ich wenigstens herausfinden, ob's an MPLABX
liegt oder an meiner hardware.
ps: leider kann ich keinen 8MHz-quarz an den PIC anschliessen um das
'USB Device - HID - HID Bootloader - C30 - PIC24FJ64GB004 PIM.hex' von
Microchip zu testen.
alternativ, wenn jemand sonst eine ahnung hat, woran es liegen könnte,
bin ich nach besagten 2 sinnlosen abenden sehr froh. hier meine configs
womit der PIC auch mit 16MIPS rennt (habe diese configs mit einem
anderen, nicht-USB-programm auf der gleichen hardware überprüft)
zum attachment: MCLR wurde angepasst (nicht so wie in der zeichnung) und
zw. Vbus und GND sind noch 0.3uF
vielen dank schonmal im voraus
So funktioniert das nicht. Du MUSST ZWINGEND einen Quarz als
Taktquelle haben, wenn Du USB benutzen willst. Siehe Datenblatt DS39940D
page 114 Abschnitt 8.5.1 CONSIDERATIONS FOR USB OPERATION:
"When using the USB On-The-Go module in PIC24FJ64GB004 family devices,
users must always observe these rules in configuring the system clock:
• For USB operation, the selected clock source (EC, HS or XT) must meet
the USB clock tolerance requirements.
• The Primary Oscillator/PLL modes are the only oscillator
configurations that permit USB operation. There is no provision to
provide a separate external clock source to the USB module.
• All oscillator modes are available; however, USB operation is not
possible when these modes are selected. They may still be useful in
cases where other power levels of operation are desirable and the USB
module is not needed (e.g., the application is Sleeping and waiting for
bus attachment)."
fchk
hmm, bei mir steht im datenblatt aber:
The USB OTG module offers these features:
[...]
• 0.25% Accuracy using Internal Oscillator – No
External Crystal Required
[...]
und der interne takt stimmt bei mir auf 0.05% genau :-)
und auch bei deinem datenblatt gleich auf der 1. seite:
Universal Serial Bus Features:
[...]
• 0.25% Accuracy using Internal Oscillator – No External
Crystal Required
..soviel ich weiss, musste(!) man bei den älteren PIC18 zwingend einen
quarz gebrauchen
offensichtlich geht's:
http://www.microchip.com/forums/m495325.aspx
auch ineressant die ansicht:
"The suspicion is arising in me that "Primary Oscillator" isn't referred
to POSC (Primary OSCillator), as I first supposed, but to the couple
POSC/FOSC."
das würde auch den plural von "modes are" unterstreichen in "The Primary
Oscillator/PLL modes are the only oscillator configurations that permit
USB operation."
ich habe jetzt mal einen 8MHz + 2x22pF an OSCO/OSCI rangehängt, der PIC
läuft zwar aber ich bin mir nicht sicher, ob die peripherie, die mit an
diesen pins hängen zu fest stören. ich werde morgen mal einen neuen PIC
einsetzen (der jetzt hat mit MCLR sowieso eine macke) und dann auch die
leiterbahnen zur peripherie auftrennen. das muss ich aber im geschäft
machen.
edit: sowohl mit mit internem als auch quarz-takt, melded Windows
"unbekanntes gerät"
edit 2: soeben im datenblatt gefunden "Because of USB frequency accuracy
requirements, the use of the FRCPLL system clock configuration is not
recommended for USB operations." und "Due to specified FRC accuracy, the
FRC Oscillator modes may not meet the minimum frequency accuracy
requirements for serial communications (such as UART and USB). "
naja, "recommended" heisst nicht, dass es nicht geht ;-)
Low Speed USB sollte gehen, Full Speed eher nicht.
das würde auch den plural von "modes are" unterstreichen in "The Primary
Oscillator/PLL modes are the only oscillator configurations that permit
USB operation."
Die "modes" sind EC/PLL, HS/PLL und XT/PLL.
fchk
problem gelösst:
- neuer PIC drauf gelötet
- entdeckt, dass die D+-leitung wackelkontakt hatte (jetzt repariert)
- 8MHz-Quarz + Cs rangelötet
dann lief es :-)
weiterer versuch:
- quarz abgelötet und interner FRC angeschlatet (der FRC läuft 5%
daneben!!)
USB-verbindung läuft also auch mit FRC :-)
ob es nun nur am PIC lag und/oder am wackelkontakt, weiss ich nicht. ich
kann nun aber sagen, dass es offensichtlich mit dem internen oscillator
läuft, auch wenn dieser 5%(!) daneben liegt. ich glaube der USB-standard
schreibt 0.5% vor (bin mir aber nicht sicher).
Master Snowman schrieb:> ich glaube der USB-standard> schreibt 0.5% vor (bin mir aber nicht sicher).
Da schauen wir doch einfach mal in den USB 1.1 Standard rein. Der sagt
auf Seite 126 unter Abschnitt 7.1.11 "Data Signaling Rate":
"The data-rate tolerance for host, hub, and full-speed functions is
±0.25% (2,500ppm). The accuracy of the Host Controller’s data rate must
be known and controlled to better than ±0.05% (500ppm). [...] The
permitted data-rate tolerance for low-speed functions is 1.5%
(15,000ppm)."
Wenn es bei Dir mit 5% Abweichung funktioniert, hast Du saumäßiges
Glück. In solchen Fällen verweise ich immer auf Loriot und die zufällig
weichen Eier.
fchk
ich habe jetzt gerade die idee gehabt, dass ich den FRC mit dem RTCC
tunen könnte, resp. die tuning-bits nachführe. somit ist gewährleistet,
dass der PIC genau läuft :-) ...anderseits ist die USB-funktion sowieso
nicht so wichtig, nur als option zum normalen flashen mit dem ICD3.