Stap 7: Maken de kale-bot-data acquisitie software - part1: de SPI
De data-acquisitie en het signaal digitaal signaal conditioning allebei tijd kritieke taken, zodat de uitvoering ervan moet worden gedaan in een real-time operating systeem of in een snelle automaat/micro-controler. De eerste benadering zou het gebruik van Linux met Xenomai distributie, terwijl de tweede benadering een firmware aan de micro-controler schrijven zou. Daar had ik meer ervaring met hardware/firmware, heb ik gekozen voor de tweede methode. Aangezien de embedded ARM-processor twee fysieke cores heeft, wilden mij voor wekken een snelle firmware naar één van de kernen, en een werkend systeem aan de andere kern.
Het eerste ding om te doen is de configuratie van de SPI-randapparatuur, en de ADS1299 analoge front-end. De SPI-pripheral was geconfigureerd als het voorbeeld van de EEPROM in SDK, met enkele kleine wijzigingen voorgesteld:
XSpiPs_SetClkPrescaler(SpiInstancePtr, XSPIPS_CLK_PRESCALE_256);
De bovenste vermeld snipet was moddified te vertragen de SPI klok onder 1MHz. Voor gegevensoverdracht werd de polled overdrachtsfunctie gebruikt.
De volgorde van de configuratie is als volgt: op beginstand zetten, STOP_DATA_TRANSMISSION, WRITE_DATA_REGISTERS, ENABLE_DATA_TRANSMISSION, START_ACQUISITION. Deze reeks is een must bij het configureren van de ADS1299, aangezien na reset, het IC automatisch begint om gemeten gegevens te verzenden, en register veranderingen zullen niet opslaan. In de setup ik 5 chanels uitgeschakeld (ik ben van plan te gebruiken slechts 3 + grond), de verwijzing naar de gemeenschappelijke, de bemonsteringsfrequentie tot 1kHz, gewijzigd en krijgen tot 24.
Met deze instellingen gemaakt, het enige wat te doen is om te testen van de communicatie, behalve kunnen er enkele kleine problemen: als de batterij laag is, maar het digitale gedeelte powerered vanaf USB is, de commucation kan worden gemaakt, maar de overname zal niet werken. Een ander probleem kon de SPI-parameters correct instellen. Beide van deze problemen kunnen worden opgelost met behulp van een oscilloscoop en logic analyzer.