1 |
1 |
'''E. [wiki:GraspSw Controller Address Space and Clocking Instructions]''' |
2 |
2 |
[[TracNav(GraspContents)]] |
3 |
3 |
This is a very low level API, used only by someone writing a newer |
4 |
4 |
controller socket level command. All controller socket level |
5 |
5 |
commands are implemented in C code (downloaded as the stage2.srec |
6 |
6 |
to the controller) which modifies registers or address space, and/or |
7 |
7 |
writes instructions to the clocking engine. |
8 |
8 |
Our FPGA [wiki:V2P20Phase0HWSWInterface Memory Map] includes [wiki:V2P20GPIO General Purpose I/O (GPIOs)] that |
9 |
9 |
allow access to: |
10 |
10 |
* Board ID Register Bits |
11 |
11 |
* Board I2C Register Bits |
12 |
12 |
* ADC SPI Configuration Register Interface |
13 |
13 |
* Clocking Engine Register Interface |
|
14 |
== Board ID Bits == |
|
15 |
|
|
16 |
The first generation of STARGRASP controller fpga boards contain a 2 bits in a GPIO register which indicate which slot of a 4 slot chassis the board is in, and 3 more bits which are programmable as a "chassis ID" to differentiate the chassis when used in a mosaic camera or on a network with multiple development systems e.g. in a lab. |
|
17 |
|
|
18 |
The current generation of STARGRASP uses more flexible I2C parts so that we can ID each board and store more information than just the chassis number. |
|
19 |
|
|
20 |
== Board I2C Bits == |
|
21 |
|
|
22 |
(More info needed on all of the things accessible by I2C here.) |
|
23 |
|
|
24 |
== ADC SPI Configuration Register == |
|
25 |
|
|
26 |
(More information on the ADC needed here.) |
|
27 |
|
|
28 |
== Clocking Engine == |
|
29 |
|
|
30 |
The "Clocking Engine" is an fpga-hardware pattern generator which we developed specifically for controlling clock lines to read a detector. It consists of one 3-bit pattern generator we call "PG3" and two 4-bit pattern generators we call "PG4s". Each bit in the PG can control one detector clock line signal. |
|
31 |
|