Skip to content

instruction cache invalidation breaks timing on teensy4 #404

Open
@v0lker

Description

@v0lker
  • Arduino board: teensy 4.1

  • Arduino IDE version (found in Arduino -> About Arduino menu): not installed / not relevant

REPRO STEPS BELOW

  • apply patch from cope with I$ miss on teensy #405

  • define REPRODUCE_TEENSY_TIMING in Adafruit_NeoPixel.cpp and enable choice of reproducing frequency in (i was driving 2 strips, one after the other and by changing the condition between if (!(ct & 1)) { , if (ct & 1) { or if (true) {, i can break the timing on either the second, first or both strips.

  • the desired colour is orange (RGB 0xee4602, GRB 0x46ee02)

  • the colour when the first bit is dropped is green (logic analyser shows 0x8ddc04 == (0x46ee02 << 1))

here are the traces:
beginning_bad_good

proposed fix is in PR #405

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions