USB och PIC18F2455

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Rick81
Inlägg: 755
Blev medlem: 30 december 2005, 13:07:09

USB och PIC18F2455

Inlägg av Rick81 »

Tänkte jag skulle försöka få igång USB i PIC än en gång men har liksom tidigare kört fast igen.

Jag har tagit exempelkod för USB serialport från
http://www.microchipc.com/sourcecode/#pic18f4550usb

och portat denna till Hitech C (fixat sökvägar) och PIC18F2455.
Kompilering går bra men när jag pluggar in den i datorn står det att "En USB-enhet känns inte igen" och det verkar som PIC slumpmässigt startar om sig. Det jag misstänker är att jag satt några configbitar helt fel. Jag kör PIC på 20 MHz kristall och mina konfigbitar är:

Kod: Markera allt

Address     Value      Category                                         Setting
300000      24         Full-Speed USB Clock Source Selection            Clock src from 96MHz PLL/2
                       CPU System Clock Postscaler                      OSC1/OSC2 Src: /1][96MHz PLL Src: /2]
                       96MHz PLL Prescaler                              Divide by 5 (20 MHz input)
300001      0F         Oscillator                                       HS: HS+PLL, USB-HS
                       Fail-Safe Clock Monitor Enable                   Disabled
                       Internal External Switch Over Mode               Disabled
300002      3F         USB Voltage Regulator                            Enabled
                       Power Up Timer                                   Disabled
                       Brown Out Detect                                 Enabled on hardwate, SBOREN disabled
                       Brown Out Voltage                                2.0V
300003      1E         Watchdog Timer                                   Disabled-Controlled by SWDTEN bit
                       Watchdo Postscaler                               1:32768
300005      83         CCP2 Mux                                         RC1
                       PortB A/D Enable                                 PORTB<4:0> configured as analog inputs on RESET
                       Low Power Timer1 Isc enable                      disabled
                       Master Clear Enable                              MCLR Enabled, RE3 Disabled
300006      81         Stack Overflow Reset                             Enabled
                       Low Voltage Program                              Disabled
Allt annat är Disabled


Om det inte är detta har jag ingen aning var jag ska börja felsöka och är tacksam för ideer. Om någon lyckats använda USB till serie koden från microchipc vore det bra att få veta hur ni gjorde.

Jag postar ingen kod här för att USB blir en för stor mängd kod att visa i en post. Om någon vill se min kod eller kan tänka sig lägga upp den på nätet så övriga på forumet kan ladda ned den, meddela mig så skickar jag kod via mail.
Kaggen
Inlägg: 432
Blev medlem: 29 januari 2005, 03:06:02

Re: USB och PIC18F2455

Inlägg av Kaggen »

Watchdog timern är ju det första man tänker på när det blir "omstarter", men enligt din kod är den disabled verkar det som, om man skall tro kommentaren bakom. Ett annat alternativ är ju strömbegränsningen i USB porten. Du är säker på att din krets inte drar för mycket ström mot vad porten kan leverera?

Felkoppling på experimentplatta/kort/PCB?
Störningar?
Finns avkopplingskondingar?

En annan vanlig orsak är oavslutade subrutiner eller felaktiga goto/gosub/branch över banker (CPUn fortsätter läsa utanför din kod) vilket brukar förr eller senare leda till resetvektorn. Nu programmerar du iofs i C, så det kanske kan uteslutas om du inte kör någon del i assembler också eller råka pilla på fel register av misstag.

Uteslut felkopplingar först. Sedan får du kolla igenom kod med felsökning 1a, dvs kommentera bort så många rutiner du kan och blinka/tänd en diod för att se om den "lever". Får du bort reseten så har du nog kommit närmare lösningen. Du skulle ju kunna ladda in kod som är helt USB-fri och bara testa blinka dioder med den ansluten till USB-porten.

Har också tänkt experimentera med USB så småningom när jag får lite tid över.

EDIT: Du läste nedanståede på sidan du länkade till också? Iofs gamla noteringar men ändå. Finns ju 2 versioner att tanka ner.

"11th Nov 2007 - tried it on Hi-Tech C v9.62, it worked. Had reports that it does not work on Hi-Tech C v9.51.
2nd Feb 2009 - customer got it working with Hi-Tech C v9.51, it worked after some tweaks. Added instructions to v1.10 of the download."
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: USB och PIC18F2455

Inlägg av sodjan »

Kan du få *samma* hårdvaruuppkoppling att fungera
stabilt med någon annan testkod ? D.v.s något litet
testprogram bara för att verifiera hårdvaran...
Rick81
Inlägg: 755
Blev medlem: 30 december 2005, 13:07:09

Re: USB och PIC18F2455

Inlägg av Rick81 »

Hårdvaran fungerar ev med undantag för USB. Jag har blinkat lysdioder i kod jag skrivet själv och det fungerar bra. Jag matade PIC från USB porten så det fungerar som det ska.
Jag har testat att aktivera USB i denna kod och Windows reagerar men känner inte igen enheten.

Det var först när jag portade USB koden och försökt ladda in den som det började strula. Problemet är att det är ofantligt mycket kod för USB och det är svårt att veta vad det är som är fel eftersom debugmöjligheterna är begränsade.


Ingen kod är skriven i assembler.

Jag har letat men inte hittat någon PIC18F2455 .hex fil med USB att ladda in.

Jag använder en gammal MPLab 7.x och gammal Hitech C 8.x så eventuellt kan det ställa till det.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: USB och PIC18F2455

Inlägg av sodjan »

> Jag använder en gammal MPLab 7.x och gammal Hitech C 8.x...

Av vilken orsak ?
Rick81
Inlägg: 755
Blev medlem: 30 december 2005, 13:07:09

Re: USB och PIC18F2455

Inlägg av Rick81 »

Har hållit på mest med STM32 på sistone och sen nu när jag började med PIC igen har jag inte uppdaterat pga jag inte velat krångla med miljöerna.

När jag kollar på
http://www.microchip.com/stellent/idcpl ... e=en542861
ser jag att hitech 9.x i gratisversion inte verkar ha storleksbegränsningar på koden. Vad jag kan se är det bara optimeringar och printf m.m. som skiljer mellan gratis och betalversioner. I tidigare versioner så är det varit låst till typ 1 kB eller något annat helt oanvändbart, framförallt när man ska använda USB.

I så är det bara är att uppgradera.

Är det verkligen så att gratisversionen inte har storleks begränsningar, eller har jag missat något? Jag har väldigt svårt att i så fall förstå varför någon skulle vilja köpa de andra versionerna.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: USB och PIC18F2455

Inlägg av sodjan »

Står det verkligen inte på Microchips sida om HiTech vad som skiljer ?
Det vara märkligt.
Skriv svar