Få en PIC18F1320 att snurra

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

För att undvika mer gissningslek så vore "hela bilden" bra att ha.
T.ex en komplett CONFIG inställning. Och hur den är inkopplad.
Och själva "bränningen" går bra utan fel ?
Lägger man inte CONFIG inställningarna i källkoden ? Eller kan kan inte det ?
Och fixa konfigen av porten, d.v.s de analoga bitarna. OK, behöver kanske
inte vara orsaken, men i alla fall... :-)
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Inlägg av ankan »

Okey här kommer lite mer info... Kör allt på en PIC18F1320..

Hämtade Configurationen med Microchips IDE:
Bild

Koden ser ut så här:

Kod: Markera allt

void main() {
  ADCON1 = 0xFF;
  TRISB = 0;           // PORTB is output
  TRISA = 0;           // PORTB is output
  do {
    PORTB = 0xFF;      // Turn ON diodes on PORTB
    PORTA = 0xFF;      // Turn ON diodes on PORTB
    Delay_ms(1000);    // 1 second delay
    PORTB = 0;         // Turn OFF diodes on PORTB
    PORTA = 0;      // Turn ON diodes on PORTB
    Delay_ms(1000);    // 1 second delay
  } while(1);          // endless loop
}//~!
Har satt lysdioden på RB0. Dioden är sedan kopplad till jord via 100 ohm.
Kristall är kopplad mellan OSC1 och OSC2. Kondingar på 15pF är kopplad mellan jord och respektive ben på kristallen.
Kristallen är på 20 Mhz.
Har avstörningskonding på 100nF mellan jord och +5 så nära PICen som möjligt.

Så vad kan vara fel? Det händer inget och jag har satt lysdioden för att testa de andra benen på PICen utan framgång. Och ja, lysdioden fungerar, har testat för säkerhetsskull.
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Inlägg av ankan »

Programmeringen går utmärkt med wisp628.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

OK, ser ju OK ut...

> TRISA = 0; // PORTB is output
> PORTA = 0xFF; // Turn ON diodes on PORTB
> PORTA = 0; // Turn ON diodes on PORTB

Felaktiga kommenterar är värre än inga kommenterar alls!
Nu vet man inte om det är koden eller kommentarerna som är fel... :-)

> Dioden är sedan kopplad till jord via 100 ohm.

Bör fungera, notera bara att man vanligstvis lägger lydioden (och
igentligen alla typer av "laster") till + och låter PIC pinnen "dra" dom
till jord. En CMOS utgång kan vanligtsvis "draina" högre ström än
vad den kan "sourca". 100 ohm är även lite "onödigt" lite. En LED
ska synas med allt mellan 500 ohm - 1Kohm.

Kondingarna till kristallen *borde* fungera, men prova gärna med
något i stil med 22 pF. Sannolikt inte ditt problem dock...
Jag skulle prova att ställa om till intosc för att utesluta kristallproblem.

> Programmeringen går utmärkt med wisp628.

Ja men då så, då är *jag* nöjd !! :-)
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Inlägg av ankan »

Testar att köra init exempel från datablad + att jag försöker köra interna oscillatorn.

Kod: Markera allt

void main() {
  OSCCON = 0x7F;
  PORTB = 0x00;
  LATB = 0x00;
  ADCON1 = 0x70;
  TRISB = 0xCF;
  while(1) {};
}
Försöker nu alltså köra med interna oscillatorn i 8Mhz. Satte CONFIG1H (300001) till 0xF8 (intern osc med RA6 och RA7 som portar)

Har kopplat dioden till RB5 som ska bli utgång enligt databladet. Den är satt till 0 och har därför satt dioden enligt följande: RB5 - LYSDIOD - MOTSTÅND - +5V.

Hur som helst fungerar det fortfarande inte. :(
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7487
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Inlägg av Marta »

Pröva att sätta andra och tredje raden i den config Du postat som disabled.

Hur hanteras OSCCON? Sköter C om sådana trivlialiteter, eller kan det vara så att den hasar sig fram på 31kHz och därför tycks vara stendöd?
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Inlägg av ankan »

Har provat att disabla "Fail-Safe Clock Monitor" och "Internal External Switch Over" utan framgång.

Har konfat OSCCON till 0x70 för att köra interna oscillatorn nu.

Men fortfarande händer inget,men det går utmärkt att programmera PICen..
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Inlägg av ankan »

Sodjan, jag har testat 22pF också utan skillnad.. Det verkar som att jag inte får den att snurra helt enkelt.. Suck...
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

OK, sannolikt ett skit-fel.
Börja om från början med en ny uppkoppling...
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Inlägg av ankan »

Eller inse att man har programmerat PICen med fel HEX fil hela tiden... SUCK!!

Tack för all hjälp i alla fall.. Skulle varit trevligt omman kunde implementera xwisp2w i IDEn på något sätt eller ha ett grafiskt gränssnitt.

Allt fungerar som det ska nu...
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Skulle varit trevligt omman kunde implementera xwisp2w i IDEn på något sätt eller ha ett grafiskt gränssnitt.

Personligen ser jag inte behovet, men fixa det om du vill.
På vilket sätt hade det hjälp i just *detta* fall?
GUI's är inget som automatiskt hjälper mot helt vanligt slarv...

Om man väljer att redigera sin källkod i något annat verktyg ("editor")
som g.ex UltraEdit32 (som jag har testat) så kan man bygga in macron
som med ett musklick bygger applikationen och anropar XWisp2w i ett svep.
Fungerar aldeles utmärkt...
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Inlägg av ankan »

Det skulle kunna vara alternativet. I mitt fall så var det att jag hade gjort en genväg som tar och bränner ut en viss hex fil. I och med att jag hade definierat hex-filen i genvägen så blev det fel varje gång jag brände.
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Inlägg av v-g »

Jag kör med Total Commanderdär drar man bara upp xwisp2w till ikonraden. Sen ändrar man bara i kommandoraden på ikonen och skriver i tex:"port 1 go". Vips så är det bara att dra och släppa hexfilen på ikonen så "bränns" filen. Att kompilera och bränna tar 10 sekunder ungefär.

Väldigt smidigt om man har många olika filer i diverse kataloger. Sen gör det ju inget att själva programmet är 100 gånger bättre än Utforskaren/Explorer.

Dock hindrar det inte från att dra fel HEXfil och släppa på ikonen vilket har hänt några gånger för mycket :roll:

Har tyvärr inte hittat någon möjlighet att köra tex en .BAT-fil i mplab, det skulle annars vara nice.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7487
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Inlägg av Marta »

Om förutsättningen är att manhänger fast vid sammaprojekt ett tag så går det ju att skapa en ikon vid sidan om som man klickar och därmed flashar programmet. Enda hinder jag kan se är om mplab håller filen öppen av någon anledning så den inte kan accessas.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Det är inte MPLAB som skapar eller öppnar HEX filen, det är antingen
MPASM*.EXE (om man kör absolute mode) eller MPLINK.EXE (om man
kör relocatable mode). Båda körs bara tillfälligt under själva
assembleringen och länkningen. Möjligen om man kör MPSIM, men
jag tror inte att MPSIM använder HEX filen i alla fall.

För mindre tester så har jag bara ett DOS fönster öppen. Sedan
är det bara alt-tab, pil-upp och ENTER så flashas det om.
Skriv svar