Sida 2 av 2
Postat: 11 oktober 2007, 18:13:36
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.
Postat: 11 oktober 2007, 18:35:00
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.
Postat: 11 oktober 2007, 19:27:17
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
Postat: 11 oktober 2007, 20:00:06
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.
Postat: 11 oktober 2007, 21:20:41
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).
Postat: 12 oktober 2007, 09:07:48
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.