Skip to content

Alejo2313/LSCE_Microcontroller

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 

Repository files navigation

LCSE PROJECT

This project is an extended work for Laboratorio de Circuitos y Sistemas Electrónicos (LCSE), a subject of Máster Universitario en Ingeniería de Sistemas Electrónicos (MUISE) and Doble Máster en Ingeniería de Telecomunicaciones e Ingeniería de Sistemas Electrónicos (MUIT-MUISE).

The aim of this project is implement a specific use microcontroller with reduced functionalities using VHDL. The architecture employed is similar to the Harvard's one, and it is shown in the next Figure: ARCHITECTURE

The system is formed by:

  • CPU: it is going to be used the PicoBlaze.
  • DMA: hardware mechanism that allows data transferring between peripheral and memory in background.
  • RS232: serial communication interface.
  • Arbitrium signal: allows or denies the access to the master communication bus.
  • 7 segment display: shows addresses and its content.
  • GPIO: pins for general purpose.

Memory map

mem_map

All addresses have been chosen in order to ease the range checking. Thinking in future improvements, some blocks has been left empty.

DMA

DMA_MM

The DMA uses 16 bytes of memory space and its range goes from 0xC0 to 0xD0. Each channel has 4 configuration registers.

  • DMA_CONFIG_CH: Most Significant Bit to enable/disable the channel. Next 2 bits to configue the transmission mode:
    • 00: Memory to Memory
    • 01: Memory to Peripheral
    • 10: Peripheral to Memory
    • 11: Disabled
  • DMA_SRC_CH: source address from 0x00 to 0xFF.
  • DMA_DEST_CH: destination address from 0x00 to 0xFF.
  • DMA_CNT_CH: The 4 left bits for the transmission counter with values from 0x0 to 0xF. The other 4 bits in the same range for the number of transmissions realizated. Its memory map is shown below: DMA_MEM_MAP

RS232

Telecommunication standard designed for serial transmission data. This implementation uses two wires for transmission and reception without flow contro. Its memory map is shown below:

RS232_MEM_MAP

GPIO

GPIO_MEM_MAP

The GPIO uses 10 bytes of memory space and its range goes from 0xE0 to 0xEF.

  • IRQ_MASKA/B: Port A/B interruption mask with values from 0X00 to 0XFF.
  • IRQ_MODEA/B: Interrupt mode for GPIO 'N'. '1' for falling and '0' for rising.
  • MODEA1/2 and MODEB1/2: Funcition mode for GPIO 'N':
    • 00: High Z
    • 01: Output
    • 10: Input
    • 11: ALT function
  • GPIOA/B REGISTERS: GPIO 'N' value. '1' for High and '0' for Low.

Segment display

DISP_MEM_MAP

The Segment display uses 6 bytes of memory space and its range goes from 0xD8 to 0xDF.

  • EN: MSB for enable or disable the module. '1' for enable and '0' for disable.
  • ENX: Enable display X where the MSB is for display 0 and LSB for display 7. '1' for disable and '0' for enable.
  • DIGITX_REGISTERS: value of each display. The 4 left bits for pair displays and the other 4 for odd ones.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors