home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / MBUG / MBUG088.ARC / RTC.DOC < prev    next >
Text File  |  1979-12-31  |  14KB  |  311 lines

  1.     Notes on Microbee RTC ( brief)
  2.  
  3. Part 1 Construction
  4.  
  5. If you have a Premium mother board type 8501-3-03C (inscribed in copper) and
  6. 8501-3-04CR ( silk-screened ) or later than the following parts can be fitted
  7. directly to the mother board.
  8.  
  9. IC18  146818
  10. IC15  74HC00
  11. D1    1N4148 or similar diode
  12. D2    1N4148 or similar diode
  13. G1    32.768 KHz crystal
  14. R1    22 ohm resistor
  15. R2    1M ohm resistor
  16. R3    150K ohm resistor
  17. R4    4.7M ohm resistor
  18. R7    1.8K ohm resistor
  19. R14   1K ohm resistor
  20. CV2   approx 6-60 pf trimmer capacitor ( adjust so clock keeps accurate time )
  21. C1    10 mfd tantalum 16 volt
  22. C6    .0047 mfd greencap capacitor
  23. C7    33 pf capacitor
  24. C8    33 pf capacitor
  25. C15   .1 mfd monolithic capacitor
  26. BB    3.6 volt Nicad Varta type 3/60DK (add this last)
  27. 24 pin socket   optional - use a good quality dual wipe type if used
  28. 14 pin socket     "         "  "  "     "      "    "    "   "   "
  29.  
  30.    In addition three wire jumpers need to be added :-
  31.  
  32. 1. W1 pads are near the colour connector. Add a jumper between W1-A2 and W1-B2.
  33.    Also check there is no connection between W1-A1 and W1-B1 or between W1-A3
  34.    and W1-B3 on either side on the board.
  35.  
  36. 2. Connect a long insulated wire jumper between L1 and L1 pads. One is located
  37.    on the right side of the board to the right of IC71 a 74LS138 just above the
  38.    back-space key, the other is to the left of IC24 a 74LS32.
  39.  
  40. 3. Connect a long insulated wire jumper between L2 and L2 pads. One is located
  41.    on the left side of the board just under the metal-work which supports the
  42.    keys almost directly underneath the top hole of the metal-work beside the
  43.    ESCAPE key. Again the other is near to IC24 a 74LS32, just to the right of
  44.    that IC.
  45.  
  46. N.B. Do not forget the little piece of wire around the crystal to hold it in
  47.    position.
  48.  
  49.    ┴ buffereΣ outpu⌠ oε piε 21 oµ thσ 14681╕ i≤ availablσ for the connection
  50. of a frequency counter. The variable capacitor is adjusted for a frequency
  51. of 32.768KHz.
  52.  
  53.                --------========--------
  54.  
  55. èPart 2 Chip details
  56.  
  57.     The 146818 RTC chip consists of 50 general purpose registers, ten registers
  58. which normally contain the time, calendar, and alarm data, and four control and
  59. status registers. The 50 registers can be used as general purpose memory. All
  60. are battery backed up. All 64 bytes are directly readable and writable by
  61. the processor program except registers C and D which are read only.
  62.  
  63.     The addresses on the MicroBee are as follows :-
  64.  
  65.     Address        04
  66.     Write        06
  67.     Read        07
  68.  
  69.     For example to read RTC register 2 the sequence would be :-
  70.  
  71.  Write 02 to port     address 04
  72.  input data from port address 07
  73.  
  74.  
  75.  in basic this would be
  76. 10 OUT 4,2 : REM select register 2
  77. 20 A=IN(7) : REM the variable A will equal the contents of register 2 
  78.  
  79.  
  80.  in assembler this would be
  81.     ld    a,002h        ; load a with the required RTC register address
  82.     out    (004h),a    ; output to RTC address register
  83.     in    a,(007h)    ; read data from the required RTC register
  84.                 ; to Z80 register a
  85.   
  86.  
  87. Similarly to write to RTC register 9 the sequence would be :-
  88.  
  89.  Write 09 to port     address 04
  90.  write data to port   address 06
  91.  
  92.  in basic this would be
  93. 10 OUT 4,9 : REM select register 9
  94. 20 OUT 6,B : REM the variable B will be written to register 9
  95.  
  96.  in assembler this would be
  97.     ld    a,009h        ; load a with the required RTC register address
  98.     out    (004h),a    ; output to RTC address register
  99.     ld    a,data        ; load Z80 register a with the required data
  100.     out    (data),a    ; write data to RTC register 9
  101.  
  102.  
  103.     RTC Time, Calendar and Alarm register Functions
  104.  
  105. -------------------------------------------------------------------------------
  106. Address  | Function   |Decimal| Range of RAM in HEX       |Example(Nums in Hex)
  107. Location |            | Range | Binary Mode | BCD Mode    |Binary mode|Hex Mode
  108. -------------------------------------------------------------------------------
  109.    0     | Seconds    | 0-59  |   X00-X3B   | X00-X59     |    15    |   21è-------------------------------------------------------------------------------
  110.    1     | Seconds    | 0-59  |   X00-X3B   | X00-X59     |    0F    |   15
  111.          | Alarm      |       |             |             |          |
  112. -------------------------------------------------------------------------------
  113.    2     | Minutes    | 0-59  |   X00-X3B   | X00-X59     |    3A    |   58
  114. -------------------------------------------------------------------------------
  115.    1     | Minutes    | 0-59  |   X00-X3B   | X00-X59     |    1E    |   30
  116.          | Alarm      |       |             |             |          |
  117. -------------------------------------------------------------------------------
  118.          | Hours      | 1-12  | X01-X0C(AM) | X01-X12(AM) |    05    |   05
  119.          |(12 hr mode)|       | X81-X8C(PM) | X81-X92(PM) |          |
  120.    4     |            |       |             |             |          |
  121.          | Hours      | 0-23  |   X00-X17   |   X00-X23   |    05    |   05
  122.          |(24 hr mode)|       |             |             |          |
  123. -------------------------------------------------------------------------------
  124.          | Hours Alarm| 1-12  | X01-X0C(AM) | X01-X12(AM) |    06    |   06
  125.          |(12 hr mode)|       | X81-X8C(PM) | X81-X92(PM) |          |
  126.    5     |            |       |             |             |          |
  127.          | Hours Alarm| 0-23  |   X00-X17   |   X00-X23   |    06    |   06
  128.          |(24 hr mode)|       |             |             |          |
  129. -------------------------------------------------------------------------------
  130.    6     | Day of Week| 1-7   |  X01-X07    |  X01-X07    |    01    |   01
  131.          | Sunday=1   |       |             |             |          |
  132. -------------------------------------------------------------------------------
  133.    7     |Day of Month| 1-31  |  X01-X1F    |  X01-X31    |    0B    |   11
  134. -------------------------------------------------------------------------------
  135.    8     | Month      | 1-12  |  X01-X0C    |  X01-X12    |    02    |   02
  136. -------------------------------------------------------------------------------
  137.    9     | Year       | 0-99  |  X00-X63    |  X00-X99    |    4F    |   79
  138. -------------------------------------------------------------------------------
  139. Example is for 5:58:21 Sunday February 11th 1979
  140. Alarm set for 6:30:15
  141.  
  142.                --------========--------
  143.  
  144. REGISTER A     Read/Write except bit UIP which is read only
  145.  
  146.   -------------------------------------------------------------------------
  147.   |   b7   |   b6   |   b5   |   b4   |   b3   |   b2   |   b1   |   b0   |
  148.   -------------------------------------------------------------------------
  149.   |  UIP   |  DV2   |  DV1   |  DV0   |  RS3   |  RS2   |  RS1   |  RS0   |
  150.   -------------------------------------------------------------------------
  151.  
  152. UIP - This Update In Progress (UIP) bit is a staus flag that may be monitored
  153. by the program. When UIP is a "1" the update cycle is in progress or will soon
  154. begin. When UIP is a "0" the update cycle is not in progress and will not be
  155. for at least 244 microsecs.
  156.  
  157. DV2,DV1,DV0 - Crystal frequency selection use 0,1,0 for the MicroBee
  158. i.e. DV2=0 DV1=1 DV0=0
  159.  
  160. RS3,RS2,RS1,RS0 - Square-wave or Periodic Interrupt frequency select. On the
  161. MicroBee only the Periodic Interrupt can be used (via IRQ to PIO B bit 7)
  162. Chose the frequency / rate from the following chart
  163. è  -----------------------------------------------------------
  164.   | RS3 | RS2 | RS1 | RS0 |    Rate       |    Frequency    |
  165.   -----------------------------------------------------------
  166.   |  0  |  0  |  0  |  0  |   None        |   None          |
  167.   -----------------------------------------------------------
  168.   |  0  |  0  |  0  |  1  |   3.90625 ms  |     256 Hz      |
  169.   -----------------------------------------------------------
  170.   |  0  |  0  |  1  |  0  |   7.81250 ms  |     128 HZ      |
  171.   -----------------------------------------------------------
  172.   |  0  |  0  |  1  |  1  |   122.070 us  |   8.192 kHz     |
  173.   -----------------------------------------------------------
  174.   |  0  |  1  |  0  |  0  |   244.141 us  |   4.096 kHz     |
  175.   -----------------------------------------------------------
  176.   |  0  |  1  |  0  |  1  |   488.281 us  |   2.048 kHz     |
  177.   -----------------------------------------------------------
  178.   |  0  |  1  |  1  |  0  |   976.562 us  |   1.024 kHz     |
  179.   -----------------------------------------------------------
  180.   |  0  |  1  |  1  |  1  |  1.953125 ms  |     512 Hz      |
  181.   -----------------------------------------------------------
  182.   |  1  |  0  |  0  |  0  |   3.90625 ms  |     256 Hz      |
  183.   -----------------------------------------------------------
  184.   |  1  |  0  |  0  |  1  |   7.81250 ms  |     128 Hz      |
  185.   -----------------------------------------------------------
  186.   |  1  |  0  |  1  |  0  |    15.625 ms  |      64 Hz      |
  187.   -----------------------------------------------------------
  188.   |  1  |  0  |  1  |  1  |    31.250 ms  |      32 Hz      |
  189.   -----------------------------------------------------------
  190.   |  1  |  1  |  0  |  0  |    62.50  ms  |      16 Hz      |
  191.   -----------------------------------------------------------
  192.   |  1  |  1  |  0  |  1  |      125  ms  |       8 Hz      |
  193.   -----------------------------------------------------------
  194.   |  1  |  1  |  1  |  0  |      250  ms  |       4 Hz      |
  195.   -----------------------------------------------------------
  196.   |  1  |  1  |  1  |  1  |      500  ms  |       2 Hz      |
  197.   -----------------------------------------------------------
  198.  
  199.                --------========--------
  200.  
  201.  
  202. REGISTER B     Read/Write Register
  203.  
  204.   -------------------------------------------------------------------------
  205.   |   b7   |   b6   |   b5   |   b4   |   b3   |   b2   |   b1   |   b0   |
  206.   -------------------------------------------------------------------------
  207.   |  SET   |  PIE   |  AIE   |  UIE   |  SQWE  |  DM    |  24/12 |  DSE   |
  208.   -------------------------------------------------------------------------
  209.  
  210. SET - When set to a "1" the update cycle functions normally updating the
  211. counts once per second. When set to a "0" the update cycle is inhibited. Use
  212. of this bit allows the clock to be set correctly.
  213.  
  214. PIE - When set to a "1" the periodic interrupt flag will cause the IRQ pin to
  215. become active. This rate is set by the RS3,RS2,RS1,RS0 bits. When set to a
  216. "0" the IRQ pin is not activated.
  217. èAIE - When set to a "1" the Alarm flag will cause the IRQ pin to become active
  218. when the alarm time matches the real time. When set to a "0" the IRQ pin is not
  219. activated.
  220.  
  221. UIE - When set to a "1" the Update-Ended Interrupt flag will cause the IRQ bit
  222. to become active. Since this happens once per second this is one way of getting
  223. an interrupt once per second. When set to a "0" the IRQ pin is not activated.
  224.  
  225. SQWE - This function cannot be used on the MicroBee as the relevant pin on the
  226. RTC chip is not connected. Leave as a "0".
  227.  
  228. DM - When set to a "1" the RTC chip uses binary data, when set to a "0" the RTC
  229. chip uses BCD data. Use of BCD mode is generally easier.
  230.  
  231. 24/12 - When set to a "1" the 24 hour mode is used. When set to a "0" the 12
  232. hour mode is used.
  233.  
  234. DSE - (No it is NOT the Dick Smith Electronics bit!) It is the Daylight Savings
  235. Enable bit. It was for the US, but recent changes to Daylight Saving dates in
  236. the US mean this bit is now useless even there. Always set to a "0".
  237.  
  238.  
  239.                --------========--------
  240.  
  241. REGISTER C     Read Only Register
  242.  
  243.   -------------------------------------------------------------------------
  244.   |   b7   |   b6   |   b5   |   b4   |   b3   |   b2   |   b1   |   b0   |
  245.   -------------------------------------------------------------------------
  246.   |  IRQF  |  PF    |  AF    |  UF    |   0    |   0    |   0    |   0    |
  247.   -------------------------------------------------------------------------
  248.  
  249. IRQF - Set to a one when any of the other flags are active i.e. PF, AF, or UF
  250. and indicates the IRQ pin is active. A read of this register will clear all
  251. flags so they should be saved by the user program if more than one flag is 
  252. being used for later examination.
  253.  
  254. PF - Periodic Interrupt Flag
  255.  
  256. AF - Alarm Flag
  257.  
  258. UF - Update-ended flag
  259.  
  260.  
  261.                --------========--------
  262.  
  263.  
  264. REGISTER D     Read Only Register
  265.  
  266.  
  267.   -------------------------------------------------------------------------
  268.   |   b7   |   b6   |   b5   |   b4   |   b3   |   b2   |   b1   |   b0   |
  269.   -------------------------------------------------------------------------
  270.   |  VRT   |   0    |   0    |   0    |   0    |   0    |   0    |   0    |
  271.   -------------------------------------------------------------------------è
  272. VRT - When a "1" this indicates power sense pin is at a saisfactory level
  273. and hence the registers should be valid. A "0" indicates an unsatisfactory
  274. level and thus the register contents will be invalid.
  275.  
  276.  
  277.                --------========--------
  278.  
  279. Notes on setting the alarm
  280.  
  281. The alarm may be used in two ways :-
  282.  
  283. 1. The 3 registers are set to the appropriate time and the alarm interrupt will
  284. become active accordingly.
  285.  
  286. 2. By setting any Hex code between XC0 and XFF in an alarm register, the alarm
  287. compare will become active every time at that interval, i.e. setting the hour
  288. alarm to XFF will mean the alarm interrupt becomes active each hour, setting 
  289. the hour and minute alarm registers to XFF will mean an alarm interrupt each
  290. minute and setting all three alarm registers to XFF will mean an alarm 
  291. interrupt each second.
  292.  
  293. See the manufacturer's data books for more information.
  294.  
  295.                --------========--------
  296.  
  297. Part 3 Software
  298.  
  299. 1. See RTC.MWB for a demonstration in basic
  300. 2. SETCLOCK.MAC for am assembler program to set the clock
  301. 3. TIME.MAC for a simple program displaying the time
  302.  
  303.    Thanks to Glenn Satchell for his code which saved me some time and effort.
  304.  
  305.    The information here is correct to the best of my knowledge. Please leave a
  306. message describing any omissions or needed corrections which will go into the 
  307. next version.
  308.  
  309.                                               Tony Ellis VK2ZNH 02.05.86
  310.  
  311.