Award BIOS pypsėjimo reiškmės 2025.11.06 at 14:49

Paimta iš Award BIOS beep and POST codes list – Blog – The Retro Web:

The original list from bioscentral.com seems to have gone down as of January 2024, so we’ve recompiled that list down below.

 

Last updated: 21st Jan 2024

 

Beep codes

Beeps Error Message Description
1long, 2 short Video adapter error Either video adapter is bad or is not seated properly. Also, check to ensure the monitor cable is connected properly.
Repeating (endless loop) Memory error Check for improperly seated or missing memory.
1long, 3short No video card or bad video RAM Reseat or replace the video card.
High frequency beeeps while running Overheated CPU Check the CPU fan for proper operation. Check the case for proper air flow.
Repeating High/Low CPU Either the CPU is not seated properly or the CPU is damaged. May also be due to excess heat. Check the CPU fan or BIOS settings for proper fan speed.

 

POST codes

 

Original XT version

Code Description
03 Flag resister test
06 CPU register test
09 System hardware initialization
0C BIOS checksum
0F DMA page register initialization
12 Test DMA address and count registers
15 DMA initialization
18 Timer test
1B Timer initialization
1E Start RAM initialization
21 Test base 64K of RAM
24 Setup init. and temp stack
27 Initialize PIC
2A Interrupt mask register test
2D Hot interrupt test
30 V40 DMA if present
33 Verify system clock initialization
36 Keyboard test
39 Setup interrupt table
3C Read system configuration switches
3F Video test
42 Serial port determination
45 Parallel port determination
48 Game port determination
4B Copyright message display
4E Calculation of CPU speed
54 Test of system memory
55 Floppy drive test
57 System initialized before boot
5A Call to Int 19

 

XT version 3.1

Code Description
01 Processor test fail; Processor status verification #1
02 Type of POST/keyboard buffer; Failed if the keyboard interface buffer is filled with data
06 Initialize 6845 video controller, 8237 DMA controller, 8259 PIC, 8253 timer channel channel 1 initialized; Reset math coprocessor; Disable color and mono video, parity circuits and DMA chips; Clear DMA chips and page registers
07 Process registers except SS, SP, BP with data patterns 00 and FF; Processor status verification #2
09 ROM checksum for 32K tested
0A Initialize the 6845 video controller
15 Test first 64K of system memory
16 Set up interrupt table in first 64K
17 Set up video I/O operations
18 Test video memory
19 8259 mask bits-channel 1
1A 8259 mask bits-channel 2
1D Setup configuration byte from CMOS
1E Size memory and compare with CMOS
1F Test base memory; Test found system memory
20 Test stuck 8259’s Interrupt bits
21 Test stuck NMI parity I/O bits
22 8259 Interrupt functionality tested
2A Keyboard initialized
2B Floppy dive controller and drive initialized
2C Initialize COM ports
2D Initialize LPT ports
2F Initialize math coprocessor
31 Initialize option ROM’s
FF Int. 19 boot attempt

 

Version 3.3

23h – 3.3 version and above means Protected Mode testing.

Code Description
01-05 Keyboard controller 8042 tested
06 On-board LSI initialized
07 CPU flags tested
08 Calculate CMOS checksum
09 Initialize the 8254 PIT
0A 8254 PIC tested
0B DMA controller tested
0C 8259 PIC initialized
0D 8259 PIC tested
0E ROM BIOS checksum tested
0F Extended CMOS tested
10 8259 PIC tested
11 8259 PIC tested
12 8259 PIC tested
13 8259 PIC tested
14 8259 PIC tested
15 First 64K RAM tested
16 Interrupt vector tables initialized
17 Video initialization
18 Video memory tested
19 Interrupt line mask 8259 PIC tested
1A Interrupt line mask 8259 PIC tested
1B Battery good
1C CMOS checksum verified
1D CMOS chip/RTC verified
1E Memory size checked
1F Memory verified
20 DMA initialized
21 PIC initialized
22 PIT initialized
23 Protected Mode testing
24 Extended memory size checked
25 Extended memory tested
26 Protected mode entered
27 Shadow RAM, cache controller initialized
28 Shadow RAM, cache controller tested
29 Reserved
2A Initialize keyboard
2B Floppy drive initialization
2C Serial port initialization
2D Parallel port initialization
2E Hard disk initialization
2F Math coprocessor
30 Reserved
31 Optional ROM’s checked for
FF Boot from Int 19

 

EISA BIOS

Code Description
01 CPU flags
02 CPU registers
03 Initialize DMA, PIC, PIT
04 Memory refresh
05 Keyboard initialization
06 ROM checksum
07 CMOS, battery
08 256K memory
09 Cache
0A Set Interrupt table
0B CMOS checksum
0C Keyboard initialization
0D Video adapter
0E Video memory
0F DMA channel 0
10 DMA channel 1
11 DMA page register
14 Timer chip
15 PIC controller 1
16 PIC controller 0
17 PIC stuck bits
18 PIC maskable IRQ’s
19 NMI bit check
1F CMOS XRAM
20 Slot 0
21 Slot 1
22 Slot 2
23 Slot 3
24 Slot 4
25 Slot 5
26 Slot 6
27 Slot 7
28 Slot 8
29 Slot 9
2A Slot 10
2B Slot 11
2C Slot 12
2D Slot 13
2E Slot 14
2F Slot 15
30 Memory size 256K
31 Memory test over 256K
32 EISA memory
3C CMOS setup
3D Mouse/adapter, CMOS
3E Cache RAM
3F Shadow RAM
41 Floppy drive
42 Hard drive
43 RS232 parallel
45 NPU
47 Speed
4E Manufacturing loop
4F Security
50 CMOS update
51 Enable NMI, cache
52 Adapter ROM’s
53 Set time
60 Virus protection setup
61 Boot speed
62 Numlock setup
63 Boot
B0 NMI in protected
B1 Disable NMI
BE Chipset default initialization
BF Chipset program
C0 Cache on/off
C1 Memory size
C2 Base 256K test
C3 DRAM page select
C4 Video switch
C5 Shadow RAM
C6 Cache program
C8 Speed switch
C9 Shadow RAM
CA OEM chipset
FF Boot

 

Version 4.0

Code Description
01 CPU flags tested; Processor test #1
02 CPU registers tested; Processor test #2; Verify all CPU registers except SS, SP, BP with data patterns 00 and FF
03 Initialize DMA, PIC, PIT; Calculate BIOS EPROM and sign on message checksum (fail if not 0)
04 Memory refresh initialized; Test CMOS RAM interface
05 Keyboard initialization; Initialize NMI, PIE, AIE, UEI, SQWV; Disable video, parity checking and DMA; Math coprocessor reset; Clear all page registers and CMOS RAM shutdown byte; Initialize timers 0, 1, 2 and set EISA timer to a known state; Initialize DMA controllers 0 and 1; Initialize interrupt controllers 0 and 1; Initialize EISA extended registers
06 ROM checksum; Memory refresh tested
07 Low memory setup; Initialize chipset and test the presence of memory; OEM chipset initialization; Lower 256K of memory cleared; Enable parity checking and test parity in lower 256K memory
08 Setup Interrupt vector table; Initialize the first 120 Interrupt vectors with SPURIOUS_INT_HDLR and initialize INT 00-1F according to INT_TBL
09 Cache; CMOS checksum tested
0A Set interrupt table; Initialize keyboard; Detect keyboard controller
0B CMOS checksum; Video interface initialized
0C Keyboard initialization; Video memory tested
0D Video adapter initialized; OEM specific initializations
0E Reserved
0F DMA channel 0 tested with AA, 55, FF, 00 bit patterns
10 DMA channel 1 tested with AA, 55, FF, 00 bit patterns
11 DMA page register tested
12 Reserved
13 Reserved
14 Timer chip 8254 PIT timer 0 counter 2 tested
15 Verify 8259 PIC channel 1
16 Verify 8259 PIC channel 2
17 8259 PIC stuck bits tested; Turn Interrupt bits off and verify no Interrupt mask register is on
18 8259 PIC maskable IRQ’s tested
19 NMI bit check tested and parity I/O checked
1A Reserved
1B Reserved
1C Reserved
1D Reserved
1E Reserved
1F CMOS XRAM checked for
20 Slot 0 EISA initialized and enabled
21 Slot 1 EISA initialized and enabled
22 Slot 2 EISA initialized and enabled
23 Slot 3 EISA initialized and enabled
24 Slot 4 EISA initialized and enabled
25 Slot 5 EISA initialized and enabled
26 Slot 6 EISA initialized and enabled
27 Slot 7 EISA initialized and enabled
28 Slot 8 EISA initialized and enabled
29 Slot 9 EISA initialized and enabled
2A Slot 10 EISA initialized and enabled
2B Slot 11 EISA initialized and enabled
2C Slot 12 EISA initialized and enabled
2D Slot 13 EISA initialized and enabled
2E Slot 14 EISA initialized and enabled
2F Slot 15 EISA initialized and enabled
30 Memory size below 256K
31 Memory test over 256K
32 EISA memory tested found during slot initialization
3C CMOS setup; Enter protected mode
3D Mouse/adapter, CMOS
3E Cache RAM
3F Shadow RAM
41 Initialize floppy drive
42 Initialize hard drive
43 RS232 parallel
45 NPU
47 Speed for boot set
4E Manufacturing loop; display any soft errors
4F Security; ask for password if security is enabled
50 CMOS update
51 Enable NMI, cache memory
52 Adapter ROM’s from C8000h to EFFFFH or F7FFFh initialized
53 Set time value for address 40 of BIOS
60 Virus protection setup
61 Boot speed
62 Numlock setup
63 Boot from Int 19
B0 NMI in protected
B1 Disable NMI
BE Chipset default initialization
BF Chipset program; initialization of system specific chipsets
C0 Cache on/off
C1 Memory size checked
C2 Base 256K tested
C3 DRAM page select tested
C4 Video switch
C5 Shadow RAM tested
C6 Cache program; configure cache memory
C8 Speed switch
C9 Shadow RAM tested
CA OEM chipset initialized
FF Boot from Int 19

 

Award PnP

Code Description
01 Reserved
02 Reserved
03 Initialize EISA registers (EISA BIOS only)
04 Reserved
05 Keyboard controller self-tested
06 Reserved
07 Verify CMOS Read/Write
09 OEM specific initialization; Configure Cyrix CPU register
0A Issue CPU ID instruction; Initialize the first 32 interrupt vectors, initialize Int.’s 33 to 120, power management initialization
0B PnP initialization; verify the RTC time, detect bad battery, read the CMOS data into the BIOS stack area, assign I/O and memory for any PCI devices
0C Initialization of BIOS data area
0D Program some of chipset’s value; Measure the CPU for display, initialize the video
0E Initialize APIC (multiprocessor BIOS only); Show startup screen message
0F DMA channel 0 tested
10 DMA channel 1 tested
11 DMA page registers tested
12 Reserved
13 Reserved
14 Test 8254 0 counter 2
15 Test 8259 interrupt mask bit for channel 1
16 Test 8259 interrupt mask bit for channel 2
17 Reserved
19 Test 8259 functionality
1A Reserved
1B Reserved
1C Reserved
1D Reserved
1E If an EISA NVM
1F-29 Reserved
30 Get size of base and extended memory
31 Test base and extended memory, Test base memory from 256K to 640K , test extended memory above 1MB
32 Test all on-board super I/O ports
33 Reserved
3A Reserved
3B Reserved
3C Set flag to allow CMOS setup utility
3D Install PS/2 mouse
3E Try to turn on level 2
3F Reserved
40 Reserved
41 Initialize floppy drive controller
42 Initialize hard drive controller
43 Initialize serial & parallel ports (PnP BIOS only)
45 Initialize math coprocessor
46-4D Reserved
4E Show all error messages on screen
4F Ask for password, if needed
50 Write all CMOS values located in the BIOS stack back to CMOS
51 Reserved
52 Initialize all ISA ROM’s; PCI initializations (PCI BIOS only), PnP initialization (PnP BIOS Only), setup shadow RAM, initialize power management
53 If not PnP BIOS, initialize ports; Initialize time in BIOS data area
54-5F Reserved
60 Setup virus protection for the boot sector
61 Try to turn on level 2 cache
62 program numlock & typematic speed
63 Boot system via Int 19h
B0 Unexpected interrupt in protected mode
B1 Unclaimed NMI occurred
BE Program defaults into chipset
BF Program remaining chipset values
C0 Init. all standard devices with defaults
C1 Auto detect on-board DRAM & cache
C3 Test first 26K DRAM
C5 Copy ROM BIOS to E000-FFFF
FF System booting

 

Version 4.51PG

Code Description
01 Processor test; Processor status verification
02 Processor test 2; Read/Write and verify all CPU registers
03 Initialize chips; Disable NMI, PIE, AIE, UEI, SQWV. Disable video, parity checking, DMA. Reset math coprocessor. Clear all page registers and CMOS shutdown. Initialize DMA controller 0 and 1. Initialize interrupt controllers 0 and 1.
04 Test memory refresh toggle
05 Blank video, initialize keyboard; Keyboard controller initialization
07 Test CMOS interface and battery
08 Set up low memory; Early chipset initialization, memory presence test, OEM chipset routines, clear low 64K memory, test first 64K memory
09 Early cache initialization; Cyrix CPU specific, CPU and cache initialization
0A Set up interrupt vector table; Initialize first 120 interrupt vectors
0B Test CMOS RAM checksum
0C Initialize keyboard; Detect the type of keyboard controller
0D Initialize video interface; Detect CPU clock, read CMOS location 14h to find the type of video in use, detect and initialize video adapter
0E Test video memory; Write sign-on message to screen, setup shadow RAM
0F Test DMA controller 0; BIOS checksum test, keyboard detect and initialization
10 Test DMA controller 1
11 Test DMA page registers
12-13 Reserved
14 Test timer counter 2
15 Test 8259-1 mask bits
16 Test 8259-2 mask bits
17 Test stuck 8259 interrupt bits; Test stuck key
18 Test 8259 interrupt functionality
19 Test stuck NMI bits (parity I/O check)
1A Benchmark; Display CPU clock
1B-1E Reserved
1F Set EISA mode; If the EISA memory checksum is good then EISA is initialized. If it’s not good then ISA tests and clear EISA mode flag
20 Enable slot 0; System board
21-2F Enable slots 1-15
30 Size base and extended memory; Size the base memory from 256K to 640K and the extended memory above 1MB
31 Test base and extended memory; Test the base memory from 256K to 640K and the extended memory above 1MB using various bit patterns
32 Test EISA extended memory
33-3B Reserved
3C Setup enabled
3D Initialize and install mouse if present
3E Setup cache controller
40 Display virus protect disable or enable
41 Initialize floppy
42 Initialize hard drive
43 Detect & Init. serial & parallel ports
44 Reserved
45 Detect and Init. math coprocessor
46 Reserved
47 Reserved
48-4D Reserved
4E Mfg. POST loop, or display messages
4F Security password
50 Write CMOS; Write CMOS back to RAM and clear screen
51 Pre-boot enable; Enable parity checking, enable NMI, enable cache before boot
52 Initialize option ROM’s; Initialize and ROM’s present at locations C800h to EFFFFh
53 Initialize time value
60 Setup virus protect
61 Set boot speed
62 Setup numlock
63 Boot attempt
B0 Spurious
B1 Unclaimed NMI
BE Chipset default initialization; Program chipset registers and power-on BIOS defaults.
BF Chipset initialization; Reserved
C0 Turn off chipset cache
C1 Memory presence test; OEM specific, test the size of on-board memory
C5 Early shadow; OEM specific, early shadow enable for fast boot
C6 Cache presence test; External cache-size detection test
E1-EF Setup pages
FF Boot loader

 

