Jag har lite problem att få igång en MC68HC908QY2 från Freescale. Kontrollern sitter på ett experimentkort och skall tickas fram av en extern kristall på 32,768 kHz. Kontrollern går alldeles utmärkt att programmera, men när jag sen ska testa den fungerar den inte.
När jag mäter på osc1- resp osc2-pinnarna (pin 4 resp 5) på kontrollern visar oscilloskopet ingenting. Det verkar alltså som om kristallen inte svänger.
Inte heller när jag ställer in att kontrollerna skall använda sin interna oscillator i config2-registret vill processorn köra.
Så här kopplar jag kristallen till kontrollern:
Kod: Markera allt
__________
5V -|VDD VSS|- GND
I/O -|PTB7 PTB0|- I/O
I/O -|PTB6 PTB1|- I/O
|--------------------------|OSC1 PTA0|- I/O
| ___ ___ | |
|--|___|--|--|___|---------|OSC2 PTA1|- I/O
| 1Mohm | 10Kohm I/O -|PTB5 PTB2|- I/O
|--XSTAL--| I/O -|PTB4 PTB3|- I/O
| | I/O -|PTA3 PTA2|- I/O
=22pF =22pF ------------
|_________|
|
GND
Kod: Markera allt
void init(void){
/*Configuration Registers */
CONFIG1 = 0x39; //COPRS = 0, LVISTOP = 0, LVIRSTD = 1, LVIPWRD = 1, LVI5OR3 = 1, SSREC = 0, STOP = 0, COPD = 1
CONFIG2 = 0x18; //IRQPUD = 0, IRQEN = 0, OSCOPT1 = 1, OSCOPT0 = 1, RSTEN = 0
/*PortA Registers*/
PTA = 0x00; //PortA Output Buffer = 0b00000000 !!!Not in use!!!
DDRA = 0x00; //PortA[5:0] = Input
PTAPUE = 0x0E; //PortA[7:4,0] = Pull-Up Disabled, PortA[3:1] (BTN2, BTN1, BTN0)= Pull-Up Enabled
/*PortB Registers*/
PTB = 0x00; //PortB Output Buffer = 0b00000000
DDRB = 0x80; //PortB[7:0] = Input
PTBPUE = 0x00; //PortB[7:0] = Pull-Up Disabled !!!Not in use!!!
/*Keyboard Interrupt Registers*/
KBSCR = 0x02; //ACKK = 0, IMASKK = 1, MODEK = 0
KBIER = 0x0E; //PortA[7:4,0] = KeyB Interrupt Disabled, PortA[3:1] (BTN2, BTN1, BTN0,)= KeyB Interrupt Enabled
KBSCR = 0x06; //ACKK = 1, IMASKK = 1, MODEK = 0
KBSCR = 0x00; //ACKK = 0, IMASKK = 0, MODEK = 0
/*External Clock Register*/
OSCSTAT = 0x00; //ECGON = 0, ECGST = 0;
/*A/D Converter Registers*/
ADSCR = 0x60; //A/D Interrupt = Enabled, A/D Continuous Conversion = Enabled, A/D Channel = 0
ADR = 0x00; //A/D Data register = 0b00000000
ADICLK = 0x00; //A/D Clock = Bus clock
}
Säg till om ni vill ha mer information.
Det skulle vara jättebra om jag kunde få lite hjälp här. Det driver mig till vansinne att den inte vill starta.
Tack
//Roger