| 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 |
|