Version 6.00PG

Code Description
CFh Test CMOS read/write functionality
C0h Early chipset initialization: Disable shadow RAM, L2 cache (socket 7 and below), program basic chipset registers
C1h Detect memory: Auto detection of DRAM size, type and ECC, auto detection of L2 cache (socket 7 and below)
C3h Expand compressed BIOS code to DRAM
C5h Call chipset hook to copy BIOS back to E000 & F000 shadow RAM
01h Expand the Xgroup codes located in physical memory address 1000:0
02h Reserved
03h Initial Superio_Early_Init switch
04h Reserved
05h Blank out screen; Clear CMOS error flag
06h Reserved
07h Clear 8042 interface; Initialize 8042 self test
08h Test special keyboard controller for Winbond 977 series Super I/O chips; Enable keyboard interface
09h Reserved
0Ah Disable PS/2 mouse interface (optional); Auto detect ports for keyboard & mouse followed by a port & interface swap (optional); Reset keyboard for Winbond 977 series Super I/O chips
0Bh Reserved
0Ch Reserved
0Dh Reserved
0Eh Test F000h segment shadow to see whether it is read/write capable or not. If test fails, keep beeping the speaker
0Fh Reserved
10h Auto detect flash type to load appropriate flash read/write codes into the run time area in F000 for ESCD & DMI support
11h Reserved
12h Use walking 1’s algorithm to check out interface in CMOS circuitry. Also set real time clock power status and then check for override
13h Reserved
14h Program chipset default values into chipset. Chipset default values are MODBINable by OEM customers
15h Reserved
16h Initial Early_Init_Onboard_Generator switch
17h Reserved
18h Detect CPU information including brand, SMI type (Cyrix or Intel) and CPU level (586 or 686)
19h Reserved
1Ah Reserved
1Bh Initial interrupts vector table. If no special specified, all H/W interrupts are directed to SPURIOUS_INT_HDLR & S/W interrupts to SPURIOUS_soft_HDLR
1Ch Reserved
1Dh Initial EARLY_PM_INIT switch
1Eh Reserved
1Fh Load keyboard matrix (notebook platform)
20h Reserved
21h HPM initialization (notebook platform)
22h Reserved
23h Check validity of RTC value; Load CMOS settings into BIOS stack. If CMOS checksum fails, use default value instead; Prepare BIOS resource map for PCI & PnP use. If ESCD is valid, take into consideration of the ESCD’s legacy information; Onboard clock generator initialization. Disable respective clock resource to empty PCI & DIMM slots; Early PCI initialization – Enumerate PCI bus number, assign memory & I/O resource, search for a valid VGA device & VGA BIOS, and put it into C000:0
24h Reserved
25h Reserved
26h Reserved
27h Initialize INT 09 buffer
28h Reserved
29h Program CPU internal MTRR (P6 & PII) for 0-640K memory address; Initialize the APIC for Pentium class CPU; Program early chipset according to CMOS setup; Measure CPU speed; Invoke video BIOS
2Ah Reserved
2Bh Reserved
2Ch Reserved
2Dh Initialize multilanguage; Put information on screen display, including Award title, CPU type, CPU speed, etc…
2Eh Reserved
2Fh Reserved
30h Reserved
31h Reserved
32h Reserved
33h Reset keyboard except Winbond 977 series Super I/O chips
34h Reserved
35h Reserved
36h Reserved
37h Reserved
38h Reserved
39h Reserved
3Ah Reserved
3Bh Reserved
3Ch Test 8254
3Dh Reserved
3Eh Test 8259 interrupt mask bits for channel 1
3Fh Reserved
40h Test 9259 interrupt mask bits for channel 2
41h Reserved
42h Reserved
43h Test 8259 functionality
44h Reserved
45h Reserved
46h Reserved
47h Initialize EISA slot
48h Reserved
49h Calculate total memory by testing the last double last word of each 64K page; Program writes allocation for AMD K5 CPU
4Ah Reserved
4Bh Reserved
4Ch Reserved
4Dh Reserved
4Eh Program MTRR of M1 CPU; initialize L2 cache for P6 class CPU & program cacheable range; Initialize the APIC for P6 class CPU; On MP platform, adjust the cacheable range to smaller one in case the cacheable ranges between each CPU are not identical
4Fh reserved
50h Initialize USB
51h Reserved
52h Test all memory (clear all extended memory to 0)
53h Reserved
54h Reserved
55h Display number of processors (multi-processor platform)
56h Reserved
57h Display PnP logo; Early ISA PnP initialization and assign CSN to every ISA PnP device
58h Reserved
59h Initialize the combined Trend Anti-Virus code
5Ah Reserved
5Bh Show message for entering AWDFLASH.EXE from FDD (optional feature)
5Ch Reserved
5Dh Initialize Init_Onboard_Super_IO switch; Initialize Init_Onboard_AUDIO switch
5Eh Reserved
5Fh Reserved
60h Okay to enter Setup utility
61h Reserved
62h Reserved
63h Reserved
64h Reserved
65h Initialize PS/2 mouse
66h Reserved
67h Prepare memory size information for function call: INT 15h ax=E820h
68h Reserved
69h Turn on L2 cache
6Ah Reserved
6Bh Program chipset registers according to items described in Setup & Auto-Configuration table
6Ch Reserved
6Dh Assign resources to all ISA PnP devices; Auto assign ports to onboard COM ports if the corresponding item in Setup is set to „AUTO”
6Eh Reserved
6Fh Initialize floppy controller; Setup floppy related fields in 40:hardware
70h Reserved
71h Reserved
72h Reserved
73h Enter AWDFLASH.EXE if: AWDFLASH.EXE is found in floppy dive and ALT+F2 is pressed
74h Reserved
75h Detect and install all IDE devices: HDD, LS120, ZIP, CDROM…
76h Reserved
77h Detect serial ports and parallel ports
78h Reserved
79h Reserved
7Ah Detect and install coprocessor
7Bh Reserved
7Ch Reserved
7Dh Reserved
7Eh Reserved
7Fh Switch back to text mode if full screen logo is supported: if errors occur, report errors & wait for keys, if no errors occur or F1 key is pressed continue – Clear EPA or customization logo
80h Reserved
81h Reserved
82H Call chipset power management hook: Recover the text fond used by EPA logo (not for full screen logo), If password is set, ask for password
83H Save all data in stack back to CMOS
84h Initialize ISA PnP boot devices
85h Final USB initialization; NET PC: Build SYSID structure; Switch screen back to text mode; Set up ACPI table at top of memory; Invoke ISA adapter ROM’s; Assign IRQ’s to PCI devices; Initialize APM; Clear noise of IRQ’s
86h Reserved
87h Reserved
88h Reserved
89h Reserved
90h Reserved
91h Reserved
92h Reserved
93h Read HDD boot sector information for Trend Anti-Virus code
94h Enable L2 cache; Program boot up speed; Chipset final initialization; Power management final initialization; Clear screen and display summary table; Program K^ write allocation; Program P6 class write combining
95h Program daylight saving; Update keyboard LED and typematic rate
96h Build MP table; Build and update ESCD; Set CMOS century to 20h or 19h; Load CMOS time into DOS timer tick; Build MSIRQ routing table
FFh Boot attempt (INT 19h)

 

Test sequence for versions <= 4.2

Test Description
CPU BIOS sets, verifies and resets the error flags in the CPU. Failure here is normally due to the CPU or system clock
POST Determination BIOS determines whether the motherboard is set for normal operation or a continuous loop of POST. If the POST test is cycled 1-5 times over and over either the jumper for this function is set to burn=in or the circuitry involved has failed
Keyboard Controller BIOS tests the internal operations of the keyboard controller chip (8042). Failure here is normally due to the keyboard chip
Burn In Status 1-5 will repeat if the motherboard is set to burn in. If you haven’t set the motherboard for burn-in mode, there is a short in the circuitry
Initialize Chipset BIOS clears all DMA registers and CMOS status bytes 0E and 0F. BIOS then initializes 8254 timer, Failure of this test is probably due to the timer chip
CPU A bit-pattern is used to verify the functioning of the CPU registers. Failure here is normally down to the CPU or clock chip
RTC BIOS verifies that the real time clock is updating CMOS at normal intervals. Failure is normally the CMOS/RTC or the battery
ROM BIOS Checksum BIOS performs a checksum of itself against a predetermined value that will equal 00. Failure is down to the ROM BIOS
Initialize Video BIOS tests and initializes the video controller. Failure is normally the video controller (6845) or an improper setting of the motherboard or CMOS
PIT BIOS tests the functionality of channels 0, 1, and 2 in sequence. Failure is normally the PIT chip (8254/53)
CMOS Status Walking bit pattern tests CMOS shutdown status byte 0F. Failure normally in CMOS
Extended CMOS BIOS checks for any extended information of the chipset and stores it in the extended RAM area. Failure is normally due to invalid information and can be corrected by setting CMOS defaults. Further failure indicates either the chipset or the CMOS RAM
DMA Channels 0 and 1 are tested together with the page registers of the DMA controller chip (8237). Failure is normally due to the DMA chips
Keyboard The 8042 keyboard controller is tested for functionality and for proper interfacing functions. Failure is normally due to the 8042 chip
Refresh Memory refresh is tested; the standard with walking – bit patterns. Failure is normally the PIT chip in AT’s or the DMA chip in AT’s
Memory The first 64K of memory is tested with walking bit patterns. Failure is normally due to the first bank of ram or a data line
Interrupt Vectors The BIOS interrupt vectors table is loaded to the first bank of RAM. Failure here is not likely since memory in the area has been tested. If failure does occur suspect the BIOS or RTC
Video ROM Video ROM is initialized which performs an internal diagnostic before returning control to the system BIOS. Failure is normally the video adapter or the BIOS
Video Memory This is tested with a bit pattern. This is bypassed if there is a ROM on the video adapter. Failure is normally down to the memory on the adapter
PIC The functionality of the interrupt controller chip(s) is tested (8259). Failure is normally due to the 8259 chips but may be the clock
CMOS Battery BIOS verifies that CMOS byte 0D is set which indicates the CMOS battery power. Suspect the battery first and the CMOS second
CMOS Checksum A checksum is performed on the CMOS. Failure is either incorrect setup, the CMOS chip or battery. If the test is passed, the information is used to configure the system
Determine System Memory Memory up to 640K is addressed in 64K blocks. Failure is normally due to an address line or DMA chip. If all the memory is not found there is a bad RAM chip or address line in the 64K block above the amount found
Memory Test Tests are performed on any memory found and there will normally be a message with the hex address of any failing bit displayed at the end of boot
PIC Further testing is done on the 8259 chips
CPU Protected Mode The processor is placed in protected mode and back into real mode; the 8042 is used for this. In case of failure suspect the 8042, CPU, CMOS, or the BIOS in that order
Determine Extended Memory Memory above 1MB is addressed in 64K blocks. The entire block will be inactive if there is a bad RAM chip on a block
Test Extended Memory Extended memory is tested with a series of patterns. Failure is normally down to a RAM chip, and the hex address of the failed bit should be displayed
Unexpected Exceptions BIOS checks for unexpected exceptions in protected mode. Failure is likely to be a TSR or intermittent RAM failure
Shadow Cache Shadow RAM and cache are activated. Failure may be due to the cache controller or chips. Check the CMOS first for invalid information
8242 Detection BIOS checks for an Intel 8242 keyboard controller and initializes it if found. Failure may be due to an improper jumper setting or the 8242
Initialize Keyboard Failure could be the keyboard or controller
Initialize floppy All those set in the CMOS. Failure could be incorrect CMOS setup or floppy controller or the drive
Detect Serial Ports BIOS searches for and initializes up to four serial ports at 3F8, 2F8, 3E8, and 2E8. Detection failure is normally due to an incorrect jumper setting somewhere or an adapter failure
Detect Parallel Ports BIOS searches for and initializes up to four parallel ports at 378, 278, 3BC, and 2BC. Detection failure is normally due to an incorrect jumper setting somewhere or an adapter failure
Initialize Hard Drive BIOS initializes any hard drive(s) set in the CMOS. Failure could be due to invalid CMOS setup, hard drive or controller failure
Detect NPU Coprocessor Initialization of any NPU coprocessor found. failure is due either to invalid CMOS setup or the NPU is failing
Initialize Adapter ROM Any Adapter ROM’s between C800 and EFFF are initialized. The ROM will do an internal test before giving back control to the system ROM. Failure is normally due to the adapter ROM or the attached hardware
Initialize External Cache Any external cache to the 486 is enabled. Failure would indicates invalid CMOS setup, cache controller or chip failure
NMI Unexpected Exceptions A final check for unexpected exceptions before giving control to the Int 19 boot loader. Failure is normally due to a memory parity error or an adapter failure
Boot Errors Failure when the BIOS attempts to boot off the default drive set in CMOS is normally due to invalid CMOS drive setup or as given by an error message. If the system hangs there is an error in the Master Boot Record or the Volume Boot Record

 

