DSP - workshop µBRD Inhoudsopgave 1
2
3
4
5
Inleiding ........................................................................................................................................... 3 §1.1
Inleiding ................................................................................................................................... 3
§1.2
Doelstellingen .......................................................................................................................... 4
§1.3
Hardwarebenodigdheden ....................................................................................................... 5
§1.4
Softwarebenodigdheden ......................................................................................................... 6
Ontwikkelomgeving installeren ....................................................................................................... 7 §2.1
Ontwikkelbord aansluiten ....................................................................................................... 7
§2.2
Stuurprogramma’s installeren................................................................................................. 7
§2.3
IDE installeren ......................................................................................................................... 8
§2.4
Toolchain installeren ............................................................................................................... 9
VMware installeren ....................................................................................................................... 10 §3.1
VMware Player installeren .................................................................................................... 10
§3.2
VMware Player uitvoeren...................................................................................................... 10
§3.3
Ontwikkelbord aansluiten ..................................................................................................... 10
§3.4
COM-poortnummer achterhalen .......................................................................................... 11
Installatie valideren ....................................................................................................................... 12 §4.1
Hardware testen .................................................................................................................... 12
§4.2
Ontwikkelomgeving testen ................................................................................................... 13
Code schrijven ............................................................................................................................... 15 §5.1
Nieuw project opzetten......................................................................................................... 15
§5.2
Digitale in- en uitgangen ....................................................................................................... 16
§5.3
ADC ........................................................................................................................................ 16
§5.4
PWM ...................................................................................................................................... 16
§5.5
Seriële communicatie ............................................................................................................ 16
§5.6
Audio samplen ....................................................................................................................... 16
§5.7
Audio genereren .................................................................................................................... 16
§5.8
Audio loopback ...................................................................................................................... 16
§5.9
Audio echo............................................................................................................................. 16
1
Inleiding
§1.1 Inleiding
Binnen het vak Digital Signal Processing wordt een ontwikkelbord gebruikt, waarmee digitale signalen kunnen worden gesampled en later weer in analoge vorm kunnen worden uitgevoerd. Het doorlopen van deze workshop bewerkstelligt dat de ontwikkelomgeving snel beschikbaar komt, zodat er zo veel mogelijk tijd besteed kan worden aan het ontwikkelen van de daadwerkelijke audiofilterapplicaties. Om niet meteen in het diepe te duiken, gaan we vervolgens met eenvoudige codevoorbeelden aan de slag, zodat je het ontwikkelbord onder de knie krijgt. Ga naar hoofdstuk 2 als je de stappen zelf wilt uitvoeren op je Windowsinstallatie. Ga naar hoofdstuk 3 om veel sneller aan de slag te gaan met de kanten-klare VMware image. In de hoofdstukken daarna worden stap-voor-stap enkele codevoorbeelden aangepast, waaronder een loopbackfilter. Tot slot ga je zelf een echofilter maken.
§1.2 Doelstellingen
Nadat je deze workshop hebt doorlopen, heb je het volgende bereikt: op je laptop draait de ontwikkelomgeving met: o een Integrated Development Environment (IDE) o een toolchain (compiler en linker) o een flashprogramma o de benodigde stuurprogramma’s de basiswerking van de hardware is getest. je kent de basisfunctionaliteit van de ontwikkelomgeving: o broncode bewerken o documentatie opzoeken o code compileren o projecten linken o firmware flashen je weet hoe je elk onderdeel van het µBRD aan kan sturen: o 16 leds o 5 knopjes o 3 potmeters o buzzer o full colourled o seriële communicatie je kunt geluid samplen via Analog Digital Conversion (ADC). je kunt geluid genereren via Pulse Width Modulation (PWM).
§1.3 Hardwarebenodigdheden
1 x laptop met Windows 1 x µBRD Het µBRD is ontwikkeld door oud-Fontysstudent Jim Clermonts binnen zijn bedrijf Staronic. Documentatie is beschikbaar als wikiartikelen op www.uboard.eu.
1 x kabel USB-A↔USB-B
1 x kabel minijack↔minijack
§1.4 Softwarebenodigdheden
IDE: MPLAB_IDE_8_80.zip of MPLAB-X toolchain: mplabc30_v3_30c_windows.exe flashprogramma: “uBoard bootloader.exe” of “PIC bootloader.exe” stuurprogramma: CDM20814_WHQL_Certified.zip of FTDI_driver.exe testfirmware: ubrd_hardware_test.hex projectmap: “01. Button test” projectmap: “02. Blinking Leds” projectmap: “03. Walking Led” projectmap: “04. Moodlight” projectmap: “05. Switches” projectmap: “06. RS232” projectmap: “07. Buzzer” projectmap: “08. Potmeter” projectmap: “09. Amplifier” projectmap: “10. Sine” projectmap: “11. Echo”
uBoard bootloader.exe
uBoard bootloader.hex
FTDI-driver
UART
USB-host
FTDI-chip
PC
microcontrollerbord
In de VMware-image zijn al deze bestanden al aanwezig. Je hebt dan alleen nog de VMware Player nodig om de image af te kunnen spelen.
Elke projectmap bestaat uit: project.hex gelinkte firmware project.c C-broncode project.mcp MPLAB-project project.mcw MPLAB-workspace (niet meegeleverd)
2
Ontwikkelomgeving installeren
§2.1 Ontwikkelbord aansluiten
Steek de USB-B-connector in het ontwikkelbord en de USB-Aconnector in de PC. §2.2 Stuurprogramma’s installeren
Pak het bestand “CDM20814_WHQL_Certified.zip” uit naar een tijdelijke map.
De fabrikant FTDI biedt twee soorten stuurprogramma’s aan: 1. VCP (Virtual Com Port) 2. D2XX (Direct) Wij gebruiken de VCP-variant.
Ga naar Configuratiescherm Systeem Apparaatbeheer. Klap “Overige Apparaten” uit. Kies “USB Serial Port”. Ga naar Actie”Stuurprogramma’s bijwerken…”. Kies “Op mijn computer naar stuurprogramma’s zoeken”. Kies de tijdelijke map en vink “Inclusief onderliggende mappen” aan.
Klap “Poorten (COM & LPT)” uit. Lees hier het nieuw toegekende COM-poortnummer af. Als er al een stuurprogramma geïnstalleerd was, kan het Propertiesvenster uitsluiten welke COM-poort de juiste is. Zoek de COM-poort waarbij de fabrikant “FTDI” vermeld is. De FTDI-driver kan voor twee doeleinden gebruikt worden: 1. Het flashen van je .hexexecutable vanuit de PC naar de microcontroller. 2. Het communiceren tussen de PC en microcontroller.
§2.3
IDE installeren
Pak MPLAB_IDE_8_80.zip uit naar een tijdelijke map. Start setup.exe. Kies voor een Complete installatie. Het is onnodig om HI-TECH C te installeren.
In de µBRD-documentatie wordt al gesproken over MPLAB versie X. Die gaan wij niet gebruiken, omdat het slechts om een betaversie gaat. In plaats daarvan kiezen we voor de beter ondersteunde versie 8.80.
§2.4 Toolchain installeren
Start mplabc30_v3_30c_windows.exe. Kies bij “Installation Directory” voor “Versioned Directory Name”.
Kies bij “Installation Type” voor “Lite Compiler”.
MPLAB omvat een ontwikkelomgeving en ondersteuning voor assemblertaal. Bij gebruik van C-talen moet voor elk targetplatform een aparte compiler geïnstalleerd worden. In dit geval gaat het om het C33-platform.
3
VMware installeren
§3.1 VMware Player installeren
Heb je een 64-bit-CPU, dan kun je deze versies gebruiken: VMware Player 4 (gratis) óf VMware Workstation 8 (commercieel) Heb je een 32-bit-CPU, gebruik dan deze versies: VMware Player 3 (gratis) óf VMware Workstation 7 (commercieel) §3.2 VMware Player uitvoeren
Kies File”Open a Virtual Machine…”. Selecteer het betreffende vmx-bestand. Kies Virtual MachinePower”Play Virtual Machine”. §3.3 Ontwikkelbord aansluiten
Steek de USB-B-connector in het ontwikkelbord en de USB-Aconnector in de PC. In VMware moet dit als Removable Device herkend worden en moet geconnect zijn. Als het connecten nog niet automatisch gebeurd is, kies: Virtual MachineRemovable Devices Future Devices FT232R USB UART “Connect (Disconnect from host)”.
Een VMware image bestaat uit de volgende onderdelen: image.vmx VMware-configuratie image.vmdk VMware-harddisk image-s###.vmdk VMware-harddisk-vervolg
§3.4 COM-poortnummer achterhalen
Ga naar Configuratiescherm Systeem Apparaatbeheer. Klap “Poorten (COM & LPT)” uit. Lees hier het nieuw toegekende COM-poortnummer af. Als er meerdere COM-poorten in de lijst staan, kan het Propertiesvenster uitsluiten welke COM-poort de juiste is. Zoek de COM-poort waarbij de fabrikant “FTDI” vermeld is.
4
Installatie valideren
§4.1 Hardware testen
Start “uBoard bootloader.exe”. Selecteer het COM-poortnummer dat eerder is afgelezen.
Gebruik niet het bestand “PIC bootloader.exe” daar dit is beschadigd en zou uitmonden in de melding “De toepassing kan niet worden gestart omdat de configuratie naast elkaar onjuist is.”.
Kies het firmwarebestand ubrd_hardware_test.hex. Druk op de Resetknop op het ontwikkelbord.
Het ontwikkelbord toont: “*** uBRD *** bootloader V1.0 Ready to program or press button”
Precies één groene led brandt. Brandt de led niet, dan werkt de bootloader niet meer. Verwijder dan de USB-kabel en steek hem opnieuw in. Kies “Read ID” en constateer dat de juiste tekst verschijnt.
Bij “Read ID” verschijnt: “dsPIC33FJ64GP802”
Kies “Program”. Controleer dat het ontwikkelbord de juiste acties uitvoert.
Op het ontwikkelbord verschijnen achtereenvolgens: “Reading PM” “Writing PM” “Writing CM” “Run…” Vervolgens knipperen de 10 groene leds, 2 oranje leds en 4 rode leds een paar keer per seconde aan en uit. Je weet nu dat de seriële communicatie en de microcontroller naar behoren functioneren.
§4.2 Ontwikkelomgeving testen
Start “MPLAB IDE”. Kies ProjectOpen…
Selecteer “02. Blinking Leds\blinking leds.mcp”. Kies ConfigureSelect Device… Kies bij Device Family: “16-bit DSCs (dsPIC33)”. Kies bij Device: “dsPIC33FJ64GP802”.
FileOpen… / FileSave Kan gebruikt worden voor het openen en opslaan van losse cbroncodebestanden of cheaderbestanden. Kan niet gebruikt worden voor het openen van workspaces/projecten. ProjectOpen … Kan gebruikt worden voor het openen van projectbestanden wanneer een mcw-workspacebestand niet beschikbaar is. FileOpen Workspace… / FileSave Workspace Kan gebruikt worden voor het openen en opslaan van workspacebestanden inclusief de daaraan gekoppelde projecten.
Kies ProjectMake. Kies ViewOutput en controleer dat het Output-venster eindigt met: “BUILD SUCCEEDED”
Controleer dat de huidige datum en tijd overeenstemmen met die van het bestand “02. Blinking Leds\blinking leds.hex”.
Flash dit bestand via “uBoard bootloader”.
5
Code schrijven
§5.1 Nieuw project opzetten
Start “MPLAB IDE”. Kies ProjectProject Wizard… Kies bij Device voor “dsPIC33FJ64GP802”.
Kies bij Active Toolsuite voor “Microchip C30 Toolsuite”.
Maak een lege map voor het project. Kies FileAdd New File to Project… Maak “main.c”.
§5.2 Digitale in- en uitgangen
leds en knoppen §5.3 ADC
potmeters §5.4 PWM
RGB led §5.5 Seriële communicatie
§5.6 Audio samplen
§5.7 Audio genereren
§5.8 Audio loopback
§5.9 Audio echo