diff options
| -rw-r--r-- | docs/research.md | 48 | 
1 files changed, 47 insertions, 1 deletions
| diff --git a/docs/research.md b/docs/research.md index a3e86ff..682ed43 100644 --- a/docs/research.md +++ b/docs/research.md @@ -98,7 +98,7 @@ int main() {    setup();    while(1) loop();  } - +```  # Generating audio signals  In order to generate sound for this project, a few posibilities exist (see chapters below) @@ -204,3 +204,49 @@ There are a lot of ways of creating tiles and sprites for pixel art. Underneath  | Asesprite     | https://www.aseprite.org/                                        |Yes   | pixel art        | +# Input  +The playable character has 4 actions that it can perform: +-	movement on the x-axis +-	jump  +-	ability / use + +To control these actions there has to be at least 4 inputs.  +These can either be a button or joystick.  +The actions can be done as follows: + +| Action | Button |	Joystick | +| ------ | ------ | -------- | +| Movement x-axis| 	x | x | +| Jump |	x	 |  | +| Ability | 	x	|  | + +## Handling +A joystick requires an ac input port.  +A button can use both a ac and dc input port. +So the hardware needs to have both an ac input and a dc input, if a button and a joystick are used.  +The input can be handled by either the FPGA(stm32) or microcontroller (STM32). +The microcontroller has the possibility to run multiple task simultaneously if needed. +The FPGA code contains multiple entities. +Data transfer between these entities takes at least one clock cycle. +If there are multiple entities the delay will increase and decreases the playability of the game. + +## Conlcusion +For gameplay reasons it is recommended to have the input handling as close as possible to the game logic unit. +This will decrease the delay between the user-input and onscreen gameplay.  + +# Microcontroller FGPA communication + +The hardware of the game consist out of a microcontroller(stm32) and a FPGA(basys3). The hardware components needs to communicate with each other. For this a protocol is needed. +See table 1 for a comparison of possible protocols: +| Protocol |	UART |	I2C	| SPI | +| -------- | ----- | ---- | --- | +|Number of lines |	1/2 |	2 |	4 | +|Duplex	| Half-duplex	| Half-duplex	| Full-duplex | +|Data transfer speed |	Upto 5mbps | Upto 3.4Mbps – 5Mbps	| Default at 50Mbps. Upto 100Mbps | +|Speed	| Slowest |	Faster than UART | Fastest | + +There are only two devices that has to be connected. Complexity and master/slave amount are not relevant for this purpose.  +If there are multiple entities the delay will increase and decreases the playability of the game. + +## Conlcusion +It is recommended that SPI will be the communication protocol because of the data transfer speeds. The is a lot of data transfer between the microcontroller and FPGA. |