Test sequence for versions > 4.2

Test Description
CPU BIOS sets, verifies and resets the error flags in the CPU then performs a register test by writing and reading bit patterns. Failure is normally due to the CPU or clock chip
Initialize Support Chips Video is disabled as is parity, DMA and NMI. Then the PIT, PIC, and DMA chips are initialized. Failure is normally the DMA or PIT chips
Initialize Keyboard Keyboard and controller are initialized
ROM BIOS Test A checksum is performed by the ROM BIOS on the data within itself and is compared to a preset value of 00. Failure is normally due tot he ROM BIOS
CMOS Test A test of the CMOS chip which should also detect a bad battery. Failure is due to either the CMOS chip or the battery
Memory Test First 356K of memory tested with any routines in the chipsets. Failure is normally due to defective memory
Cache Initialization Any external cache to the chipset in activated. Failure is normally due to the cache controller or chips
Initialize Vector Table Interrupt vectors are initialized and the interrupt table is installed into low memory. Failure is normally due to the BIOS or low memory
CMOS RAM CMOS RAM checksum tested and BIOS defaults loaded if invalid. Failure would indicate CMOS RAM failure
Keyboard Initialization Keyboard initialized and Num Lock set on. Check the keyboard or controller is a failure occurs
Video Test Video adapter tested and initialized
Video Memory Tested for Mono and CGA adapters. Failure could be the adapter card
DMA Test DMA controllers and page registers are tested. Failure could indicate bad DMA chips
PIC Tests 8259 PIC chips are tested. Failure would indicate a bad PIC
EISA Mode Test A checksum is performed on the extended data area of CMOS where EISA information is stored. If passed the EISA adapter is initialized
Enable Slots Slots 0-15 doe EISA adapters are enabled if the above test is passed
Memory Size Memory addresses above 256K written in 64K blocks and addresses found are initialized. If a bit is bad, the entire block containing it and those above will not be seen
Memory Test Read and write tests are performed on memory above 256K. Failure is due to bad bit in RAM
EISA Memory Memory tests on any adapters initialize previously. Check the memory chips if a failure occurs
Mouse Initialization Checks for a mouse and installs the appropriate interrupt vectors if one is found. Check the mouse adapter if a failure occurs
Cache Initialized The cache controller is initialized if present
Shadow RAM Setup Any Shadow RAM present according to the CMOS is enabled
Floppy Test Test and initialize floppy controller and drive
Hard Drive Test Test and initialize hard disk controller and drive. You may have an improper setup or a bad controller/hard drive if a failure occurs
Serial and Parallel Ports Amy serial and parallel ports are found and initialized
Math Coprocessor The coprocessor is initialized if found. Check the CMOS setup or the math coprocessor if a failure occurs
Boot Speed Set the default speed at which the computer boots
POST Loop Reboot occurs if the loop pin is set for manufacturing purposes
Security Ask for a password if one has been set in the CMOS.
Write CMOS The BIOS is waiting to write the CMOS values from Setup to CMOS RAM. Failure is normally due to an invalid CMOS configuration
Pre-Boot The BIOS is waiting to to write the CMOS values from Setup to CMOS RAM
Adapter ROM Initialization Adapter ROM’s between C800 and EFFF are Initialized. The ROM will do an internal test before giving back control to the system ROM. Failure is normally due to the adapter ROM or the adapter card
Setup Time Set CMOS time to the value located at 40h of the BIOS data area
Boot System Control is given to Int 19 boot loader

 

Text error messages

Error Message Description
BIOS ROM checksum error – System halted The checksum of the BIOS code in the BIOS chip is incorrect, indicating the BIOS code may have become corrupt. Replace the BIOS
CMOS battery failed CMOS battery is no longer functional. Replace the battery
CMOS checksum error – Defaults loaded Checksum of CMOS is incorrect, so the system loads the default values. A checksum error may indicate that CMOS has become corrupt. This error might have been caused by a weak battery
CMOS CHECKSUM ERROR DISK BOOT FAILURE, INSERT SYSTEM DISK AND PRESS ENTER Checksum of CMOS is incorrect. This can indicate that CMOS has become corrupt. This error may have been caused by a weak CMOS battery
CPU at nnn Displays the running speed of the CPU
DISKETTE DRIVES OR TYPES MISMATCH ERROR – RUN SETUP Type of diskette drive installed in the system is different from the CMOS definition. Run Setup to reconfigure the drive type correctly
Display switch is set incorrectly The display switch on the motherboard can be set to either monochrome or color. This message indicates the switch is set to a different setting than indicated in Setup. Determine which setting is correct and then either turn off the system and change the jumper or enter Setup and change the video selector
DISPLAY TYPE HAS CHANGED SINCE LAST BOOT Since last powering off the system, the display adapter has been changed. You must configure the system for the new display type
EISA Configuration Checksum Error The EISA nonvolatile RAM checksum is incorrect or cannot correctly read the EISA slot. This can indicate either the EISA nonvolatile memory has become corrupted or the slot has been configured incorrectly. Also, be sure the card in installed firmly in the slot
EISA Configuration Is Not Complete The slot configuration information stored in the EISA nonvolatile memory is incomplete
ERROR ENCOUNTERED INITIALIZING HARD DRIVE Hard drive cannot be initialized. Be sure the adapter is installed correctly and all cables are correctly and firmly attached. Also be sure the correct hard drive type is selected in Setup
ERROR INITIALIZING HARD DISK CONTROLLER Cannot initialize controller. Make sure the card is correctly and firmly installed in the bus. Be sure the correct hard drive type is installed in Setup. Also check to see if any jumper needs to be set correctly on the hard drive
FLOPPY DISK CONTROLLER ERROR OR NO CONTROLLER PRESENT Cannot find or initialize the floppy disk controller. make sure the controller is installed correctly and firmly. If there are no floppy drives installed, be sure the Diskette Drive selection in Setup is set to None
Floppy disk(s) fail Cannot find or initialize the floppy drive controller or the drive. make sure the controller is installed correctly. If no floppy drives are installed, be sure the Diskette Drive selection in Setup is set to None or Auto
HARD DISK initializing Please wait for a moment… Some hard drives require some extra time to initialize
HARD DISK INSTALL FAILURE Cannot find or initialize the hard drive controller or the drive. Make sure the controller is installed correctly. If no hard drives are installed, be sure the Hard Drive selection in Setup is set to None
Hard disk(s) diagnosis fail The system may run specific disk diagnostic routines. this message appears if one or more hard disks return an error when the diagnostics run
Invalid EISA Configuration The nonvolatile memory containing EISA configuration information was programmed incorrectly or has become corrupt. Rerun EISA configuration utility to correctly program the memory
Keyboard error or no keyboard present Cannot initialize the keyboard. Make sure the keyboard is attached correctly and no keys are being pressed during the boot. If you are purposely configuring the system without a keyboard, set the error halt condition in Setup to HALT ON ALL, BUT KEYBOARD. This will cause the BIOS to ignore the missing keyboard and continue the boot
Keyboard is locked out – Unlock the key This message usually indicates that one or more keys have been pressed during the keyboard tests. Be sure no objects are resting on the keyboard
Memory Address Error at… Indicates a memory address error at a specific location. You can use this location along with the memory map for your system to find and replace the bad memory chips
Memory parity Error at… Indicates a memory parity error at a specific location. You can use this location along with the memory map for your system to find and replace the bad memory chips.
MEMORY SIZE HAS CHANGED SINCE LAST BOOT Memory has been added or removed since the last boot. In EISA mode, use configuration utility to reconfigure the memory configuration. In ISA mode,enter Setup and enter the new memory size in the memory field
Memory Test The message displays during a full memory test, counting down the memory areas being tested
Memory Test Fail If POST detects an error during memory testing, additional information appears giving specifics about the type and location of the memory error
Memory Verify Error at… Indicates an error verifying a value already written to memory. Use the location along with your system’s memory map to locate the bad chip
No boot device was found This could mean that either a boot device was not detected or the drive does not contain proper system boot files. Insert a system disk into drive A: and press Enter. If you assumed the system would boot from the hard drive, make sure the controller is inserted correctly and all cables are properly attached. Also be sure the disk is formatted as a boot device. Then reboot the system
OFFENDING ADDRESS NOT FOUND The message is used in conjunction with the I/O CHANNEL CHECK and RAM PARITY ERROR messages when the segment that has caused the problem cannot be isolated
OFFENDING SEGMENT: This message is used in conjunction with the I/O CHANNEL CHECK and RAM PARITY ERROR messages when the segment that has caused the problem has been isolated
Override enabled – Defaults loaded If the system cannot boot using the current CMOS configuration, the BIOS can override the current configuration with a set of BIOS defaults designed for the most stable, minimal-performance system operations
PRESS A KEY TO REBOOT This will be displayed at the bottom of the screen when an error occurs that requires you to reboot. Press any key to reboot the system
Press ESC to skip memory test You can press ESC to skip the full memory test
PRESS F1 TO DISABLE NMI, F2 TO REBOOT When BIOS detects a non-maskable interrupt condition during boot, this will allow you to disable the NMI and continue to boot; or you can reboot the system with the NMI enabled
Press TAB to show POST screen System OEM’s may replace the Award BIOS POST display with their own proprietary display. Including this message in the OEM display permits the operator to switch between the OEM display
Primary master hard disk fail POST detects an error in the primary master IDE hard drive
Primary slave hard disk fail POST detects an error in the secondary master IDE hard drive
RAM PARITY ERROR – CHECKING FOR SEGMENT… Indicates a parity error in RAM
Resuming from disk, Press TAB to show POST screen Award offers a save-a-disk feature for notebook computers. This message may appear when the operator restarts the system after a save-to-disk shutdown. See the Press Tab…message earlier for a description of this feature
Secondary master hard disk fail POST detects an error in the secondary master IDE hard drive
Secondary slave hard disk fail POST detects an error in the secondary slave IDE hard drive
Should Be Empty But EISA Board Found A valid board ID was found in a slot that was configured as having no board ID
Should Have EISA Board But Not Found The board installed is not responding to the ID request, or no board ID has been found in the indicated slot
Slot Not Empty Indicates that a slot designated as empty by the EISA configuration utility actually contains a board
SYSTEM HALTED. (CTRL-ALT-DEL) TO REBOOT… Indicates the present boot attempt has been aborted and the system must be rebooted. Press and hold down the Ctrl and Alt keys and press Del
Wrong Board In Slot The board ID does not match the ID stored in the EISA nonvolatile memory

Victron Skylla-i 24/80 kroviklio remontas 2025.10.17 at 11:17

Senokai, jau turbūt prieš metus, gavau į remontą tokį Victron kroviklį. Didelis ir ne toks jau lengvas gargaras.

—- Fotkės —-

Ardymas paprastas, varžtukai, nuėmus priekinę panelę iš karto krito į akį, kad nėra aukštos pusės (t. y. 230 VAC) saugiklio. Matomai kepantis buvo. Šiaip maitekas kaip maitekas, tik kad didelis 🙂. Taigi, pradedam diagnostiką. Žemos pusės (t. y. 24VDC) 100A MEGA saugiklis geras:

Taigi, išėjimas užtrumpintas nebuvo (greičiausiai) ir gal net niekas išėjimo pusėje nesukepė. O vat įėjimo saugiklis dingęs, turbūt sudegęs ir išmestas, tai matomai trumpina kažkas aukštoje pusėje. Pirmas spėjimas – aukštos pusės puslaidininkiai. Tai bus galingi diodai, tranzistoriai ir panašiai. Šitoje schemoje jie prisukti prie didelio radiatoriaus, dėl aušinimo žinoma, foto jų kontaktai matosi dešinėje pusėje, taip dviejų pavalkėlių / užtraukėjų / затяшк’ių, ar kaip juos bepavadintum, ir keturių diodų. Greitas praskambinimas multimetrų, diodų tikrinimo režimu, davė rezultatą – trumpas diodų tilte, kuris išeinančia AC paverčia į DC. Bet mes žinome, kad kartais galima numatuoti neteisingai, kai detalės yra schemoje, nes schema įtakoja matavimą. Blemba, o priėjimas išmontuoti tik diodų tiltą toks ne visai patogus… Et, gerai, kad turiu Hakko FR301 išlitavimo aparatą, taigi, minutė ir viskas išlituota, ištraukiau visus jėginius elementus su radiatoriumi:

Vaizdas iš abiejų pusių. Dabar dar kartą permatuoju visus elementus su FNIRSI® DSO-TC4, tiltas iš tikrųjų rodo trumpą tarp poros kontaktų, dar įsitikinu multimetru ir štai – neveikimo kaltininkas:

Ir atrodo viskas paprasta, pakeiti ir važiuoja toliau, bet ne… Tokiam korpuse tilto jau nebegamina niekas, o poliarumas išvaduose toks, kad pavyko rasti tik vieną analogą pagal parametrus ir su tokiu išvadų poliarumu – GBU5010-BP.

Taip, kontaktai dabar vienodai išdėstyti, minusas, kintama, kintama, pliusas. Ir radiatorius tinkamoje pusėje. Be aušinimo ten daugiau 5A kažin ar atlaikytų.

Diodas pakeistas atvažiavo, bet pakeitimui reikėjo truputį pašamaninti. Pradžiai numontavau papildomus aušinimo radiatorius ir prisukau kas liko prie plokštės:

Toliau kaip ir reikėtų prisukti diodų tiltelį prie radiatoriaus, bet pasirodo originalus varžtas nelenda per tiltelio skylę. Nieko tokio, paėmiau 3 mm varžtą ir prisukau su veržle, kiaurai originalią skylę su 4 mm sriegiu.

Ir va bėda, kojytės per trumpos 😋. Buvo minčių išfrezuoti gražų varinį kubelį, kuris atitrauks tiltelį nuo radiatoriaus tiek, kad kojytės būtų tiesiai virš skylių, tuomet jų ilgio užtektų, bet šį kartą padariau paprasčiau – paėmiau 2,5 mm2 monolitinio laido varinę gyslą, įlitavau į skylę ir po to prie kojyčių. Nelabai gražu, bet tikrai patikima.

