Kart/professor

From FSI
(Difference between revisions)
Jump to: navigation, search
(Sequence register)
(HTTP 301)
 
(24 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{private}}
+
#REDIRECT [[Kart]]
{{TOC right}}
+
  
== FPGA boards ==
+
[[Category:Kart]]
 
+
The FPGA modules use MicroSemi [http://www.actel.com/products/igloo/ IGLOO] low-power FPGAs.
+
 
+
The boards have been designed for AGL125 in a VQ100 package.
+
However, it is possible to mount the following devices with the same package on that board:
+
* AGL060: 1'536 VersaTiles, 4 4'608-bit RAMs
+
* AGL125: 3'072 VersaTiles, 8 4'608-bit RAMs
+
* AGL250: 6'144 VersaTiles, 8 4'608-bit RAMs
+
One VersaTile can implement a 3-input combinatorial function or an E-flipflop.
+
 
+
=== Pin Compatibility ===
+
As a simple compatibility rule for these devices, one should use:
+
* pins 43, 60, 93 and 94 for I/Os but not as a clock inputs
+
* pin 99 tied to GNDQ
+
* pin 100 tied to VMV0 (3.3 V)
+
 
+
=== Global Clock Networks ===
+
Note that pin names starting with '''GF''' and '''GC''' are associated with the chip global networks, and GA, GB, GD, and GE are used for quadrant global networks.
+
 
+
In case of the AGL060 - AGL250 the following pins are truly Global Clocks.
+
* pins 10, 11, 13, 15, 16 for Network GF
+
* pins 61, 62, 63, 64, 65 for Network GC
+
 
+
== Synthesis results ==
+
 
+
The device usage gives an idea if the synthesis has worked properly.
+
Here the results for the AGLN125V5:
+
* [[Kart/Bluetooth|controller]]: 40 % + 2 Block RAMs
+
* [[Kart/DC motor controller#FPGA design|DC motor]]: 13 %
+
* [[Kart/stepper motor controller#FPGA design|stepper motor]]: 25 %
+
* I/O board: 34 %
+
 
+
== Sequencer ==
+
 
+
The sequencer allows to store and play a special move specified by a sequence of commands.
+
 
+
=== SmartPhone to Kart ===
+
 
+
{| cellpadding="4" cellspacing="0" border="1"
+
! Address
+
! Datatype
+
! Description
+
|-
+
| 7
+
| UINT2
+
| Control register
+
|-
+
| 8
+
| UINT16
+
| Sequence register
+
|}
+
 
+
==== Control register ====
+
 
+
{| cellpadding="4" cellspacing="0" border="1"
+
! Bit
+
! Meaning
+
! Description
+
|-
+
| 0
+
| New sequence
+
| sets the sequence RAM address back to 0
+
|-
+
| 1
+
| Run / stop
+
| starts or stops a sequence
+
|}
+
 
+
==== Sequence register ====
+
 
+
{| cellpadding="4" cellspacing="0" border="1"
+
! Bit
+
! Meaning
+
! Description
+
|-
+
| 15 ÷ 12
+
| Command
+
| 0: nop <br /> 1: set_speed(speed) <br /> 2: set_angle(angle) <br /> 3: set_LEDs(pattern) <br /> 4: run_distance(hall ticks) <br /> 5: run_for(milliseconds) <br /> 6: run_until(event) <br /> F: end
+
|-
+
| 11 ÷ 0
+
| Argument
+
|
+
|}
+
 
+
=== Kart to SmartPhone ===
+
 
+
{| cellpadding="4" cellspacing="0" border="1"
+
! Address
+
! Datatype
+
! Description
+
|-
+
| 7
+
| UINT16
+
| status
+
|}
+
 
+
==== Status register ====
+
 
+
{| cellpadding="4" cellspacing="0" border="1"
+
! Bit
+
! Meaning
+
! Description
+
|-
+
| 0
+
| Running
+
| indicates that a sequence is currently running
+
|}
+

Latest revision as of 20:36, 17 September 2024

  1. REDIRECT Kart
Personal tools
Namespaces
Variants
Actions
Navigation
Modules / Projects
Browse
Toolbox