Byte av strömförsörjning -> fel på USART [LÖST]
Postat: 16 december 2025, 12:51:47
Jag håller på och prototypar med en PIC16F886 där jag slänger ut debug-info via USART (9600 baud, 8N1). Initieringen ser ut såhär:
Prototypen strömsattes med en 12V väggvårta (ej switchad) till 7805 till Vcc. Funkade hur bra som helst.
Men, nu har jag ändrat strömförsörjningen lite. En switchad väggvårta 24V går till en DC-DC-modul(24V->12V) köpt från Kina, och 12V går den till samma 7805 som tidigare. Modulen är inte perfekt, det är en del PWM-vågor på utgången så jag har filtrerat med en 100uF elyt. Lade även på 47uF på Vcc (utöver 100nF MLCC nära PIC:ens ben).
Trots denna filtrering får jag nu ganska många fel på överföring i USART:
Något med den nya strömförsörjningen får uppenbarligen USART att skicka skräp, men hur och varför? Inget annat i koden märker jag av har några felaktigheter men jag kan inte utesluta att det är fel saker än USART som påverkats. Oscilloskopet visar inget brus på Vcc så jag vet egentligen inte vad det är som orsakar felet.
Hur kan jag felsöka detta?
Edit: rubrik
Kod: Markera allt
void init_uart() {
TXSTA = RCSTA = 0;
SYNC = 0; // asynchronous
SPEN = 1; // enable serial port
TXIE = 0; // no USART-interrupts
TXEN = 1; // enable transmitter
CREN = 1; // enable continus reception
BRGH = 1; // use high baud rate
SPBRG = 51; // 9600 baud @ 8 MHz (page 78)
}Men, nu har jag ändrat strömförsörjningen lite. En switchad väggvårta 24V går till en DC-DC-modul(24V->12V) köpt från Kina, och 12V går den till samma 7805 som tidigare. Modulen är inte perfekt, det är en del PWM-vågor på utgången så jag har filtrerat med en 100uF elyt. Lade även på 47uF på Vcc (utöver 100nF MLCC nära PIC:ens ben).
Trots denna filtrering får jag nu ganska många fel på överföring i USART:
Kod: Markera allt
Firmware running.
Reading EDC 0, value 937
Reading ADC 1, value 932
Reading ADC 2, value 940
Reading ADS 3▒▒▒▒Օ▒940
Reading ADC 4, value 932
Reading ADC 5, value 939
Readin
▒6, value 939
Reqding ADC 7, value 931
Reading$ADC 8, value 935
Reading ADC 9, value 931
Reading ADC 10, value 933
Reading ADC 11, value 934
Current: 950 mA of$1000
Threshold OK
Current sense: 935
Pausing 1 minute.
Reading AD 0, value 940
Reading ADC 1, velue 930
Reading ADC$2, value 937
Reading ADC 3, value 938
Reading ADC 4, valug0936
Reading ADC 5- value 939
Reading ADC 6, value 931
Readi▒g ADC 7, value 939
▒YXV▒▒ADC 8, value 940
Reading ADC 10, value 939
Reading ADC 11, value 935
Current: 951 mA of 1000
Thrushold OK
Current sense: 936
Pausing 1 minute.
Reading▒ADC 0, value 939
Reading ADC 1, value 932
Reading ADC 2, value 931
Reading ADC 7, value 931
Reading ADC 4, value 936
Reading ADC 5, value 930
Reading ADC 6, value 928
Rea▒ing ADC 7, value 933
Reading aDC 8, value 935
Reading ADC 9, value 937
Reading ADK 10, value 939
Reading ADC 11, value 929
Current: 950 mA0of 1000
Thre.▒▒▒▒OK
Current sense: 933
Pausing 1 minute.Hur kan jag felsöka detta?
Edit: rubrik