Ir tuo pačiu lituojam visų komponentų kojytes:

Beje, iš po diodų tiltelio matosi Thermal Grizzly termopasta. Ja naudojau ir surinkdamas radiatoriaus konstrukciją:

Vieno tranzistoriaus litavimo vieta perkaito, atšoko apatinė skylės metalizacija, tai papildomai palitavau viršutinėje pusėje (tas virš diodo tranzistorius):

Toliau surinkimas paprastas – pagrindinė plokštė dedama „aukštyn kojom”:

Ant jos montuojama indikatorių ir turbūt valdymo/komunikacijos plokštė:

230VAC saugiklis ne toks koks turi būti, reikia 32×6,3 mm 16A greito. Bet bandymui sueis. Jungiam ir tikimės sprogimo ar bent jau dūmų. Vaizdelis:

Precizinių įtampų generatorius 2025.08.08 at 14:52

Nežinau, ar generatorius čia tinkamas žodis, bet tiek to. Mintis kilo paprastai – kad jau įsigijau supertikslų matavimo prietaisą Fluke 8846A, reikia jam ir kokios schemos, kuri generuotų supertikslias įtampas ir pamatavus patikrinti, ar gerai prietaisas rodo. Prie to pačio galima bus tikrinti ir kitus voltmetrus. Ypač jeigu šitą prietaisiuką patikrinti metrologiškai. Įtampų formavimui (va, gal geresnis žodis, nei generavimui) pasirinkau naują produktą iš Texas Instruments – REF50E mikroschemas.

Pasirinkau REF50XXE seriją, nes jos tikslumas maksimalus, 2,048 V ir 10,0 V E serijos mikroschemų nėra, todėl pakeičiau į REF50XXI seriją. REF50 serija gali būti patobulintos tikslumo klasės (REF50xxEI), aukštos tikslumo klasės (REF50xxI) ir standartinės tikslumo klasės (REF50xxAI). Man pasirodė pliusas, kad mikroschemas galima jungti lygiagrečiai (yra niuansų, reikia sureguliuoti srovę) ir galima gauti dar daugiau įvairių supertikslių įtampų. Jungimo pavyzdys iš aprašymo:

Bet kol kas darysiu paprastą, nelygiagretintą variantą. Yra niuansų su ESR ir/arba jo nebuvimu išėjimo kondensatoriuose, bet, kaip ir visas minties įgyvendinimas, schemos kūrimas remiasi mikroschemos aprašymu. Mikroschemos galėtų būti maitinamos iki 18 V nuolatine įtampa, norėtųsi, kad įėjimo įtampa bent pora voltų viršytų išėjimo įtampą. Maksimali formuojama įtampa bus 10 V, todėl galima sakyti, kad tiktų maitinimo įtampos nuo 12 V iki 18 V. Čia pagalvojau – darau supertikslių įtampų generatorių/formavimo prietaisą, o jos šiek tiek, nors ir nedaug, priklausys nuo įėjimo įtampos stabilumo. Todėl, kad jau galutinai uždaužyti tikslumu ir stabilumu, vietoje kokio nors nežinomos kilmės laboratorinio arba paprasto maitinimo bloko, schema maitinsis nuo superstabilaus linijinio DC/DC keitiklio UA78M12CKVURG3 irgi iš Texas Instruments. Chm, gal TI galėtų jam man pamokėti už reklamą 😋 ? Jis generuos labai gerus, stabilius 12 V ir 500 mA srovę, kurios mums pakaks su didele atsarga, o įėjimą galima užmaitinti panašiai nuo 14,5 V iki 30 V. Va, dabar jau galima viską sudėlioti į schemą.

Va taip vat ir susidėliojo viskas. Viršuje maitinimo schemos dalis, jungimas tipinis linijiniams (o ir impulsiniams) DC/DC keitikliais. Linijiniai keitikliai labai nedaug triukšmauja, bet užtai labai kaista – kadangi prietaisas nebus skirtas būti įjungtu ilgą laiką, kaitimas mums netrukdys. Jeigu perkais – UA78M12 tiesiog atsijungs. Maitinimas toliau patenka į daugiakontaktį perjungėją SW1 ir, priklausomai nuo jo padėties, įjungia kažkurią vieną įtampų formavimo schemą. Žemiau yra 7 įtampų formavimo schemos. Jos praktiškai vienodos, skirtumas tik tame, kad High Grade mikroschemoms reikalingas apie 1 Ω ESR įėjimo kondensatoriuje, o Enhanced Grade mažas ESR yra geriau. Todėl visur pridėjau 0 Ω varžos SMD rezistorius. Jeigu kuri nors mikroschema dirbs nestabiliai, galima bus įlituoti precizinius 1 Ω ar panašios varžos rezistorius, taip dirbtinai padidinant kondensatorių ESR. CN1-CN8 – lituojami bananiniai lizdai. Jų litavimo aikštelės yra viršutinėje PCB dalyje, bet norėjau lituoti apatinėje, todėl ant PCB 3D vaizdu lizdai yra aukštyn kojomis, kai jau surinkinėsiu tikrą schemą – lizdus sudėsiu teisinga kryptimi.

Viskas gražiai telpa 100 x 60 mm plokštėje:

Plokštės spalva bus juoda, „silkscreen’as” baltas. Tie stačiakampiai po įtampomis skirti ranka užrašyti tikslią įtampą jeigu skiriasi, po matavimo kalibruotu ir dar tikslesniu prietaisu. Šiek tiek 3D vaizdų:

Turėjau minčių dar dengti schemos dalis RF filtruojančiais ekranais, bet paskui persigalvojau, nes gamintojas kaip ir nesako, kad rekomenduoja, o ir vietos ne per daugiausiai tam. Tai visą PCB viršų ir beveik visą apačia padariau vienu dideliu GND poligonu ir užteks. Dabar beliko sulaukti PCB, surinkti ir pradėti bandymus.

PCB atvažiavo, atrodo taip pat, kaip ir 3D vaizde, tik juodos spalvos:

Kiek turiu detalių surinkau ir bus galima daryti bandymus:

Pradžiai pažiūrim, kaip veikia tas linijinis DC/DC keitiklis. Pradžiai trys matavimai, prie 14,7 V, prie 20 V ir prie 25 V maitinimo. Išėjimo įtampa stabili, pasikeitimas tik trečiame skaičiuje po kablelio, tai pasikeitus įėjimo įtampai 10 V, išėjimas padidėja tik 1,94 mV:

Matuoju, žinoma, savo supertiksliu Fluke 8846A. Čia tokia istorija – restauruoju tokį Fisher RS-1060 stiprintuvą (ir straipsnį rašau tuo pačiu), tam stiprintuvui reikia labai tikslaus, jautraus ir didelės varžos voltmetro, tranzistorių ramybės srovės sureguliavimui, todėl pirkau šitą Fliuką. Sekanti logiška mintis – reikia precizinio įtampos šaltinio, gal net kalibruoto metrologiškai, kad patikrinti, ar tiksliai Fliukas matuoja, taigi, teko sukurti precizinių įtampų formavimo prietaisą, kuris duos tikslias įtampas įsitikinimui, kad Fliukas matuoja gerai ir po to jau bus galima matuoti stiprintuvo parametrus. Beje, žiauriai keista rašyti apie matavimus milivoltų vienetų eilėje, negalvojau, kad kada turėsiu tokį prietaisą ar netgi, kad man reiks, tokio tikslumo. Grįžtam prie DC/DC keitiklio:

Kad jau išėjimo įtampa stabili, tai pabandžiau pažiūrėti ant kiek stabili. Oscilogramose tik AC dedamoji. Sakyčiau tikrai geras rezultatas – pulsacijos, arba gal geriau vadinti nestabilumas, arba nukrypimas nuo idealios nuolatinės įtampos tik 9,6 mV, Vp-p 17,8 mV.

\[ 17,8 \,\text{mV} = 0,0178 \,\text{V} \] \[ \text{Pulsacijos %} = \frac{0,0178}{11,93528} \times 100\% \] \[ \text{Pulsacijos %} \approx 0,149\% \]

Am… Jeigu čia nepridariau klaidų, tai pulsacijos tik 0,149 %, tokius mažus procentukus jau galima matuoti promilėmis:

\[ 0,149\% \times 10 = 1,49 \,\text{‰} \] \[ \therefore \; 0,149\% \approx 1,49 \,\text{‰} \]

Net nekyla mintis galvoti apie papildomą filtravimą. Tai su maitinimo dalimi manau galima užbaigti. Patestuokime dabar tas precizines įtampas.

Pradžiai 2,048 V įtampa:

Fluke rodo 2,04793 V – 2,04794 V.

2,500 V įtampa:

Fluke rodo 2,49940 V – 2,49942 V.

5,000 V įtampa:

Fluke rodo 4,99927 V – 4,99930 V.

10,000 V įtampa:

Fluke rodo 9,99867 V – 9,99868 V.

Kitų įtampų kol kas nėra, todėl nematavau. Įtarimą sukėlė tai, kad visos įtampos turi tokius pat trukdžius, sutampa ir forma ir specifika (tas periodiškai išlendantis trikampis), todėl manyčiau, kad čia labiau iš išorės pagautas signalas, nei išėjęs iš precizinių įtampų generatorių. Tikrasis signalas, manyčiau yra ta stora geltona linija. Bandyme su 2,048 V tai paveiksliukas su užrašu „truputį iš arčiau”, spėju ten Vp-p apie 5 mV.

CTEK MXS10 kroviklio remontas 2025.08.05 at 18:11

Dar vienas CTEK kroviklis papuolė į remontą. Pagal vaizdą gerokai naudotas:

Pradžiai ardymas ir diagnostika. Vizualinė apžiūra iš karto parodė šiokį tokį rezultatą:

Išsipūtęs įėjimo kondensatorius. Reiks pakeisti, o kol laukiam naujų kondensatorių – bus laiko patikrinti svarbesnius komponentus. Saugiklis geras, tai gedimas matyt dar kažkur bus. Kaip visada, CTEK litavimo kokybė, paliktas fliusas…

Kondensatoriai atvažiavo, įlituoti. Plokštė nuvalyta nuo fliuso ir nulakuota, va, dabar jau gražus vaizdelis:

Va, dabar jau galima pradėti remontą. Prijungus įtampą jokio gyvybės nesimato, bet nauji kondensatoriai įsikrauna iki standartinių 320 VDC. Reiškia aukšta įtampa įėjime yra, bet, kadangi nėra daugiau jokios gyvybės, spėju budintis maitinimo šaltinis neveikia. Reikia patikrinti.

Budintis maitinimo šaltinis apibrauktas ir šalia tik jo foto. Pagrindas – ICE3B0565J mikroschema su baisiu aprašymu – Off-Line SMPS Current Mode Controller with integrated 650V CoolMOS®and Startup cell (frequency jitter Mode) in DIP-8. Užtai tipinė jungimo schema neatrodo labai baisiai:

Dar priedo radau ir kitokį aprašymą, Infineon ICE3B0565J.

Tas jų CoolMOS tranzistorius, panašu, yra geras, o matuojant įtampą tarp VCC ir GND turim kažką nestabilaus, pulsuojančio tarp 13 ir 16 V (matuojant True-RMS multimetru). Kaip ir gerai, ten turi būti nuo 10,3 V iki 26 V. Oscilograma:

Labai lėti impulsai, bet gal tokie ir turi būti, todėl kol kas manykime, kad šita vieta veikia. Žiūrime išėjimą. O išėjimai panašu yra du, t. y., dvi išėjimo apvijos. Čia pagalvojau, reikia pažiūrėti, kaip atrodo oscilogramos. Susijungiau oscilografą, susireguliavau, pasiruošiau matuoti, tik įjungti maitinimą liko. Įjungiau, pyst ir viskas veikia. Pats nustebau. Tai dabar ir nežinau, ar tiesiog nespėjau pamatyti, kad praeitą kartą baigiant darbus pradėjo veikti, ar dabar iš niekur nieko pradėjo veikti. Aišku, stebuklų nebūna, gal buvo kažkuriam komponente prastas kontaktas, lydmetalio trūkumas ir pan., o prijungiant sujudinau ir pradėjo veikti. Teiks prasieiti tą vietą dar su lituokliu, kad visi kontaktai geri būtų ir surinkti į korpusą bandymams.

Vėl prisėdau pasiaiškinti kodėl veikia ir va štai jums ir prašom – nebeveikia 🤨. Gerai, nes dabar galima pradėti ieškoti gedimo. Pradedame nuo „žemos pusės”, po transformatoriaus. Čia gyvena paprastutis MC78L05ACP stabilizatorius. Jis turėtų būti atsakingas už maitinimo įtampos tiekimą žemavoltėms valdymo grandinėms, tame tarpe ir Atmel’io valdikliukui MEGA88PAAU. Matuojame oscilografu stabilizatoriaus išėjimą:

Išėjime pulsuojanti įtampa, vietoje nuolatinės, toks vaizdas, lyg būtų trumpas jungimas arba per didelės srovės poreikis, tai stabilizatorius pasileidžia, beveik 100 ms gamina 5 V, o paskui pereina į apsaugos nuo trumpo jungimo režimą. Natūralu, kad jeigu valdikliukas geras, 100 ms maitinimo jam neužtenka, net žinant, kad stabilizatorius, panašiai po 250 ms, vėl suleidžia dozė elektros. Ok, o tai kur trumpas ? Arba kas čia tiek valgo, kad viršija stabilizatoriaus 100 mA galimybes ? Galvojau bus paprasta rasti įtampos įterpimo metodu. Prie stabilizatoriaus išėjimo prikabinu 5V, apribotus iki 300 mA, pasiruošiu termovizorių ir jau žiūrėsiu kur čia kas nenormaliai kaista. Ir pfft, nesigavo. Ta prasme – kroviklio žemavoltė grandinė veikia.

Valgo kažką apie 30 mA. Ok, kaip ir aišku, kad stabilizatorių išmuša ne dėl apkrovos. Galbūt jis pats nusišovęs, lengva patikrinti – jeigu išėjimas pulsuoja, o įėjimas stabilus – nu va štai jums ir prašom atsakymas kaip ant delno. Kabinam oscilografą ant įėjimo:

