- Tui dùng MCU (vi điều khiển)
- MCU có sẳn RAM, ROM nên không dùng RAM, ROM ngoài.
Việc “bù thời gian đánh lửa sớm cơ bản” đã hoàn tất. Nó rất dễ dàng theo nguyên tắc: “ Nếu tỉ lệ hòa khí không đổi, nồng độ oxy trong gió không đổi, nhiệt độ máy không đổi thì thời gian bù đánh lửa sớm là không đổi”. Theo đó, theo tài liệu Daihatsu, động cơ CB23 được bù sớm 1 góc 5 độ ở 800rpm, suy ra t/gian bù sớm là : 5độ * 60s* 1,000,000 / (800rpm * 360độ) = 1,041.6us (micro giây). Vậy khi máy chạy với vận tốc là 5,000rpm thì “góc bù sớm cơ bản” sẽ là 1,041.6us * 5,000rpm * 360độ/(60*1,000,000) = 31.2độ
Việc bù theo nhiệt độ máy, nồng độ Oxy trong không khí, chưa tìm được hàm gần đúng, nên tạm thời bù tuyến tính. Mà cái này không mấy quan trọng, vì những máy cũ xưa, đâu có bù tùm lum như vậy mà cũng chạy ầm ầm !
MCU không chứa nhiều thông số bảng tra, do vậy, nó phải tính trực tiếp các thông số cần thiết từ các tín hiệu đo đạc ở các cảm biến HO2S (cảm biến Oxy khí xả), Throttle Valve (cảm biến bướm ga), Nhiệt độ máy. Mỗi 2 vòng quay của máy, MCU tính lại các giá trị cần thiết 3 lần để điều khiển thời điểm đánh lửa, năng lượng đánh lửa, thời điểm phun xăng, lượng xăng cần phun.