I2C-ohjatun LED PWM-ohjaimen toteuttaminen FPGA-piirillä
Partanen, Anssi (2017-01-05)
Partanen, Anssi
A. Partanen
05.01.2017
© 2017 Anssi Partanen. Tämä Kohde on tekijänoikeuden ja/tai lähioikeuksien suojaama. Voit käyttää Kohdetta käyttöösi sovellettavan tekijänoikeutta ja lähioikeuksia koskevan lainsäädännön sallimilla tavoilla. Muunlaista käyttöä varten tarvitset oikeudenhaltijoiden luvan.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:oulu-201702231189
https://urn.fi/URN:NBN:fi:oulu-201702231189
Tiivistelmä
Tässä työssä toteutettiin I2C-väylällä ohjattu LED-ohjain. Lähtökohtana oli Digitaalitekniikka 2 kurssilla tehty harjoitustyö, joka sovitettiin FPGA-piirille. RTL-koodi vaati muutoksia vain siltä osin, että FPGA-alusta ja pohjana käytetty harjoitustyö käyttivät eri kellotaajuuksia. Jotta RTL-koodi saatiin toimimaan FGPA-alustalla, työssä perehdyttiin ensin FPGA-piirien konfiguroimiseen. Työn testaamista varten koottiin pienimuotoinen testausjärjestelmä, joka koostui FPGA- ja mikrokontrolleri-alustoista sekä logiikkatasonmuuntimesta. Mikrokontrollerille kirjoitettiin yksinkertainen arduino-koodi, jolla saatiin tehtyä testianimaatio LED-valojen testausta varten. Järjestelmän testaaminen aloitettiin visuaalisesti tarkastelemalla LED-valoja, jonka perusteella pystyttiin huomaamaan ilmeisimmät ongelmat. Lisäksi suoritettujen mittausten avulla pystyttiin rajaamaan ongelmien aiheuttajia ja varmentamaan väylän toiminta ja PWM-aaltomuodot. Korjaamalla virheet RTL-koodista ja lisäämällä logiikkatasonmuunnin, järjestelmä saatiin toimimaan ongelmitta. In this project, I2C bus controlled LED controller was implemented. The starting point was an assignment made on Digital Technology 2 course which was implemented on FPGA circuit for this project. The configuration of FPGA circuits was studied first in order to get RTL code to work on FPGA board. The RTL code was then modified and compiled for the FPGA. The small-scale test environment consisting of FPGA and MCU boards as well as logic level converter was made for testing the system. Simple Arduino code was written for MCU to get test animation for the LEDs. The testing of the system began by examining the LEDs visually. From this the most obvious problems were able to be noticed. In addition, causes of problems could be limited on the basis of made measurements. PWM-waveform and operation of the I2C bus were also verified by the measurements. The system was made to work without problems by correcting errors in RTL-code and adding logic level converter.
Kokoelmat
- Avoin saatavuus [29929]