1Mhz klocka

Övriga diskussioner relaterade till komponenter. Exempelvis radiorör, A/D, kontaktdon eller sensorer.
Användarvisningsbild
jack
EF Sponsor
Inlägg: 2059
Blev medlem: 5 oktober 2004, 17:32:27

1Mhz klocka

Inlägg av jack »

Tänkte precis börja leka med en MOS6581, när jag kommer på att den behöver en 1Mhz klocka. Har dock ingen hemma. Kan jag ta någon liten PIC och fixa det med? Typ en 12F629? Hur fixar jag korrekt timing? Jag har varken frekvensräknare eller oscilloskop :)

Tacksam för svar.

//jack
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43179
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Inlägg av sodjan »

Om du tar en 12F629 (eller 675), konfigurerar för intosc och int-mclr med osc-out på GP4 (om jag inte minns fel), så kommer du att få en 1 Mhz oscillator +/- 1-2 %. PIC'en behöver inget annat än 5V och jord. Du behöver alltså inget "program" i den.

Du kan göra samma sak, men hänga på en kristall för bättre noggramhet, men det blir inte lika "slimmat"... :-)

EDIT : Vad är MOS-vad-det-nu-var-det-hette... (tidigare inlägg syns inte i edit-mode...)
Användarvisningsbild
jack
EF Sponsor
Inlägg: 2059
Blev medlem: 5 oktober 2004, 17:32:27

Inlägg av jack »

Tack för svaret. Det låter perfekt. Ska testa sen.

MOS6581 är synthchippet från C64:an. Håller på att göra diverse desperata försök att få ihop en SID-synth, trots min okunskap.
Användarvisningsbild
jack
EF Sponsor
Inlägg: 2059
Blev medlem: 5 oktober 2004, 17:32:27

Inlägg av jack »

Satan.. Är verkligen inte kompis med min nya kompilator. Om någon känner för att göra mig en mycket stor tjänst så får ni gärna skicka över en HEX med det som Sodjan beskriver, för 12F629. Så vet jag att det funkar allafall. För förtillfället känns det som jag har så många felkällor att jag lika gärna kan gå och lägga mig.
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Inlägg av EagleSpirit »

Vet inte vad du har för programmeringsprogram men kör igång det och sen ställer du in configureringsbitarna där. Brukar gå i de flesta windowsbaserade programmerarna iaf.

Jag tror det är det enda som behövs för att den ska göra som du vill.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43179
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Inlägg av sodjan »

Enklast är kanske att skapa ett tomt MPLAB projekt, lägg in en __CONFIG sats och eventuellt en enkel loop på adress h'0000'.

Behövs ingen "kompilator" för detta.
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Inlägg av EagleSpirit »

Det behövs väl en kompilator om du ska göra en loop? MPLAB har ju inbyggd kompilator.

Men att ställa configbitar tror jag att man bara behöver programmerare.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43179
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Inlägg av sodjan »

> Det behövs väl en kompilator om du ska göra en loop?

Nej.

> MPLAB har ju inbyggd kompilator.

Nej, en assembler.

> Men att ställa configbitar tror jag att man bara behöver programmerare.

Beror på programmeringsprogrammet (alltså programmet som "styr" programmeriaren). Många tror att detta program behöver en massa finesser, när det enda den skall göra är att överföra en HEX fil till en processor. Config bitarna sätts i källkoden, det är det enda säkra sättet att bevara inställningarna på.

Men, just i *detta* fall, kan man väll tumma lite på det... :-)
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Inlägg av EagleSpirit »

Hur gör du en loop utan kompilator? Dvs, hur laddar du över det du skrivit till PICen?

Kallas det inte kompilator om den gör om assemblerkod till maskinkod? Gäller det bara högnivåspråk?

Såklart det beror på programmeraren, men som sagt, de flesta windowsbaserade programmerare jag sett har möjlighet till att ställa config-bitarna. WinPIC t.ex.
danei
EF Sponsor
Inlägg: 26434
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

Inlägg av danei »

assembler är samma som maskinkoden. bara lite mer lättläst.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43179
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Inlägg av sodjan »

En assembler översätter assemblerkod till maskinkod.

En kompilator översätter ett högnivåspråk (C, Pascal, Basic, whatever) till assembler. Sedan anropar kompilatorn en assembler för att skapa maskinkoden (HEX-filen). Detta steg ser man vanligtsvis inte...

> assembler är samma som maskinkoden. bara lite mer lättläst.

Oerhört förenklat. MPASM har nog minst lika många "egna" direktiv och andra finesser, som det finns rena PIC-instruktioner. Så assemblern är i princip det samma som maskinkoden, fast även mycket mer. Det är i princip ett eget "språk" med macros, IF konstruktioner, DEFINE/IFDEF, beräkningsmöjligheter m.m, m.m.

Så,

> Hur gör du en loop utan kompilator?

I assembler:

loop
goto loop

> Dvs, hur laddar du över det du skrivit till PICen?

"Dvs" ? Det är en helt annan fråga och har igentligen inget med valet mellan assembler eller kompilator att göra.
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Inlägg av EagleSpirit »

Hehe, den där första frågan blev lite fel. Vet inte själv hur jag menade.

Nu förstår jag skillnaden.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43179
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Inlägg av sodjan »

Helt OK ! :-)

Lovar inget, men om jag hinner i morgon, skall jag prova att fixa en "1 Mhz oscillator" m.h.a en 12F629...
Användarvisningsbild
jack
EF Sponsor
Inlägg: 2059
Blev medlem: 5 oktober 2004, 17:32:27

Inlägg av jack »

Skulle fortfarande behöva detta. Så om du har tid sodjan så skulle det uppskattas mycket!
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43179
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Inlägg av sodjan »

Har lagt in följande i en 12F629:

Kod: Markera allt

;   File: 1mhz.asm
;
    list     p=12f629
    #include p12f629.inc

 __config   _cpd_off & _cp_off & _boden_off & _mclre_on & _pwrte_on & _wdt_off & _intrc_osc_clkout

loop  goto loop
	  end
5V -> pinne 1, gnd -> pinne 8, 10 kohm mellan pinne 4 och 5V ger 1.006 Mhz signal på pinne 3...

Mail'a eller PM'a mig en address så får du prova.
Skriv svar