Tai kas čia per monai ? Periodas apie 300 ms, tai gaunasi apie 3 Hz. Impusinėse maitinimo schemose tai labai mažai. Aš net daugiau pasakysiu – tai labai labai mažai. Tokia pati pulsacija, tik, žinoma, panašiai 10 V įtampa. Chm, stabilizatoriaus įėjimas turėtų gauti maitinimą iš transformatoriuko, prieš tai, žinoma, kažkur tą įtampą turėtų praminkyti diodas ar diodų tiltas ir stabilizuoti kondensatoriumi. Transformatoriukas turi dvi antrines apvijas, tos apvijos, kuri maitina stabilizatorių, oscilograma:

Pirmas paveikslėlis – matome, kad iš transformatoriaus išeina blokai impusų, kas ~300 ms, tai ką turime ant stabilizatoriaus. Antras paveikslėlis – vienas iš blokų iš arčiau. Trečias paveikslėlis tie patys blokai, bet dar iš arčiau. Dabar jau matosi, kad bloke impulsai kas 15 µs, tai panašiai 66,5 kHz. Čia jau panašu į teisybę, nes valdančios mikroschemos Infineon ICE3B0365J aprašyme pasakyta – 67 kHz fixed Switching Frequency, visai panašu. Kokią išvadą galima padaryti iš šių oscilogramų ? Manyčiau mikrochema pasileidžia, pradeda gaminti transformatoriukui reikalingus impusus nustatytu dažniu, bet dėl kažkokios priežasties nustoja, restartuojasi ir vėl iš naujo. Generavimas gali būti stabdomas dėl perkaitimo ar perkrovų, tą dar reikės patikrinti, bet, iš principo, manyčiau, kad kalta būtent valdančioji mikroschema. Matomai nusibaigę įėjimo kondensatoriai, tiksliau nebefiltruota jais maitinimo įtampa paveikė mikroschemą ir kažkas joje truputį pakepė, dėl to dabar ji taip ir elgiasi. Iš karto užsakom naują, o kol atvažiuos dar galima prasibėgti per susijusias su budinčio matinimo šaltinio kitomis detalėmis – ką gali žinoti, gal dar kažkas pakepę ir dėl to mikroschema nedirba taip, kaip turėtų. Antras įtariamasis – 5V stabilizatorius antrinėje pusėje. Gal jis koks daužtas, arba jį kažkas apkrauna tiek, kad išmuša ne tik stabilizatorių, bet ir viską pirminės apvijos pusėje. Išmontuojam stabilizatorių ir žiūrim kas ateina į stabilizatoriaus kontaktines skyles:

Nu va štai jums ir prašom, tokie apystabiliai 17 V. Stabilizatoriaus maksimali įėjimo įtampa 30 V, tai su 17 viskas turėtų būti gerai. Patikrinam stabilizatorių. Prijungtas atskirai, be apkrovos, jis veikia, stabilūs 5 V išėjime. aišku mano apkrova labai maža, LEDas, skirtas dirbi 12-24 V grandinėje, tai miliampero dalys tik. Tuo tarpu padavus 5 V į schemą, vietoje stabilizatoriaus, turime tik 3,56 mA, tai stabilizatoriaus turi užtekti su didele atsarga. Antras įrodymas – į stabilizatoriaus vietą įlitavau arklinį TO-220 korpuse UA7805C, irgi 5V stabilizatorius. Įtampa taip pat dinginėja, nu bet jau tikrai ne dėl stabilizatoriaus, nes šitas pavelka 1,5 A. Iš to, manau saugu padaryti išvadą, kad gedimas yra ne pirminės apvijos pusėje ir ne 5 V antrinės apvijos grandinėje. Be antrinės yra kelios 🙂. Pradžiai atsirašom stabilizatoriaus ir lituojam jį atgal į vietą. Antras antrinė apvija paprastesnė, principe diodas ir kondensatorius. Diodas geras, tai prisikabinam prie kondensatoriaus. CapXon gamybos 47 µF 25V, pamatavus 29 µF, Vloss 4,3 %, ESR 2,91 Ω. Neatitikimas didelis, todėl dedu tikrą, originalų Panasonic kondensatorių 47 µF 35 V, pamatavus 50,5 µF, Vloss 1,7 %, ESR 0,96 Ω. Tuo pačiu pamatavau ir pirmosios grandinės kondensatorių – 32,0 µF, Vloss 5,7 %, ESR 2,86 Ω, vietoje 47 µF 25V, dedam tokį pat prabangų Panasonic’ą. Nemanau, kad kondensatorių keitimas padės, bet tiek to, vis veiksmas. Prijungiau du maitinimo šaltinius prie abiejų antrinių maitinimo schemų – viskas gerai, niekas nesprogo, srovės proto ribose. Nujaučiu teks grįžti prie pirminės, galbūt per didelės srovės limitas neteisingas ir vos tik bent truputį paima antrinė – iš karto pirminė pereina į apsaugos režimą, nors pirminėje nieko blogo nėra.

Kol prisiruošiau pratęsti bandymus atėjo ir valdančioji mikroschemą, tai ją ir pakeičiau. Stebėtina, bet veikia lygiai taip pat – neveikia. Et, teks visgi analizuotis schemą. Pradžiai „pareguliavau” ICE3B0365J srovinę apsaugą, tam atvejui, jeigu visgi kažkokiu būdu srovė viršija slenkstinį apsaugos lygį. Maksimalios srovės lygis nustatomas CS (Current Sense) kontaktu, trečias numeris:

Rezistorius kartais gali būti šuntuojamas diodu. Originaliai buvo sumontuoti du 8R2 rezistoriai lygiagrečiai, tai varža 4,1 Ω. Taigi, maksimali srovė:

\[R_{\text{sense}} = \frac{V_{\text{CS(th)}}}{I_{\text{peak}}}\]

Išsireiškiame maksimalią srovę:

\[I_{\text{peak}} = \frac{V_{\text{CS(th)}}}{R_{\text{sense}}}\]
\[čia: V_{\text{CS(th)}}=1,06 V, R_{\text{sense}} = 4,1 Ω\]
\[ I_{\text{peak}} = \frac{1.06\ \text{V}}{4.1\ \Omega} \approx 0.259\ \text{A} \]

Pakeičiau vieną 8,2 Ω rezistorių į 4,7 Ω, todėl dabar bendrą jų varža tapo 2,9876 Ω, o srovė:

\[ I_{\text{peak}} = \frac{1.06}{2.9876}\ \text{A} \approx 0.3549\ \text{A} \]

Taigi, srovė padidėjo panašiai 100 mA. Bet tas nepadėjo. Ieškom toliau. Daugiau neturėjau prie ko prisikabint, tai prisikabinau prie to, kaip mikroschema jaučia kokią įtampą ji generuoja po transformatoriaus. Tas dalykas vadinamas feedback’u, lietuviškai grįžtamuoju ryšiu. Pasak mikroschemos aprašymo, grįžtamasis ryšys organizuojamas panaudojant optroną:

Taip tai taip, bet ne taip. Mūsų Ctek’e optrono nėra. Čia biškį išsilaužiau smegenis, nes grįžtamasis ryšys turi būti, o nematau. Po truputį atsekiau pagal plokštės takelius, o po to dar ir radau schemos dalį Interneto platybėse:

Čia mikroschema maitinasi nuo savo pačios generuojamos įtampos, o grįžtamojo ryšio per optroną nėra. Pagal šitą schemą, sugalvojau surasti ir patikrinti R5 ir D2 (jeigu būtų gerai, imčiausi grįžtamojo ryšio, jis čia su ZD1, Q1 ir kita smulkme sukonstruotas). Suradau, patikrinau. Rezistorius markiruotas pagal EIA-96 standartą, markiruotė 01X, kas reiškia 10 Ω. O matuojant rodo tai 2 su biškiu kiloomo, tai 3 su biškiu kiloomo. Net su mikroskopu žiūrėjau, lyg ir sveikas rezistorius, bet išlitavau ir pamatavau ant stalo – tokia pati nesamonė, tikrai ne 10 Ω, o kažkiek kilo Ω. Sugalvojau pavalyti fliusą ir – cha, nusibraukė viršutiniai dažai su užrašu, pasimatė degėsis. Tikrai susvilęs rezistoriukas. Čia vėl primurmėjau daug užsieninių ir lietuviškų burtažodžių, nes rezistorius 0603 dydžio, jau keikiausi lituodamas tą srovės ribojimą nustatantį rezistorių, tai tą pati dariau ir čia, nes tų nesugrabaliojamų 0603 net neturiu, dėjau 0805 dydžio. Bet įlitavau ir – generalinis bandymas. Valiooooo !!! Veikiaaaaa !!!!! Va, va ta stebuklinga vieta, įlituotas 0805 ir šalia sudegėlis:

Nu viskas, pagaliau surinkimas, prieš dar priklijuoti atitrūkusį išėjimo droselį:

Štai ir viskas, suklijuota, surinkta, veikia.

Reguliuojamo uždelsimo signalas 2025.06.27 at 15:56

Idėja tokia – reikia, kad padavus signalą į „juodos dėžės” įėjimą, išėjime signalas atsirastų po norimo laiko. Reiks man tokios schemos integravimui į didesnė schemą. Taigi, pabandome apsirašyti tikslus:

  • Atsiradus signalui įėjime, išėjime signalas turi atsirasti po norimo laiko (0-5 sekundės, be didelio tikslumo, nes mano schemai jo nereikės.);
  • Aktualus, t. y. reikalingas yra kylantis frontas, valdančio impulso trukmė apie 6 s.
  • Išėjimo ir įėjimo signalų įtampa turi būti vienoda ir lygi maitinimo įtampai (13,6 V);
  • Išėjimo signalas turi sugebėti uždegti LEDą.

Tokio tipo taimeriams labiausiai tinka 555 šeimos mikroschemos, jie ir daryti kaip reguliuojamo laiko taimeriai. Bet su 555 jau žaidžiau, tai norisi pabandyti kažką naujo. Ir čia į galvą ateina kiek primirštos mintys apie filtrus, jeigu tiksliau – RC filtrus, apie operacinukus, komparatorius ir visus kitus protingus žodžius. Tuo pačiu noriu pasižaisti su Analog Devices LTspice grandinių simuliatoriumi, patikrinti, kiek simuliavimas atitinka tikrovę. Pagrindinis darbinis arkliukas bus koks nors operacinis stiprintuvas, dirbantis kaip komparatorius. Komparatorius – nes „compare” (angl. palyginti), palygina signalus savo įėjimuose ir pagal tai įjungia arba išjungia savo išėjimą. Ir nereikia čia įsivaizduoti didelio, tai yra mažo, kompiuteriuko mikroschemoje, sukančio galvą kaip čia tą išėjimą sureguliuoti, nes veikimas maksimaliai paprastas:

  • Kai įtampa neinvertuojamame įėjime didesnė nei įtampa invertuojamame įėjime – išėjime loginis 1.
  • kai įtampa neinvertuojamame įėjime mažesnė nei įtampa invertuojamame įėjime – išėjime loginis 0.

Jeigu trumpai, tai galima būtų parašyti va taip:

  • U+ > U = 1;
  • U+ < U = 0.

Čia U+ – įtampa neinvertuojančiame įėjime, U – įtampa invertuojančiame įėjime, atsakymas – loginis lygis išėjime. Taigi, tarkime, kad turime paprastutį operacinuką:

Pradžiai galima būtų nustatyti V2 arba, mūsų formulėje, tai būtų U. Įprastai invertuojančiame įėjime nustatoma stabili įtampa, kurią galime vadinti slenkstine. Ją galima nustatyti įvairiais būdais – stabilitronu, atskiru maitinimo šaltiniu arba, jeigu nereikia didelio tikslumo ir atrišimo nuo maitinimo įtampos svyravimo – varžiniu dalikliu. Tą pastovaus slenksčio lygį galima pasirinkti savo nuožiūra (beveik). Riboja tik operacinuko įėjimo įtampos maksimali vertė. Kadangi noriu simuliacijai naudoti LTspice programą, joje yra tikrai daug operacinukų modelių pasirinkimų. Pasiėmiau vos ne pirmą pasitaikiusį, mokantį maitintis ir nuo dvipolio, ir nuo vienpolio maitinimo, svarbiausia rail-to-rail išėjimas, t. y. išėjimo įtampa gali būti tokia pati, kaip maitinimo įtampa – ADA4620. Vienpolio maitinimo maksimali įtampa 36 V – OK, precizinis – sueis, mažai triukšmaujantis – nelabai aktualu, 16 MHz – stipriai per daug, tiek tikrai nereiks, dažnis bus Hz vienetų eilės, bet sueis, o įdomus pasirodė dėl to, kad panaudoti JFET tranzistoriai. FET tranzistoriai nėra labai mėgstami audio stiprintuvuose, bet mūsų poreikiams bus net labiau tinkami nei paprasti BJT. Ir plius, kad naujas produktas, tai dar ne greitai bus „obsolete” ar „discontinued”. Taigi, invertuojantis išėjimas turėtų atrodyti va taip:

Varžiniu dalikliu R1, R2 nustatysime įtampą, žemiau kurios operacinuko išėjime bus 0, o įtampai neinvertuojamame įėjime pakilus virš to nustatyto lygio – išėjime bus 1. Kokia tą įtampą nustatyti ? Mano logika paprasta – kuo aukštesnė įtampa bus, tuo ilgiau krausis kondensatorius prie neinvertuojamo įėjimo, tai galima bus naudoti mažesnės talpos kondensatorių. Žiūrim mikroschemos aprašymą:

Kadangi maitinimas vienpolis, tai V- yra 0V, o V+ mano atveju bus 13,6 V, tai minimali galima įtampa -0,1 V, maksimali įtampa 13,6-4,4=9,2 V. Kad nebūtų jau visai arti ribinės, maksimalią įtampą bandysiu pataikyti kokia puse volto mažesnę, bet naudosiu standartinius 5 % tikslumo rezistorius (nes tokių užteks, o stipriai pigiau nei 1% ar 0,5%), tai vertės bus kažkokios irgi standartinės.

