Xmega bibliotheken

Voor de Xmega zijn bij het schrijven van de reader een aantal bibliotheken ontwikkeld. Deze zijn ontwikkeld met Atmel Studio 7, versie: 7.0.1931, voor de AVR8 Toolchain versie 5.4.0 en getest met een Xmega256a3u. De software is vrij te gebruiken.
Eventuele adviezen, vragen en andere reacties kunnen gestuurd worden naar Wim Dolman (info@dolman-wim.nl).

  • Klokfuncties voor de Xmega [on-line documentatie]
    Het zip-bestand clock_20190710.zip bevat een folder clock met daarin een folder doxygen_clock met de bijbehorende documentatie en drie bestanden:
    • clock.c (met klokfuncties)
    • clock.h (met de macrodefinities en prototypes van de klokfuncties)
    • readme.html (verwijst door naar de startpagina van de documentatie doxygen_clock/html/index.html)

  • Seriële Interface voor USART0 van poort F (geschikt voor HvA-Xmegaboard) [on-line documentatie]
    Deze interface maakt geen gebruik van de Atmel drivers en heeft twee niet-circulaire buffers voor het verzenden en onvangen van gegevens. Deze interface is geschikt voor de standaard streams. In de applicatie kunnen de standaard io-functies, zoals printf en scanf gebruikt worden. Het zip-bestand serialF0_20180416.zip bevat een folder serialF0 met daarin een folder doxygen_serialF0 met de bijbehorende documentatie en vier bestanden:
    • serialF0.c (met functies van de serial interface)
    • serialF0.h (met macrodefinities en prototypes van de serial interface)
    • serialF0_test.c (testprogramma voor de serial interface)
    • readme.html (verwijst door naar de startpagina van de documentatie doxygen_serialF0/html/index.html)

  • Xmega Hardware Abstraction Layer for Ucglib (versie 4.0) [on-line documentatie]
    Deze bibliotheek bevat de Hardware Abstraction Layer om de Ucglib van Oli Kraus te kunnen gebruiken met de Xmega. Het zip-bestand ucglib_xmega_hal_20200930.zip bevat een folder ucglib_xmega_hal met daarin een folder doxygen_ucglib_xmega_hal met de bijbehorende documentatie.
    Deze vier bestanden zijn nodig om de HAL te testen:
    • ucglib_xmega_hal.c (met de functies van de HAL)
    • ucglib_xmega.h (met de macrodefinities en prototypes voor de HAL)
    • ucg_print.c (met extra printfaciliteiten overeenkomend met Arduino versie ucglib)
    • ucg_bmp.c (met extra faciliteiten voor het afdrukken van plaatjes)
    • ucg_font.c (aangepaste versie van origineel)
    • ucg.h (voor Xmega aangepaste versie van ucg.h)
    • main_test_hal.c (testprogramma voor deze HAL)
    Deze drie bestanden zijn nodig om de voorgecompileerde bibliotheek te testen:
    • ucglib_xmega.a (voorgecompileerde bibliotheek)
    • ucglib_xmega.h (met de macrodefinities en prototypes voor de HAL )
    • main_test_library.c (testprogramma voor voorgecompileerde bibliotheek)
    Daarnaast is er een folder examples met bitmap-voorbeelden en een folder gcc met code voor een programma om png-bestanden om te zetten naar bruikbare bitmaps en een bestand readme.html dat verwijst door naar de startpagina van de documentatie doxygen_ucglib_xmega_hal/html/index.html.
    Versie 4.0 wijkt qua opzet nogal af van versie 3.0 en ook van versie 2.1. In tegenstelling tot de eerdere versies is versie 4.0 is stabiel bij geheugengebruik voorbij de 64K limiet. Ondanks dat zijn de zips van versie 3.0 en versie 2.1 ook nog beschikbaar: ucglib_xmega_hal_20200530.zip, ucglib_xmega_hal_20200223.zip.

  • Bibliotheek voor de Nordic nrf24L01+ (geschikt voor HvA-Xmegaboard) [on-line documentatie]
    Deze bibliotheek bevat de interface voor de nrf24L01+ van Nordic Semiconductor. Het zip-bestand nrf24_20160728.zip bevat een folder nrf24 met daarin een folder doxygen_nrf24 met de bijbehorende documentatie en zeven bestanden:
    • nrf24L01p.c (met algemene functies voor interface)
    • nrf24L01p.h (met macrodefinities en prototypes van algemene functies voor interface)
    • nrf24spiXM2.c (met specifieke voor functies voor het HvA-Xmegaboard)
    • nrf24spiXM2.h (met macrodefinities en prototypes van specifieke voor functies voor het HvA-Xmegaboard)
    • nrf24_test_send.c (testprogramma voor zenden data met de nrf24 bibliotheek)
    • nrf24_test_receive.c (testprogramma voor ontvangen data met de nrf24 bibliotheek)
    • readme.html (verwijst door naar de startpagina van de documentatie doxygen_nrf24/html/index.html)

  • Algemene ringbuffer [on-line documentatie]
    Deze bibliotheek bevat een eenvoudige, maar zeer flexibele ringbuffer. Het zip-bestand ring_20210527.zip bevat een folder ring met daarin een folder doxygen_ring met de bijbehorende documentatie en twee bestanden:
    • ring.h (met de complete implementatie van de ringbuffer)
    • readme.html (verwijst door naar de startpagina van de documentatie doxygen_ring/html/index.html)

  • Aanpassingen voor FatFs van Chan voor de Xmega [on-line documentatie]
    De aanpassingen maken het bestandssyteem FatFs van Chan geschikt voor de Xmega van het HvA Xmegaboard. Het zip-bestand sdcard_20200311.zip bevat een folder sdcard met daarin een folder doxygen_sdcard met de bijbehorende documentatie en zeven bestanden:
    • sdmm.c (een aangepaste sdmm.c uit voorbeeld generic release 11a)
    • mmc_avr.c (een aangepaste mmc_avr.c uit voorbeeld avr release 11a)
    • diskio.h (de diskio.h uit voorbeeld avr release 11a)
    • sdcard_test_sdmm.c (testprogramma toepassing sd-kaart met aangepaste sdmm.c)
    • sdcard_test_mmc_avr.c (testprogramma toepassing sd-kaart met aangepaste mmc_avr.c)
    • demo_ff.c (testfunctie, die gebruikt wordt bij beide testprogramma's)
    • readme.html (verwijst door naar de startpagina van de documentatie doxygen_sdcard/html/index.html)

  • HD44780 compatibele LCD-bibliotheek [on-line documentatie]
    Deze bibliotheek bevat een interface voor HD44780 compatibele LCD's en is geschikt voor de 4-bit en de 8-bit mode en kan gebruikt met en zonder busy flag.
    Let bij het aansluiten van het LCD op de Xmega op. De Xmega is niet 5 V tolerant. Veel HD44780-compatibele LCD's werken op 5 V. Bij een toepassing van een 5 V display met de busy flag komt er 5 V op de ingangen van de Xmega te staan. Gebruik in dat geval een levelshifter.
    Het zip-bestand lcd_20131022.zip bevat een folder lcd met daarin een folder doxygen_lcd met de bijbehorende documentatie en vier bestanden:
    • lcd.c (met functies lcd-bibliotheek)
    • lcd.h (met macrodefinities en prototypes lcd-bibliotheek)
    • test_lcd.c (testprogramma voor de lcd-bibliotheek)
    • readme.html (verwijst door naar de startpagina van de documentatie doxygen_lcd/html/index.html)

  • Wrapper voor UART-driver van Atmel/Streams op basis van wrapper [on-line documentatie]
    Deze wrapper gebruikt de UART-driver van Atmel en maakt het gebruik van deze driver wat eenvoudiger. De UART driver van Atmel is beschreven in de application note 1307 "Using the XMEGA USART", zie http://ww1.microchip.com/downloads/en/AppNotes/doc8049.pdf. Een zip-bestand met de software staat op de site van Atmel: http://ww1.microchip.com/downloads/en/AppNotes/AVR1307.zip.
    Het zip-bestand uart_20161003.zip bevat een folder uart met daarin een folder doxygen_uart met de bijbehorende documentatie en acht bestanden:
    • uart.c (met functies van de wrapper)
    • uart.h (met macrodefinities en prototypes van de wrapper)
    • wrapper_test.c (testprogramma voor de wrapper met USART1 van poort C)
    • wrapper_test_f0.c (testprogramma voor de wrapper met USART0 van poort F)
    • stream.c (met functies voor standaard streams)
    • stream.h (met macrodefinities en prototypes voor standaard streams)
    • stream_test.c (testprogramma voor streams)
    • readme.html (verwijst door naar de startpagina van de documentatie doxygen_uart/html/index.html)