Difference between revisions of "FRAM Model AIO"

From OpenMotics
Jump to navigation Jump to search
Line 179: Line 179:
 
: ...
 
: ...
 
: Page 24 Byte 252-255: Information regarding Output 639
 
: Page 24 Byte 252-255: Information regarding Output 639
 +
 +
: Every Output has 4 bytes:
 +
:* First byte: Timer Type:
 +
:** 0-> No Timer
 +
:** 1-> 100ms Time
 +
:** 2-> 1s timer
 +
:** 3-> 1m (minute) timer
 +
:* Second byte: Timer value MSB (Most Significant Byte)
 +
:* Third byte: Timer value LSB (Least Significant Byte)
 +
:* Fourth byte: Not in use yet

Revision as of 09:43, 23 August 2019

Introduction

The AIO has an onboard FRAM connected via I2C to the DSPIC33E (The Master). FRAM is used to keep track of the real-time change, Eeprom is used to store the settings. This document describes the FRAM memory locations used.

General Configuration Bytes (Page 0)

Page 0 -> General data
Page Byte
0 64
This byte represents the hour (time) of the last system startup.
Page Byte
0 65
This byte represents the minute (time) of the last system startup.
Page Byte
0 66
This byte represents the second (time) of the last system startup.
Page Byte
0 67
This byte represents the day (date) of the last system startup.
Page Byte
0 68
This byte represents the month (date) of the last system startup.
Page Byte
0 69
This byte represents the year (date) of the last system startup.
Page Byte
0 70-72
These 3 bytes represents the number of hours this system is ON. Byte 70 is the MSB (Most Significant Byte), Byte 72 is the LSB (Least Significant Byte).

Data output modules (Page 1-10)

Page 1 – 10 -> Contains data of the output modules, 32 bytes per module, 8 modules per page, 10 pages (80 modules maximum, 640 outputs -> 0-639)
Page Byte
1 x
This page is entirely used for output module 0-7:
* Module 0: Byte0..31
* Module 1: Byte32..63
* ...
Page Byte
2 x
This page is entirely used for output module 8-15:
* Module 8: Byte0..31
* Module 9: Byte32..63
* ...
Page Byte
3 x
This page is entirely used for output module 16-23:
* Module 16: Byte0..31
* Module 17: Byte32..63
* ...

...

Page Byte
10 x
This page is entirely used for output module 72-79:
* Module 72: Byte0..31
* Module 73: Byte32..63
* ...

Following Module structure is used:

Page Byte
1-10 x
Byte 0 (or 32 or 64 ...): Output state of this output (8 outputs, 1 bit per output, 0=OFF, 1=ON)
Byte 1 (or 33 or 65 ...): Dimmer value of output 0 of the concerning module
Byte 2 (or 34 or 66 ...): Dimmer value of output 1 of the concerning module
Byte 3 (or 35 or 67 ...): Dimmer value of output 2 of the concerning module
Byte 4 (or 36 or 68 ...): Dimmer value of output 3 of the concerning module
Byte 5 (or 37 or 69 ...): Dimmer value of output 4 of the concerning module
Byte 6 (or 38 or 70 ...): Dimmer value of output 5 of the concerning module
Byte 7 (or 39 or 71 ...): Dimmer value of output 6 of the concerning module
Byte 8 (or 40 or 72 ...): Dimmer value of output 7 of the concerning module

Data shutter modules (Page 11-14)

Page 11-14 -> Contains the data of the shutter status
Page Byte
11-14 0-255
Page 11 Byte 0-3: Information regarding Shutter 0
Page 11 Byte 4-7: Information regarding Shutter 1
Page 11 Byte 8-11: Information regarding Shutter 2
...
Page 14 Byte 252-255: Information regarding Shutter 255
Every Roller/Shutter has 4 bytes:
  • First byte: Shutter status
    • BIT0: =1-> direction UP, =0-> direction DOWN
    • BIT1: =1-> shutter is locked, =0-> shutter is unlocked
  • Second byte: Current Timer up value
  • Third byte: Current Timer down value
  • Fourth byte: Current shutter position

Timer data (Page 15-24)

Page 15-24 -> Contains the timer data of each timer output
Page Byte
15-24 0-255
Page 15 Byte 0-3: Information regarding Output 0
Page 15 Byte 4-7: Information regarding Output 1
Page 15 Byte 8-11: Information regarding Output 2
...
Page 24 Byte 252-255: Information regarding Output 639
Every Output has 4 bytes:
  • First byte: Timer Type:
    • 0-> No Timer
    • 1-> 100ms Time
    • 2-> 1s timer
    • 3-> 1m (minute) timer
  • Second byte: Timer value MSB (Most Significant Byte)
  • Third byte: Timer value LSB (Least Significant Byte)
  • Fourth byte: Not in use yet