\[V_{\text{out}} = V_{\text{in}} \cdot \frac{R_2}{R_1 + R_2}\]

Pasirenku R2 = 22 kΩ, standartinė, niekuo neypatinga varža. O kokia turi būti R1 ? Iš tos pačios formulės:

\[R_1 = R_2 \cdot \frac{V_{\text{in}} – V_{\text{out}}}{V_{\text{out}}}\]

Jau turime – R2 = 22 kΩ, Vin = 13,6 V, Vout = 8,5 V (nes maksimali galima 9,2 V, paėmiau dar puse volto mažiau ir suapvalinau iki 8,5 V). Dabar jau galima suskaičiuoti.

\[ R_1 = 22000 \cdot \frac{13,6 – 8,5}{8,5} \] \[ R_1 = 22000 \cdot \frac{5,1}{8,5} \] \[ R_1 =22000 \cdot 0,6 = 13200\,\Omega \] \[ \boxed{R_1 =13,2\,\text{k}\Omega} \]

Standartinė vertė yra 13 kΩ, taigi, perskaičiuojam Vout su Vin = 13,6 V, R1 = 13 kΩ ir R2 = 22 kΩ.

\[ V_{\text{out}} = 13{,}6 \cdot \frac{22}{13 + 22} \] \[ V_{\text{out}} = 13{,}6 \cdot \frac{22}{35} \] \[ \frac{22}{35} \approx 0{,}6286 \] \[ V_{\text{out}} = 13{,}6 \cdot 0{,}6286 \approx 8{,}54 \, \text{V} \] \[ \boxed{V_{\text{out}} \approx 8{,}54 \, \text{V}} \]

Taigi, mūsų slenkstinė įtampa bus 8,54 V. Papildome schemą:

Dar kartelį, kad užsifiksuoti – kai įėjime su pliuso ženklu įtampa bus mažesnė nei 8,54 V – išėjime bus 0, kai įėjime su pliuso ženklu įtampa bus didesnė nei 8,54 V – išėjime bus 1 (maitinimo įtampa). Dabar reikia sugalvoti schemą tam įėjimui su pliuso ženklu. Kadangi reikia išėjimo atidėjimo, tai logiška būtų per rezistorių užkraudinėti kondensatorių, parenkant rezistorių ir/arba kondensatorių tokius, kad įtampa ant kondensatoriaus perliptų mūsų slenkstinę po mums reikiamo laiko. Papildome schemą kondensatoriaus įsikrovimo greitį ribojančiu rezistoriumi, aišku, kondensatoriumi ir prijungiam kondensatorių prie įėjimo su pliuso ženklu (neinvertuojantis įėjimas):

Dar pridėjau iš 13,6 V stačiakampio impulso generatorių, kurio signalą vėlinsim. Kai atsiranda 13,6 V impulsas, kondensatorius C1 pradeda įsikraudinėti, bet rezistorius R3 tam procesui trukdo, todėl įsikrovimas vyksta lėtai/lėčiau. O komparatoriaus neinvertuojantis įėjimas pastoviai čiupinėja kondensatoriaus įtampą ir vis tikrina, ar jau pasiektas slenkstinis lygis. Šitą vietą galima panaudoti vėlinimo laiko reguliavimui, tereikia keisti arba varžą arba talpą. Rezistoriaus varžą keisti žymiai lengviau, negu kondensatoriaus talpą, todėl kondensatorių pasirenkame nekintamą, tarkim 10 µF, o rezistorių bandysime skaičiuoti, kai maksimalus uždelsimo laikas, tarkim, 5 s.

Kondensatoriaus įkrovimo formulė: \[ V(t) = V_{\text{in}} \cdot \left(1 – e^{-\frac{t}{RC}}\right) \] Kadangi reikia suskaičiuoti rezistorių \(R\): \[ \frac{V(t)}{V_{\text{in}}} = 1 – e^{-\frac{t}{RC}} \quad \Rightarrow \quad e^{-\frac{t}{RC}} = 1 – \frac{V(t)}{V_{\text{in}}} \] \[ -\frac{t}{RC} = \ln\left(1 – \frac{V(t)}{V_{\text{in}}}\right) \quad \Rightarrow \quad \frac{t}{RC} = -\ln\left(1 – \frac{V(t)}{V_{\text{in}}}\right) \] \[ R = \frac{t}{C \cdot \left[-\ln\left(1 – \frac{V(t)}{V_{\text{in}}}\right)\right]} = \frac{t}{C \cdot \ln\left(\frac{1}{1 – \frac{V(t)}{V_{\text{in}}}}\right)} \] Duota: \[ t = 5 \, \text{s}, \quad C = 10 \times 10^{-6} \, \text{F}, \quad V(t) = 8{,}54 \, \text{V}, \quad V_{\text{in}} = 13{,}6 \, \text{V} \] Įstatome reikšmes: \[ R = \frac{5}{10 \times 10^{-6} \cdot \ln\left(\frac{1}{1 – \frac{8{,}54}{13{,}6}}\right)} = \frac{5}{10 \times 10^{-6} \cdot \ln\left(\frac{1}{1 – 0{,}6279}\right)} \] \[ R = \frac{5}{10 \times 10^{-6} \cdot \ln\left(\frac{1}{0{,}3721}\right)} = \frac{5}{10 \times 10^{-6} \cdot \ln(2{,}688)} \] \[ \ln(2{,}688) \approx 0{,}9886 \] \[ R = \frac{5}{10 \times 10^{-6} \times 0{,}9886} = \frac{5}{9{,}886 \times 10^{-6}} \approx 505\,900 \, \Omega \] Rezistoriaus reikšmė, kad įkrovimo laikas iki 8,54 V būtų 5 sekundės, yra apie \[ \boxed{R \approx 506 \, \text{k}\Omega} \]

Standartinė rezistoriaus vertė būtų 510 kΩ. O kokia varža turėtų būti, norint turėti 1s vėlinimą?

Duota: \[ t = 1 \, \text{s}, \quad C = 10 \times 10^{-6} \, \text{F}, \quad V(t) = 8.54 \, \text{V}, \quad V_{\text{in}} = 13.6 \, \text{V} \] Įstatome reikšmes: \[ R = -\frac{1}{10 \times 10^{-6} \cdot \ln\left(1 – \frac{8.54}{13.6}\right)} = -\frac{1}{10 \times 10^{-6} \cdot \ln(1 – 0.628)} \] \[ = -\frac{1}{10 \times 10^{-6} \cdot \ln(0.372)} = -\frac{1}{10 \times 10^{-6} \times (-0.989)} = \frac{1}{9.89 \times 10^{-6}} \approx 101{,}1\,k\Omega \] Rezistoriaus reikšmė, kad kondensatorius įsikrautų iki 8,54 V per 1 sekundę, yra: \[ \boxed{R \approx 101{,}1\, \text{k}\Omega} \]

Suma summarum, norint turėti reguliuojamą nuo 1 s iki 5 s reikia varžą keisti nuo 100 kΩ iki 510 kΩ. Papildome kuriamą schemą, kai vėlinimas 5 s:

Tokią schemą jau būtų galima surinkti LTspice programoje ir paanalizuoti:

Pasimatuokime įtampas svarbiuose schemos taškuose ir atvaizduokime grafiškai:

Grafikas pasididina. Čia:

Raudona – įtampa, formuojama rezistoriniu dalikliu į invertuojantį operacinuko įėjimą. Simuliacijoje apskaičiuota vertė 8,4931338V.
Mėlyna – stačiakampis impulsas, kuris vėlinamas operacinuku ir išlenda jo išėjime po nustatyto laiko. Impulso trukmė 6 s.
Šviesiai mėlyna – įtampa ant kondensatoriaus ir neinvertuojamame operacinuko įėjime. Matome, kaip atsiradus impulsui, ši įtampa didėja ir, kai pasiekia mūsų nustatytą slenkstinę įtampą atsiranda…:
Žalia linija – mūsų panašiai 6 sekundes užvėlavęs išėjimas, kuris pradingsta, kai dingus impulsui kondensatorius išsikrauna iki slenkstinės įtampos.

Ir iš karto grafike matosi didelis minusas – kondensatorius labai ilgai išsikraudinėja. O blogai tai dėl to, kad jeigu impulsas ateis, kol kondensatorius neišsikrovęs – jis pradės įsikraudinėti ne nuo 0 V, o nuo kažkiek daugiau, tai ir slenkstinės ribos pasiekimo laikas atitinkamas sutrumpės. Reikia tą kondensatorių kažkaip priverstinai iškrauti, kai jo paslaugų mums nebereikia. Tam yra gudras sprendimas – diodas. Schema dabar atrodytų taip:

O grafikas taip:

Viskas atrodo panašiai, bet dabar vos tik atsijungia valdantis impulsas – dingsta įtampa ant kondensatoriaus ir tuo pačiu operacinuko išėjime. Idealu 😁. Taip galvotum, bet iš tikro – ne. Pasižiūrėkim kaip atrodytų, kai valdantys impulsai yra bent du.

Ir ką čia matome ? Ogi kondensatorius realiai nėra iškrautas, todėl atėjus naujam impulsui jis kraunasi ne nuo 0 V, o nuo tos įtampos, kuri liko iš praėjusio impulso. O mums taip netinka, kiekvieną kartą reikia kondensatorių krauti nuo 0 V, kad būtų reikiamas vėlinimas. Panašus vaizdas būtų ir pašalinus diodą:

Principe mano schemai tiktų ir toks veikimas, kai sekantys impulsai turi mažesnį vėlinimą, bet dar paeksperimentuokime su LTspice. Ir dar pastebėjau, kad tokiu vis papildomų įkrovimų atveju, kondensatoriaus įtampa gali pakilti iki maitinimo įtampos, 13,6 V, o tai yra daugiau nei gali atlaikyti operacinuko įėjimas (9,2 V maks.). Pamažinkime mūsų slenkstinę įtampą iki, tarkim 5 V:

\[R_1 = R_2 \cdot \frac{V_{\text{in}} – V_{\text{out}}}{V_{\text{out}}}\]

Turime – R2 = 22 kΩ, Vin = 13,6 V, Vout = 5,0 V.

\[ R_1 = 22000 \cdot \frac{13,6 – 5,0}{5,0} \] \[ R_1 = 22000 \cdot \frac{8,6}{5,0} \] \[ R_1 = 22000 \cdot 1,72 = 37840\,\Omega \] \[ \boxed{R_1 = 37,84\,\text{k}\Omega} \]

Standartinės varžos būtų 36 kΩ arba 39 kΩ. Pasirenkame 39 kΩ, įtampa bus truputį mažesnė (geriau, nei truputį didesnė). Perskaičiuojam Vout su Vin = 13,6 V, R1 = 39 kΩ ir R2 = 22 kΩ.

\[ V_{\text{out}} = 13{,}6 \cdot \frac{22}{39 + 22} \] \[ V_{\text{out}} = 13{,}6 \cdot \frac{22}{61} \] \[ \frac{22}{61} \approx 0{,}3607 \] \[ V_{\text{out}} = 13{,}6 \cdot 0{,}3607 \approx 4{,}906 \, \text{V} \] \[ \boxed{V_{\text{out}} \approx 4{,}91 \, \text{V}} \]

Slenkstinė įtampa perskaičiuota, pakoreguojam schemą. Grafiškas atitinka skaičiavimą (raudona linija). Lygiagrečiai kondensatoriui pridedame stabilitroną arba, kitaip, Zenerio diodą su 5,6V pramušimo įtampa (STZ5.6NT146). Tai turėtų apriboti maksimalią kondensatoriaus įtampą (melsva linija) iki tikrai saugių 5,6 V. Grafiškai tai atrodo taip:

Pliusas ir tas, kad mažiau įkrautas kondensatorius = mažiau reiks iškrauti po impulso pabaigos. O schema atrodo va taip:

Dabar turime saugius įtampų lygius, kaip ir teisingą veikimą, tuo atveju, jeigu impulsas yra tik vienas arba sekantis impulsas ateina po ilgesnio laiko (kai kondensatorius jau išsikrovęs). Liko tik sugalvoti, kaip iškrauti kondensatorių. Paprasčiausias, bet tuo pačiu ir mažiausiai elegantiškas, netgi brutalus būdas – panaudoti relytę, kuri reikiamu momentu užtrumpins kondensatorių į minusą, taip jį iškraunant iki nulio voltų.

Atnaujinta schema. Nekreipkite dėmesio į DPDT relės tipą, pasirodo LTspice ir labai kūdai su relėmis, tai ką turiu tą ir naudoju. Kai nėra valdančio impulso, relės kontaktai laiko kondensatoriaus teigiamą polių prijungtą prie minuso. R4 (1 kΩ) skirtas apriboti srovę, kuri tekės per relės kontaktus, kai vyks kondensatoriaus iškrovimas. Kodėl 1 kΩ ? A, šiaip. Čia svarbu neviršyti relės kontaktų maksimalios srovės. Nors netgi be rezistoriaus, manyčiau, impulsas bus per trumpas ir per silpnas, kad prideginti kontaktus arba šauti žiežirbą. Bet darom taip, kad būtų tikrai tikrai. O prie 1 kΩ, kai kondensatorius įsikrovęs iki maksimalios 5,6 V įtampos, srovė bus (taip taip, gerbiamieji, Omo dėsnis):

\[ I = \frac{V}{R} \] \[ I = \frac{5.6 \, \text{V}}{1000 \, \Omega} = 0.0056 \, \text{A} = 5.6 \, \text{mA} \]

Tai jau bet kokia, net ir silpna relė laisvai atlaikys 5,6 mA trumpalaikę srovę. Jeigu reiktų iškrauti kondensatorių, kurio įtampa aukštesnė, galima būtų skaičiuoti 1 A išrovimo srovę. Tiek laiko netgi paprastos signalinės mikrorelės. Grafikas atrodo va taip (spalvos pasikeitė, nes iš naujo sudėliojau „daviklius”, bet ir taip jau aišku kas čia kur):

Dabar jau abiejų impulsų trukmė vienoda, įsikrovimas vyksta nuo 0 V, nebeaktualus laikas tarp impulsų, nes nereikia laukti, kol išsikraus kondensatorius. Prie esamų nominalų vėlinimas 4,4 s. Jeigu R1 pakeisti iš 750 kΩ į 900 kΩ – vėlinimas bus 5,07 s.

