📝 Knowledge Test: Real-Time Clocks
Real-Time Clocks Knowledge Test
Section titled “Real-Time Clocks Knowledge Test”Work through the questions below — your score updates as you go.
Keep going · grade bands mapped to DCU's honours scale
Only your first attempt at each question counts toward this score. Reload the page to reset.
This page contains 12 interactive knowledge checks on the DS3231 lab. The questions cover why a separate clock chip is needed, the BCD time registers, the control and status registers, alarms and the latched INT/SQW interrupt, wiring that interrupt to a GPIO, and the Linux kernel driver.
Please remember that many of the quizzes have multiple correct answers, and you must select all applicable options to succeed. I have balanced the lengths of the answers, so take your time to evaluate each option.
Good luck!
Derek.
Part 1: Timekeeping and the time registers
Section titled “Part 1: Timekeeping and the time registers”Which of the following statements about keeping time on an embedded system are correct?
The DS3231's hours register (0x02) reads 0x69. What time does it hold?
Match the DS3231 bit to what it does
Why should a program read the seven time registers in one I2C transaction (a pointer write, a repeated START, then a 7-byte read)?
Part 2: Control, status and alarms
Section titled “Part 2: Control, status and alarms”A freshly powered module's status register (0x0F) reads 0x88. Which statement is correct?
Alarm 1's registers (0x07 to 0x0A) hold 0x30, 0x80, 0x80, 0x80, and A1IE and INTCN are both set. When does INT/SQW go low?
Alarm 1 has fired and INT/SQW is low. Which of the following statements are correct?
Complete the ESP32-S3 alarm handling (Zephyr, raw registers)
Part 3: Wiring and the Linux driver
Section titled “Part 3: Wiring and the Linux driver”INT/SQW is an open-drain output. Which of the following statements are correct?
Match the Linux command or result to its meaning
Bring up the DS3231 on a Raspberry Pi
The driver is loaded on a freshly powered module, and sudo hwclock -r reports 'ioctl(RTC_RD_TIME) to /dev/rtc0 to read the time failed: Invalid argument'. Why?
© 2026 Derek Molloy, Dublin City University. All rights reserved.