PIC18LF452 USART ett rent elände att få igång - några id

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
spaderkung
Inlägg: 138
Blev medlem: 12 maj 2007, 11:24:24
Ort: Sjöbo

Inlägg av spaderkung »

Några småsaker bara.
Är det en felskrivning att det står 245 i rubriken?
Använder själv TinyPicBL med PIC18 och enda ändring att BR är satt till 19200.
För snabbare programmering under test av BL - sätt "MaxFlash" till ett lagom lågt värde så att den inte hamanr sist i minnet.
Användarvisningsbild
Illuwatar
Inlägg: 2256
Blev medlem: 10 november 2003, 14:44:27
Skype: illuwatar70
Ort: Haninge
Kontakt:

Inlägg av Illuwatar »

Såg det nu också, så rubriken är ändrad 452 skall det vara. 252 och 452 borde vara lika så när på lite fler portar på 452.
Användarvisningsbild
Tripp
Inlägg: 397
Blev medlem: 29 januari 2004, 08:14:39
Ort: Tullinge
Kontakt:

Inlägg av Tripp »

Hej du kan prova dessa .hex filer, jag har kört den som är till för 19200 i min simulator och den funkar.

Den andra borde funka.

http://www.tunetech.se/hex/18F452_USART ... _20Mhz.HEX
http://www.tunetech.se/hex/18F452_USART_19200_20Mhz.HEX

/Tripp
dangraf
Inlägg: 530
Blev medlem: 9 juni 2003, 15:30:56
Ort: göteborg

Inlägg av dangraf »

kör du PIC18F452 så skulle du kunna använda VDI funktionen i MPlab för att göra rätt inställningar i dina register.

Tools->Visual Initializer

där får du upp ditt chip och kan dra ut rutor på vad du vill använda. i ditt fall USART. (funkar för andra perferienheter oxå)

I din ruta kan du sedan ställa in baudrate flowcontrol osv (om du ställt in oscillarotn rätt) och därefter trycka

Visual initializer-> code generation

Då genereras alla inställningar automatiskt. Ganska lätt att dubbelkolla med sin egen kod. Om nått inte stämmer kan man ju kolla upp. Antingen har du eller det automatiska programmet gjort fel.

Den genererade koden är ganska rörig, men det går att tyda :-)


Det kanske kan hjälpa till att göra rätt inställning.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

OK. Så om jag har förstått rätt så är det den senaste koden du har modifierat ?

Om man tittar lite i den så ser du att "write" rutinen börjar med en "movwf EECON1".
Om du sedan kollar direkt före "rcall write" så laddas W med ett lämpligt värde för EECON1, "movlw b'10000100'".

Du måste göra på ett liknande sätt (fast med rätt bitar, i denna kod *skrivs* till *EEPROM*, om jag ser rätt, du vill *läsa* från *Flash*,
så det är minst tre bitar som ska vara tvärtom mot denna kod...).

D.v.s att innan du läser med TBL instruktionerna så måste EECON1 sättas korrekt (har jag sagt det förrut ??).

Det är VÄLDIGT förvånande att du inte med ett ord har nämnt EECON1 än !!

Me, om det bara är *USART* du vill testa, varför strula till med med TBL
instruktionerna alls ???

> En instruktion, tar den en klockcykel?

4 clockcykler = 1 instruktionscykel.
1 instruktion = 1 eller 2 instruktionscykel.
Se databladet (tabellen med samanfattningen av instruktionerna) för detaljer.

Så vid 20 Mhz så har du 5 instruktionscykel per mikrosekund. D.v.s 5 enklare instruktioner (de som inte ändrar PC, programräknaren).
Användarvisningsbild
Illuwatar
Inlägg: 2256
Blev medlem: 10 november 2003, 14:44:27
Skype: illuwatar70
Ort: Haninge
Kontakt:

Inlägg av Illuwatar »

Det verkar vara ett jordproblem - jag tog Tripps testfiler och laddade på mitt kort. Samma problem som med mina tills jag drog fram oscilloskopet.

När jag ansluter skopets jordklämma till kortets jord börjar allt bara att fungera. Jag får texten "Minimig" snyggt utskrivet i terminalen. Tar bort klämman - det slutar att fungera.

Kortet körs från en "väggvårta" av switchad typ, så ingen chassijord finns tillgänglig.

Så, problemet har inget med flashminnen att göra, utan det är något relaterat till strömförsörjningen.


Edit: En permanent lösning på problemet är infört - en trådbit på ca 1 cm. Så lång är skillnaden mellan framgång och totalt misslyckande...

Allt detta pga spegelvända symboler från Protel (och en miss i pinheadern).

Så jag körde på TinyBoot, laddade på Tripps testprogram via bootloadern och allt bara fungerade - precis som jag ville. Dags att ge sig på Dennis kod och få ihop resten av bygget.
Skriv svar