Ties šita vieta schemos kūrimas kaip ir galėtų sustoti, bent jau maketą rinksiu iš to, ką turime dabar. Bet norintiems galima dar patobulinti schemą. Iš grafiko akivaizdu, kad pavėlintas impulsas baigiasi kartu su valdančiuoju impulsu, taigi, jeigu vėlinimas bus toks pat ar ilgesnis nei valdančio impulso trukmė – išėjime neturėsime pavėlinto signalo. Galima būtų sugalvoti, kaip pailginti išėjimo impulsą, kad vėlinimas galėtų būti didesnis nei valdančio impulso trukmė. Failai simuliacijai LTspice programoje yra čia.

Realiam bandymui surinkau viską ant maketinės plokštės. Taip, negražu, grubu ir gal ne visada tiksliai veikiantis variantas, bet pabandymui užteks.

Raudone LED lemputė – apkrova. Kažko galingo nejungsiu, nes operacinukas gali neatlaikyti. Juodas pailgas daiktas su neryškiu užrašu – relė, o operacinukas gyvena ZIF lizde. Pabandžiau ir supratau, kad relė netinka – reikia su NC kontaktu, o čia su NO. Be relės sistema veikia, uždelsimas yra, bet vis tiek noriu pakeisti relę į teisingą. Radau stalčiuje Relpol RM699BV-3011-85-1012, turi ir NC ir NO kontaktus. Galutinė schema beveik tokia pat, kaip simuliacijoje, pridėjau tik relei diodą – kad aukšta įtampa nepramuštų ko nors operacinukui. Oscilograma:

Geltona linija – signalas ant operacinuko 3 kontakto (neinvertuojantis įėjimas, tas, kuriame įtampa kinta), mėlyna linija – 6 kontaktas, operacinuko išėjimas. Paanalizuokime, atsiranda tie patys 14V trečiame kontakte (vadinkime – valdymo impulsas), pradeda krautis kondensatorius, todėl grafikas gražiai kyla į viršų. 1 langelis yra 1 sekundė, taigi, grafikas kyla 5 sekundes, kol pasiekia, panašiai, 5 V, tada suveikia operacinukas ir išėjime atsiranda irgi 14V. Nors valdymo impulsas ateina 14 V, įtampa nekyla aukščiau 5,6 V – pradeda veikti stabilitronas, apriboja įtampą iki saugios. Paskui valdymo impulsas dingsta, tuo pačiu dingsta ir išėjimo įtampa. Po beveik 1,5 sekundės vėl prijungiu valdymo impulsą ir vėl kondensatorius kraunamas nuo 0 V – ko ir reikėjo, kad išėjimo uždelsimas visada būtų vienodas. Schema, panašu, veikia taip, kaip norėjau, todėl pridedame ją į projektuojamą schemą 😁.

Ryšys tarp dviejų kompiuterių per USB 2025.05.20 at 14:51

Kartais reikia tokio dalyko, sujungtu du kompiuterius per USB. Arba bet kokius kitokius du prietaisus per USB, pavyzdžiui, kompiuterį ir kokių nors gudrių staklių valdymo bloką su USB jungtimi. Taigi, tiesioginio USB – USB ryšio nėra, nes tam reiktų rašyti specialias tvarkykles ir dar knistis su visokiais papildomais programavimo/komunikacijos reikalais. O daroma viskas paprasčiau – USB iš abiejų pusių paverčiamas RS-232, o tie jau komunikuoja tarpusavyje. Kompiuteriai puikiausiai moka dirbti su RS-232, tvarkyklės dažniausiai jau būna įdiegtos arba automatiškai įsidiegia, taigi, labai supaprastėja ryšys netgi tarp dviejų normalių kompiuterių. Taigi, techninė užduotis:

  • Reikalingas laidas / adapteris / sujungimas, kuriuo būtų galima sujungti du kompiuterius arba kitus įrenginius, kurie neturi specialių tvarkyklių, bet dirba per USB;
  • Jeigu reikia – maitinimas nuo USB jungties;
  • Tvarkyklės turi būti diegiamos automatiškai arba lengvai randamos Internete;
  • Turi būti paprastas naudoti;
  • Turi būti saugus naudoti.

Kol kas tiek, jeigu darbo eigoje atsiras naujų užduočių – papildysiu. Šitoje vietoje reikia prisiminti senovę, nes jau viskas yra išrastą, o tai kas nauja – gerai pamiršta sena. Šiuo atveju pamiršta – tai senoviškas kabelis, kuris vadinosi NULL-MODEM. Jo esmė – dviejų kompiuterių ar kitokių prietaisų sujungimas per gryną RS-232, sukryžminant (nors man, pagal prasmę, aiškesnis žodis – krosinant) TX ir RX laidus, tai yra, vieno prietaiso TX jungiasi į kito RX, o kito prietaiso TX jungiasi į to pirmojo RX. Va ir visas stebuklas, taip padarius ryšys tarp RS-232 prietaisų jau yra. Dabar tik reikia tą RS-232 paversti į USB abiejuose galuose. Ai, ir iš karto pasakau, kad nesigilinam į įtampų lygius, ar tai bus TTL ar tikras RS-232. Ir dar, kad suprastumėte – kompiuterio viduje RS-232 jungiamas į UART (Universal Asynchronous Receiver Transmitter), taigi galima iš karto imti USB-UART konverterį ir nekonvertuoti UART į RS-232. Daugiau papildomai aiškinti kuo skiriasi ir kada kas naudojama tingiu, bet turėkime galvoje, kad RS-232 ir UART įtampų lygiai skiriasi. Dabar reikia parinkti šiuolaikinį USB – UART konverterį. Tie dalykai nėra nei labai naujiena, nei labai sudėtingi, pilna prikepta visokio lygio USB – UART arba RS-232 kabeliukų. Tik iš patirties žinau, kad FTDI mikroschemos dirba geriausiai, plius žinomas gamintojas, todėl tvarkyklių ieškoti nereiks. Atsidarius FTDI Internetinį katalogą peržiūrėjau visų galimų kandidatų informaciją ir išsirinkau FT230XS-R mikroschemą. Šalia ir VCP (Virtual COM Port) tvarkyklės. Pagal parametrus – visko čia net per daug arba lygiai tiek, kiek reikia. Plius yra galimybė programuoti mikroschemą, konfigūruoti ją pagal save, bet svarbiausia, ji daro tai ką reikia, konvertuoja USB į UART ir atgal. Iš minusų – mikroschema „valgo” 3,3V, o iš USB išeina 5V. Nors mikroschema tą minusą pati ir sutvarko, tai net ir jo nebelieka. Žiūrim mikroschemos aprašymą:

Štai ir schema, kaip mikroschemą užmaitinti nuo USB prievado. Matome, kad mikroschema suvalgo 5V, o paskui pati konvertuoja juos į reikiamus 3,3V ir išleidžia juos į laisvę per 3V3OUT kontaktą. Bet maksimaliai 50 mA. Toliau skaitant mikroschemos aprašymą randame ir visą USB į RS-232 konverterio schemą:

Ką mes čia matome ? USB lizdas prijungtas prie FT230X, kuris USB duomenų srautą iš savo UART prievado su TTL įtampų lygiais perduoda į „RS232 LEVEL CONVERTER” mikroschemą, kuri savo ruožtu pagaminą tą tikrąjį RS-232. Principe, sujungus tokias pat dvi schemas NULL MODEM pavyzdžiu, tai yra 1 schemos TXDATA į 2 schemos RXDATA ir 2 schemos TXDATA į 1 schemos RXDATA jau būtų galimas ryšys. Taip pat sukryžminus galima būtų sujungti ir RTS/CTS, nors savo schemoje šitų dviejų hardwarinio duomenų perdavimo valdymo kontaktų nenaudosiu. Bet jau girdžiu skaitančių komentarus – pala pala, o tai kam dar TTL keisti į RS-232, jeigu galima sujungti du TTL ? Teisingai, tas RS232 LEVEL CONVERTER mūsų reikmėm visiškai nereikalingas, metam lauk ir schema dar labiau supaprastėja. Bet, galvoju, paliekam LED indikatorius TX ir RX perdavimui iš kontaktų CBUS1 ir CBUS2. CBUS kontaktų funkcijos konfigūruojamos programuojant mikroschemą, bet CBUS1 ir CBUS2 pagal nutylėjimą jau sukonfigūruoti TX ir RX indikatorių valdymui. Jau schemos bazė kaip ir yra, bet mes inžinieriai, pramąstom ar tikrai jau viskas. O tolimesnė minčių eiga tokia – o jeigu reiks prijungti laptopą, maitinamą nuo vidinės baterijos prie stacionaraus kompiuterio, arba kokį specifinį įrenginį, su savo maitinimo prie laptopo irgi su savu maitinimu… Ir kaip tada jausis ir bendraus mikroschemos, užmaitintos nuo skirtingų USB lizdų ? Galima būtų USB lizdų pliusus ir minusus sujungti… Gal ir galima, bet kai nežinome, ką galutinis vartotojas jungs prie mūsų konverterio/adapterio – būtų per daug drąsu tvirtinti, kad neatsiras koks nors įtampų lygių neatitikimas, koks nors „ground loop’as”, ar dar koks monas, dėl kurio gali supleškėti kuris nors iš sujungtų prietaisų. Įprastai, kai duomenų perdavimui sujungiami du prietaisai su nuosavu maitinimu, norisi, kad jie būtų galvaniškai izoliuoti, tai yra, neturėtų elektrinio ryšio. Kaip pavyzdys – du kompiuteriai sujungti tarpusavyje optiniu kabeliu, jokio elektrinio ryšio, o duomenys vis tiek perduodami. Mūsų atveju naudoti optinį kabelį yra prabanga, todėl pradžiai pažiūrėsiu, tarkim, Digio kataloge kokių yra variantų. Duomenų perdavime, t. y. ten, kur nereikia didelių galingumų, bet reikia didelio greičio, dažniausiai naudojami kondensatoriniai izoliatoriai. Pagal mūsų FT230X matome, kad sujungti galima būtų 4 kanalus (TX, RX, CTS ir RTS), todėl pasirenku 4 kanalų skaitmeninį izoliatorių, dirbantį mums tinkamame maitinimo įtampų diapazone Texas Instruments ISO7742FQDWRQ1. Supaprastinta vieno kanalo schema:

Veikimas, paprastai, toks – paduodamas skaitmeninis signalas pakeičiamas moduliuotu signalu, kuris praeina per kondensatorius, tuo pačiu nusifiltruoja nuolatinė dedamoji, tada signalas dekoduojamas atgal į skaitmeną ir išleidžiamas laukan. Paprasčiau suprasti tiesiog žiūrint į blokinę schemą:

O signalas atrodo va taip:

Ateinantis meandras pakeičiamas kažkokio dažnio moduliuoti signalu, kuris lengvai pereina per kondensatorius ir patenka į priimančią dalį, kuri signalą demoduliuoja ir pagamina teisingą signalą išėjime. Ir abu tie signalai yra teisingi savo maitinimų atžvilgiu. Izoliuojančios mikroschemos vidinė schema:

Turim du kanalus į vieną pusę ir du kanalus į kitą pusę, būtent tai, ko reikia. Toks dalykas padėtų ir jeigu reiktų, pavyzdžiui, bendrauti 5V ir 3.3V sistemoms, mikroschema ištransliuotų viską teisinguose įtampų lygiuose ir niekas nesudegtų. Šiaip mikroschemos naudojimas paprastas, tik yra niuansų su trasavimu ir PCB, bet viskas detaliai aprašyta mikroschemos aprašyme. Dabar viską, kas parašyta, plius mikroschemų aprašymus, plius šiek tiek teorijos apie TTL/UART/RS-232 sumetam į puodą, vadinamą galva, gerai suplakame ir gauname va tokia vat schemą:

Palikau ir savo užrašus anglų kalba. Čia dvi identiškos schemos dalys, konvertuojančios USB į TTL, o per vidurį mūsų skaitmeninis izoliatorius. Signalinius „laidus” paspalvinau, kad lengviau atsirinkti kas kur eina ir prijungta. Kai jau yra schema, reikia pasidaryti plokštę. Plokštei kažkokių rimtų reikalavimų nekėliau, neskaitant tų, kurių reikėjo teisingam mikroschemos veikimui, bet pasistengiau daryti plokštę kuo mažesnę ir siauresnę.

Vat tokia ir gavosi nedidelė plokštė, su komponentais. Abu USB tokio tipo, kad būtų galima lengvai prijungti prie dviejų USB prailgintuvų arba plokštę iš karto kišti į kompiuterio USB lizdą, o kitą galą su prailgintuvu į kitą prietaisą. Vienu žodžiu fantazijos reikalas, o ir pačius USB lizdus galima pakeisti į norimos formos, tik truputį pakeičiant PCB. O gyvai plokštelė atrodo va taip:

Surinkus reikia pabandyti kaip tas daiktas veikia. Tam galima pasinaudoti ir vienu kompiuteriu, kuris turi bent 2 USB lizdus. Prijungiau prie to paties kompiuterio per USB šakotuvą, prietaisą rado kaip COM4 ir COM5 prievadus, todėl atidariau terminalo emuliatorių Putty abiem prievadams ir pabandžiau parašyti tekstą. Mintis tokia, kad jeigu veikia, tai tekstas, t. y. duomenys, iš vieno terminalo lango bus perduoti į kitą terminalo langą ir atvirkščiai.

Čia tiems, kas mėgsta kalbėtis su savimi, labai patogu 😋. O adapteris tuo metu atrodo va taip:

