Skip to content

instruction cache invalidation breaks timing on teensy4 #404

@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

Activity

linked a pull request that will close this issue on Oct 3, 2024
v0lker

v0lker commented on Oct 3, 2024

@v0lker
Author

@KurtE , @PaulStoffregen as you were previously involved in this, you might have some thoughts?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      Participants

      @v0lker

      Issue actions

        instruction cache invalidation breaks timing on teensy4 · Issue #404 · adafruit/Adafruit_NeoPixel