Sida 1 av 1

Programmera PIC12F615 med MAX232 och labplatta?

Postat: 25 mars 2008, 10:05:46
av mri
Jag har hittills använt Renesas R8C/13 till mina MCU projekt, men det blir overkill och för bökigt att sätta in en sån i nästa projekt. Jag har sneglat lite på PIC12F615 och undrar hur den skall programmeras. I hårdvaruväg, klarar jag mig med en Windowsmaskin --> Serieport --> MAX232 --> PIC12F615 + 12V och 5V spänningskälla (sådär i princip) för att programmera? Eller måste det till mer komplicerad styrning av ICSPDAT pinnen?

Postat: 25 mars 2008, 10:57:25
av sodjan
Styrningen måste ske enligt "Programming Specification" som finns (ska finnas)
på varje krets produktsida hos www.microchip.com. Jag skulle inte säga att
det är ett dokument som man dyker ner i som PIC-nybörjare. Och
generellt sätt så är det väldigt få förrutom de som konstruerar
programmerare som har anledning att läsa det.

Den *kan* fungera att köra "pin-wigglers" som styr PGC/PGD direkt,
med de flesta seriösa programmerare har en lokal processor.

Postat: 25 mars 2008, 11:42:11
av Marta
12F615 har, vad jag har kunnat hitta i flashningsdatabladet vid en snabbgenomläsning, ingen funktion för intern timing.

Detta betyder att Du måste kunna shifta ut ett kommando, vänta en exakt tid och sedan skifta ut ett till. Det är inte enkla pulser som en monovippa kan klara, utan riktiga kommandosekvenser som skall ut.

Kan Du åstadkomma detta under Windows så går det, om inte så är det nog en WISP som gäller.

Edit: Tiden det skall väntas är 3 millisekunder. Denna är angiven som minimitid med ett streck i de andra kolumnerna. Om detta innebär man kan vänta längre utan att skada kretsen tycks inte framgå av databladet.

Postat: 25 mars 2008, 12:18:54
av mri
Jo jag har skummat igenom Memory Programming Specification men kunde inte avgöra om ICSPDAT pinnen är multiplexerad IN och UT under programmering, eller om den är enbart IN. Om den är multiplexerad går den ju inte att driva med en MAX232 rakt av.

Jag har inte för avsikt att börja bygga nån egen SW/HW lösning för att programmera, utan undrade bara om programmering låter sig enkelt göras på en "labbplatta" med nån färdig SW, istället för att skaffa Wisp eller någon annan lösning. Min applikation är så simpel att det skulle kännas naturligt att koppla upp programmeraren på en labbplatta...

Marta: Inte borde väl timing (i princip) vara nåt problem när kretsen har en dedikerad klockpinne...?

Postat: 25 mars 2008, 12:28:00
av bos
>Min applikation är så simpel att det skulle kännas naturligt att koppla upp programmeraren på en labbplatta...

Det går alldeles utmärkt med en Wisp. Du får nämligen med en sån här i byggsatsen:

Bild

Postat: 25 mars 2008, 17:14:45
av mri
bos: Förvisso :) , men tanken var att bygga själva programmeraren på labbplatta.

Efter att ha studerat Memory Programming Specification lite närmare är nog ICSPDAT pinnen både IN och UT, men det borde ändå fungera med en MAX232 om man kopplar ett motstånd (t.ex. 4k7) mellan MAX232 utgången och ICSPDAT. Då kan ju både PIC och MAX agera utgång utan att kortsluta varandra. Ett antal frågor har dykt upp:

1. Vad finns det för (gratis) programmeringsmjukvara för serie eller parallelporten som skulle fungera med denna form av direkprogrammering?

2. I Memory Programming Specification TABLE 2-1 står det: "Note 1: In the ... PIC12F615 ... , the programming high voltage is internally generated. To activate the Program/Verify mode, voltage of VIHH and a current of IIHH (see Table 7-1) needs to be applied to MCLR input."
Sen I Table 7-1 står det ändå att VIHH skall vara mellan 10 och 13 volt. Så hur är det? Behövs 10-13 volt på MCLR?

3. Fungerar in-cirquit debugging från MPLAB med Wisp, eller måste man skaffa MPLAB ICD2 för att kunna debugga?

Postat: 25 mars 2008, 17:21:45
av Icecap
WISP'en stödjer inte ICD och PICKit2 behöver en speciell header för att köra ICD på den PIC.

Postat: 25 mars 2008, 18:18:09
av thepirateboy
Vad finns det för (gratis) programmeringsmjukvara för serie eller parallelporten som skulle fungera med denna form av direkprogrammering?
WinPic ?

Postat: 25 mars 2008, 20:23:36
av mri
thepirateboy: Tack! Det ser intressant ut.

Postat: 25 mars 2008, 22:55:22
av sodjan
> men tanken var att bygga själva programmeraren på labbplatta.

OK, förstår tanken. Men varför ???
Ska du bara göra ett enda PIC projekt någonsin ?

Postat: 25 mars 2008, 23:49:40
av PHermansson
Kan bara hålla med Sodjan, varför?
Men vissa saker förstår jag mig inte på. Vissa vill bygga en programmerare på ett krångligt sätt, vissa vill bygga en processor av logikkretsar. Någonstans i världen sitter en man och portar kod till den första utgåvan av Linuxkärnan...
Jaja det är mycket man inte förstår. :)

Postat: 26 mars 2008, 08:08:23
av mri
> OK, förstår tanken. Men varför ???

Om en fungerande programmerare är trivialt enkel, då föredrar jag i det här experimentstadiet att bygga den på en labbplatta. En annan orsak är att jag kanske lär mig nåt på kuppen. Hittills har jag inte byggt ett enda elektronikprojekt för produktion eller för att tjäna pengar, utan enbart för att samla på mig kunskap och praktisk erfarenhet.

> Ska du bara göra ett enda PIC projekt någonsin ?

Kanske, kanske inte. Beror på om jag blir förälskad i dehär små PICarna. :)

Postat: 26 mars 2008, 09:22:20
av Icecap
Om du faller för dom (eller någon annan µC) tycker jag att du ska skaffa en riktig programmeringsenhet, det är EXTREMT frustrerande att först strula med programhelvetet som ju ALDRIG gör som det ska i första hugg och SEDAN ska man strula med att få programmet in i kretsen.

Postat: 26 mars 2008, 09:28:20
av mri
Kanske jag är bortskämd med Renesas då? Till den byggde jag en egen programmerare och den har fungerat felfritt från första början. Renesas R8C pratar RS-232 (med TTL nivåer) direkt, behöver ingen högre programmeringsspänning, etc.

Postat: 26 mars 2008, 09:32:02
av Icecap
Ja, det är du! Jag använder själv M16C (tiny) och jag har gjort ett PC-program som programmerar automatisk i "serial mode 2" via ett blygsamt interface (en MAX232 (liknande) + 2 optokopplare).

Men det fungerar ju via den inbyggda bootloader, sånt finns inte i PIC (och många andra µC).