LEDai mirksi, duomenys laksto, chm, tai turbūt užskaitom, kad veikia. Nors dar reiktų pabandyti tarp dviejų visai atskirų kompiuterių. Ir, kad nebūtų visai lengva, vienas kompiuteris bus mano darbinis Asus TUF Gaming A15 FA507NV su Windows 11 Home (jooo blyn, žiauriai prasileidau, kad ne PRO), o kitas laptopėlis su Windows 2000 Professional ! W11 aišku be klausimų pasigavo tvarkykles ir viskas su jais OK, o prijungus prie W2000PRO prasidėjo tvarkyklių diegimo vedlys. Lengvai susiradau tvarkykles FTDI puslapyje ir sušėriau vedliui, po to jam klausimų nebekilo. W2000PRO turi gimtąjį terminalą, tai pabandžiau su juo, bet ryšys buvo toks labiau vienpusis – iš senuko duomenys neateina, o į senuką iš Putty nueina. Tai dar parsiunčiau senesnę (0.61 berods) Putty versiją senukui ir viskas kuo puikiais veikia, abiem kryptimis duomenys vaikšto, tekstas pasirodo, tai bandymai baigti. Schemą ir plokšte dariau su EasyEDA, tai schemos ir plokštės failiukai šiai programai yra čia.

FT230X mikroschemos konfigūravimui naudojamas FT Prog įrankis, parsisiunčiamas iš FTDI puslapio. Nelabai turiu ką ten programuoti, bet prisijungti pabandysiu:

Kad bent kažką pakeisti, lendam į Hardware specific punktą, CBUS Signals:

Pabandymui C1 pasirenku Drive_1, turėtų tame išėjime visada būtų aukštas lygis. Iš tikrųjų, išjungus ir vėl prijungus adapterį, buvęs TX LEDas dabar šviečia pastoviai. Prie IO Pins > CBUS dar radau įdomų nustatymą:

Aprašyme lyg nemačiau, kad CBUS’ai mokėtų riboti srovę, bet gamyklinis nustatymas 4mA. O kam tada reikalingas LED rezistorius? Chm, o pabandom nustatyti 16 mA ir pažiūrėti, kas bus su tuo pastoviai šviečiančiu LED. Chm, nepasakyčiau, kad šviečia ryškiau. Tiesa kažkoks srovės ribojimas, matomai, visgi yra, nes prijungus prie USB sekundės daliai LED švystelna ryškiau, po to matyt apsiriboja srovė ir LED vėl tampa blankus. Bet yra visai įdomių galimybių nustatyti CBUS išvadų funkcijas:

Automobilinio grotuvo ekrano užtemdymas 2025.04.28 at 15:14

Labai trumpas, greitas projektukas, atsiradęs dėl paprasto poreikio. Mašinose be dienos šviesos lempų privaloma dienos metu važiuoti įjungus artimųjų šviesų lempas, todėl audio sistemos grotuvas galvoja, kad dabar naktis ir pritemdo savo displėjų. Saulėtą dieną jame beveik nieko ir nebesimato, plius įjungiamas naktinis režimas, pavyzdžiui, mygtukų apšvietimas. Tas ypač galioja pakeitus gamyklinė automobilio grotuvą į kitokį, pavyzdžiui, su Android OS ir papildomais funkcionalumais. Taigi, reikia prietaisiuko, kuris reaguotų į apšvietimą ir pagal tai paduotų signalą į atitinkamą grotuvo kontaktą. Turim tikslą, tik suformuluokime užduotį:

  • Prietaisas turi reaguoti į apšviestumą, pagal tai valdyti atitinkamą grotuvo kontaktą;
  • Maitinimas nuo 11 V iki 16 V;
  • Grotuvo valdymas turi būti universalus – nes nežinome visų įmanomų grotuvų variantų;
  • Apšviestumo jautrumas turi būti reguliuojamas;
  • Genialumas paprastume, tai gal nepradėkim programuoti mikrovaldiklių;
  • Prietaisas turi būti saugus naudoti.

Tiek kol kas užtenka, pradedame konstruoti schemą.

Ok, dabar kaip čia viskas padaryta ir veikia. Kaip visada, iš kairės į dešinę. Nedidelė keturių kontaktų jungtelė, maitinimo pliusas po degimo (KL15+), pastovus minusas (KL31), 12V išėjimas ir minuso išėjimas. Kodėl tiek daug ? Ogi universalumui, valdymas gali būti arba pliusiniu signalu arba minusu. Normalioje padėtyje šiuose išėjimuose nieko, laido galas kaba ore arba „float” 😁. Toliau saugumas, saugiklis F1, 1A turėtų būti per akis visose situacijose, tu pačiu ir pakankamai saugu. Įėjimo kondensatorius C1 – kodėl 1 uF ? Nes tokių daug turiu, principe gali būti ir kitoks. Truputį stabilizuoja įeinantį maitinimą, sugaudo trukdžius jei kokių yra. Toliau „aktyvusis elementas”, 1MΩ daugiasūkis potenciometras R2 ir fotorezistorius LDR1. Potenciometras daugiasūkis tikslesniam reguliavimui, o 1MΩ nes tokia maksimali varža leis prijungti praktiškai bet kurį fotorezistorių ir sureguliuoti teisingam veikimui. Šita schemos dalis veikia taip – kai šviesu, fotorezistoriaus varža maža, o potenciometras taip sureguliuotas, kad jo varža palyginus su fotorezistoriaus varža didelė, todėl ribiniu atveju schema tampa tokia:

Kai tamsu, fotorezistoriaus varža didelė, sakykim 100 kΩ, o potenciometro varža tampa palyginti maža:

Analizuoti tokias ribines padėtis lengviau, nors realiai ten nebus nei visai minusas, nei visai pliusas, nes bus tam tikros varžos tiek fotorezistoriuje, tiek ir potenciometre, todėl būtų geriau analizuoti šitą porą kaip varžinį daliklį, bet užtai taip paprasčiau suprasti kodėl šita pora apskritai veikia. Taigi, pirmu atveju R3 gauna pseudo gryną minusą, antru atveju gauna pseudo pliusą. Pasikartosiu, turėkime galvoje, kad ten bus kažkokia tarpinė įtampos vertė, tarp 0V ir VCC, tik suveikimas atsitiks, kai ta įtampa bus aukščiau arba žemiau tam tikros slenkstinės vertės, kuri priklauso nuo tranzistoriaus. Toliau, R3 su Zenerio diodu, dar vadinamu stabilitronu, sudaro silpnasrovį maitinimo šaltinį. Jo reikia tam, kad tranzistoriaus Q1 bazės – nes bazės maksimalį įtampa VEBO = 10V. Tranzistoriaus aprašymas yra čia. O mašinoje tikrai bus daugiau, net iki 15V. Taigi, stabilitronas apriboja maksimalią įtampą. Kokia ji turi būti ? Aprašyme parašyta, kad VBEsat = 1,5V, tai yra tranzistorius pilnai atidarytas, kai įtampa tarp bazės ir emiterio yra 1,5V arba daugiau, bet ne daugiau 10V, nes bus pššš ir pasimatys tai, iš ko padaryta visa elektronika – dūmai. Dėl stabilumo, garantuoto tranzistoriaus atidarymo ir toli nuo pavojingos maksimalios įtampos imame pusę maksimalios įtampos vertės, tarkim 5V. Tiktų, principe, bet kas nuo 1,5V iki kokių 9V… Ok, ok, dar plius, kad turėjau 5V stabilitronų, tai pasirinkimas dar supaprastėjo. Turėdami tiek duomenų, galime pabandyti paskaičiuoti stabilitrono ir jo balastinio rezistoriaus parametrus. Išeitiniai duomenys skaičiavimui:

  • Maksimali įtampa – 15V
  • Minimali įtampa – 8V (nes mūsų R2-LDR1 daliklis gali duoti ir mažiau nei 12V, tai paimu tokią įtampą, gali būti ir kita, bet jeigu daliklio įtampa bus didesnė už 1,4V, stabilitronas nieko neveiks, o tranzistorius įsijungs)
  • Reikiama įtampa išėjime – 5V
  • Apkrovos srovė – čia toks sudėtingesnis parametras, bet iš tranzistoriaus aprašymo pikinė bazės rovė IBM = 100 mA, plius kažkiek srovės kondensatoriaus C2 krovimui, bet tiek srovės neduosim, duokime, tarkim trečdalį – Imax = 30 mA. Iz_min panašiai 10% nuo visos srovės, tai 0,003 A.
\[ I_{total} = I_{Zmin} + I_{L} \]
\[ I_{total} = 0,003 + 0,03 = 0,033 A\]
\[ R = \frac{U_{Supl} – U_{Z}}{I_{total}}\]
\[ R = \frac{15 – 5}{0,033}=303,03Ω\]

Paimkime, kad rezistorius bus 300 Ω.

\[ P_{R} = (U_{Supl} – U_{Z}) \cdot I_{total}\]
\[ P_{R} = (15 – 5) \cdot 0,033 = 0,33W = 330 mW\]

Rezistoriaus galingumas apie 330 mW.

\[ P_{D} = U_{Z} \cdot \left( I_{max} – I_{min} + I_{D} \right)\]
\[ P_{D} = 5 \cdot \left( 0,03 – 0,03 + 0,003 \right)=0,015W = 15 mW\]

Stabilitrono galingumo skaičiavimui Imax ir Imin imu vienodus, nors gal apkrovos srovė ir nebus visada vienoda ir stabili, bet turint tokį didelį atsargos koeficientą, manyčiau taip ganėtinai saugu. O skaičiavimas gerokai supaprastėja.

Toliau, rezistorius R4, ribojantis kondensatoriaus įsikrovimo greitį ir bazės srovę. Rezistoriaus skaičiavimas toks pusiau šamanizmas, su visokiom Betom ir panašiai, o bet tačiau, štai:

  • Valdymo įtampa Uctrl = 5V
  • Kolektoriaus maksimali srovė IC = 0,5A
  • Koeficientas β = 10000
  • Įtampos kritimas PN sandūroje Upnp_drop = 0,7V
  • Maksimali bazės srovė Ib_max = 100mA = 0,1A
\[I_{c} = \beta \cdot I_{b}\]

Iš čia:

\[I_{b} = \frac{I_{c}}{\beta} =\frac{0,5}{10000} = 0,00005A = 0,05 mA\]

Taigi, leidžiant per bazę bent 0,05 mA, kolektoriaus-emiterio srovė turėtų būti galima maksimali, pusė ampero.

\[U_{ctrl} = I \cdot R\]
\[R_{max} = \frac{U_{ctrl} – U_{p-n\_drop}}{I_{b}}\]
\[R_{max} = \frac{5 – 0,7}{0,00005}= 86000Ω = 86 kΩ\]

Turime, kad maksimali bazės rezistoriaus varža yra 86 kΩ, bet patikimam ir greitam tranzistoriaus atidarymui, galime didinti srovę, nes turime 20 mA limitą. Sumažinus varžą 20 kartų, srovė padidės 20 kartų, tai bus 1 mA. Turėtų pakakti tranzistoriaus atidarymui, kad jis dirbtų rakto režimu, o ne linijiniu. Būtų galima dar mažinti varžą, tarkim, sumažinus 200 kartų, iki 430Ω, srovė būtų 10 mA. Bet laimėjo 4700 Ω rezistorius, nes tokį turėjau po ranka, srovė turėtų būti apie 1 mA. Tas pats rezistorius dar ir stabdo kondensatorius C2 įsikrovimą. Kondensatorius pasikraus per laiką τ (Tau):

\[ \tau = R \cdot C\]
\[ \tau = 4700 \cdot 0,000001 = 0,0047s = 4,7 ms\]

Laikas super trumpas, kondensatorius pasikraus, tuomet rezistorius tiesiog ribos bazės srovę.

Toliau tranzistorius Q1, geras, smagus Darlingtonas mažame korpuse, atsidaro ir prijungia minusą prie relės K1 ir indikatoriaus LED1 su jo rezistoriumi R1. Relės srovė 9,1 mA, plius ~15 mA LEDukui, tranziukas tikrai išlaikys. Relės kontaktai laiko 1A srovę, todėl saugiklis F1 irgi 1A. relės kontaktų sujungimas toks, kad būtų toks kaip ir pseudo galvaninis atrišimas nuo prietaiso, nes relė perduoda grynai maitinimo pliusą arba maitinimo minusą, o ne, tarkim, minusą po tranzistoriaus. Taip išvengiame kokių nors dar nežinomų niuansų valdomo prietaiso schemoje.

Schemos vaizdelis 2D ir 3D:

EsayEDA failiukai (SCH ir PCB) yra čia.

Toliau veikimo bandymai ir šiek tiek matavimų.

Iš LED matosi, kad tranzistorius kažkiek dirba ir linijiniame režime, bet srovės mažos, trukmė nedidelė, tai bėdos su tuo nebus. Galima būtų pridėti Šmito trigerį, tuomet linijinio režimo nebebūtų.

Eigoje fotorezistorius pakeistas į PGM5506-MP – nes korpusas 5,5 mm, vietoje 12 mm.

M$ Windows 11 instaliavimas be prisijungimo 2025.04.02 at 07:39

Didžiausia nesąmonė iš MažaMinkščio – reikalauti Interneto ir MS paskyros instaliuojant Windows 11. Tai užsirašau, kaip apeiti šitą dalyką, kad nepasimirštų.

  1. Instaliuojant spaudžiam Shift + F10, atsidarys komandinė eilutė. Rašom oobe\bypassnro ir po restarto džiaugiamės.
  2. Instaliuojant spaudžiam Shift + F10, atsidarys komandinė eilutė. Rašom start ms-cxh:localonly ir dar labiau džiaugiamės.

Reaction to recent political events. 2025.03.04 at 08:31

I am not too much into politics, but then again, as a person with some quantity or brains and thinking capability, I think there should be a new word in dictionary, explaining the word „trumpism”.

Trumpizm (n.) – A behavior or ideology marked by acts of betrayal, hostility, and disgrace, often associated with self-interest, disregard for established norms, and divisive rhetoric. Characterized by a tendency to prioritize personal gain over loyalty, to treat allies and institutions with hostility, and to act in ways perceived as shameful or damaging to democratic values.

Uses:

Dont be such a trump.

What you did was really trumpish.

This time you’re really trumped.

Senoviški mokykliniai voltmetrai 2025.02.21 at 09:31

Ok, su tuo „senoviški” gal biškį perlenkiau, nes rusijoje manyčiau jie vis dar naudojami, pavadinimas Учебный-2. Gavau juos tokios būklės:

Sureguliavus nulius prijungiau prie laboratorinio maitinimo šaltinio veikimo bandymams.

Taigi, dar pora voltmetrų į kolekciją. Ne tai, kad naudočiau, bet pažaisti visai faina.