Forum Rule: Always post complete source code & details to reproduce any issue!
Page 100 of 134 FirstFirst ... 50 90 98 99 100 101 102 110 ... LastLast
Results 2,476 to 2,500 of 3341

Thread: Teensy 4.0 First Beta Test

  1. #2476
    Senior Member+
    Join Date
    Jul 2014
    Location
    New York
    Posts
    3,336
    Quote Originally Posted by defragster View Post
    Quick glance the link in #2470 looks like the one where those tabs violated overall width limit.
    Check this out: https://www.digikey.com/product-deta...9-2-ND/1002104

    Found it from this search: https://www.digikey.com/products/en/...=1&pageSize=25

  2. #2477
    Senior Member
    Join Date
    Jul 2014
    Posts
    2,188
    Quote Originally Posted by defragster View Post
    Quick glance the link in #2470 looks like the one where those tabs violated overall width limit.
    Since I still have also some them, I plan to cut-off the side-wings (not sure if there then fit) or use them for extension boards.
    Nice thing with these model is that it is nearly ZIF (the amber part can be pulled to place in the ribbon and the pushed back to fasten.

  3. #2478
    Senior Member
    Join Date
    Jul 2014
    Posts
    2,188
    Quote Originally Posted by mjs513 View Post
    if you buy 2000 of them

  4. #2479
    Senior Member duff's Avatar
    Join Date
    Jan 2013
    Location
    Las Vegas
    Posts
    955
    has anyone noticed that USB Serial doesn't work if compile and upload a blank sketch?

  5. #2480
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    4,696
    (I think we are on page 100 now 8)
    Quote Originally Posted by mjs513 View Post
    @KurtE

    Ok heres the story. Got pins 26, 27, and 1 blinking no issue. But then I noticed that if I entered pin 0 not would print now blinking pin 0.... the LED keeps blinking. So my previous post was wrong on pin0. In that test I connected to pin0 first then entered 0. This test I changed the pin first then changed the connection.

    The reason why I rechecked again was because I still couldn't get the display to work on SPI1.

    EDIT:
    @KurtE - tried using cs=10 but no luck.
    Pin 0 - probably because stupid bug/assumption in test sketch: if (next_pin_number != 0) {

    Obviously could be done differently... like maybe simply a bool saying we have a new number and use it...

    I think there may be a care package from PJRC at our mailbox which I should pick up later today or tomorrow.

    Might have to go back to town as have dead battery in tractor... Although lifting probably lifting big battery does not help hernia...
    As for SPI1, I don't think with our ILI9488 driver we care about being a CS pin. So more or less any valid digital pin should be fine.

  6. #2481
    Senior Member+ Frank B's Avatar
    Join Date
    Apr 2014
    Location
    Germany NRW
    Posts
    5,587
    @Defragster:

    I remember you did something with the RTC - the example TimeTeensy3 does not work for me - do you have any hints? I think there is some code missing?

  7. #2482
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    4,696
    @mjs513 - You might try changing in SPI.cpp

    Code:
    const SPIClass::SPI_Hardware_t  SPIClass::spiclass_lpspi3_hardware = {
    	CCM_CCGR1, CCM_CCGR1_LPSPI3(CCM_CCGR_ON),
    	DMAMUX_SOURCE_LPSPI3_TX, DMAMUX_SOURCE_LPSPI3_RX, _spi_dma_rxISR1,
    	1, 
    	7 | 0x10,
    	26,
    	7 | 0x10,
    	27,
    	7 | 0x10,
    	0,
    	7 | 0x10,
    	IOMUXC_LPSPI3_SCK_SELECT_INPUT, IOMUXC_LPSPI3_SDI_SELECT_INPUT, IOMUXC_LPSPI3_SDO_SELECT_INPUT, IOMUXC_LPSPI3_PCS0_SELECT_INPUT,
    	1, 1, 0, 0
    };
    to
    Code:
    const SPIClass::SPI_Hardware_t  SPIClass::spiclass_lpspi3_hardware = {
    	CCM_CCGR1, CCM_CCGR1_LPSPI3(CCM_CCGR_ON),
    	DMAMUX_SOURCE_LPSPI3_TX, DMAMUX_SOURCE_LPSPI3_RX, _spi_dma_rxISR1,
    	1, 
    	7 | 0x10,
    	26,
    	2 | 0x10,
    	27,
    	7 | 0x10,
    	0,
    	7 | 0x10,
    	IOMUXC_LPSPI3_SCK_SELECT_INPUT, IOMUXC_LPSPI3_SDI_SELECT_INPUT, IOMUXC_LPSPI3_SDO_SELECT_INPUT, IOMUXC_LPSPI3_PCS0_SELECT_INPUT,
    	1, 0, 1, 0
    };
    If I am looking correct at pages 842-843 in new manual...

  8. #2483
    Senior Member+ Frank B's Avatar
    Join Date
    Apr 2014
    Location
    Germany NRW
    Posts
    5,587
    @Paul, looks like the RTC is connected to the SNVS - I can't download the security reference manual.
    I think it's up to you to add the code for RTC.. otherwise I'd do it.

  9. #2484
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    8,557
    Frank - this should be what you need to start and get RTC secs ....

    Quote Originally Posted by Frank B View Post
    @Defragster:

    I remember you did something with the RTC - the example TimeTeensy3 does not work for me - do you have any hints? I think there is some code missing?
    I didn't get it converted to TIME's tmElements_t, Just using some code - to watch it counting seconds. It does store time value that I put in the Secs_since_1970 and it worked to increment and maintain. I think that is the base of the TimeLib.h?

    FrankB - BTW - Battery-backed-NV-RAM not as big as on the T_3.x's::
    19.4.2.1 Using the General-Purpose Register
    SNVS implements a 128-bit general-purpose register allows software to store a small
    amount of data.
    Is that the 128 bits here?: IMXRT_IOMUXC_SNVS_GPR (*(IMXRT_REGISTER32_t *)0x400A4000)

  10. #2485
    Senior Member+ Frank B's Avatar
    Join Date
    Apr 2014
    Location
    Germany NRW
    Posts
    5,587
    Cool Tim - Thank you and WMXZ of course

  11. #2486
    Senior Member+
    Join Date
    Jul 2014
    Location
    New York
    Posts
    3,336
    Quote Originally Posted by KurtE View Post
    @mjs513 - You might try changing in SPI.cpp

    ….
    to
    Code:
    const SPIClass::SPI_Hardware_t  SPIClass::spiclass_lpspi3_hardware = {
    	CCM_CCGR1, CCM_CCGR1_LPSPI3(CCM_CCGR_ON),
    	DMAMUX_SOURCE_LPSPI3_TX, DMAMUX_SOURCE_LPSPI3_RX, _spi_dma_rxISR1,
    	1, 
    	7 | 0x10,
    	26,
    	2 | 0x10,
    	27,
    	7 | 0x10,
    	0,
    	7 | 0x10,
    	IOMUXC_LPSPI3_SCK_SELECT_INPUT, IOMUXC_LPSPI3_SDI_SELECT_INPUT, IOMUXC_LPSPI3_SDO_SELECT_INPUT, IOMUXC_LPSPI3_PCS0_SELECT_INPUT,
    	1, 0, 1, 0
    };
    If I am looking correct at pages 842-843 in new manual...
    @KurtE
    Made the change but no luck. The sketch gets up to reading the control registers and stops.
    Code:
    ILI9488_t3n: (T4) SPI1 automatically selected
    
    MOSI:26 MISO:1 SCK:27

  12. #2487
    Senior Member+ manitou's Avatar
    Join Date
    Jan 2013
    Posts
    1,973
    Teensy 4 beta2 (1062) testing observations:
    • stencil on MCU: MIMXRT1062 DVL6A 0N00X CTAA1848H
    • blink power consumption (including green power LED) LED off/on 105/108 ma
    • crystal drift with GPT and GPS pps: 24mhz 1 ppm, RTC (32768 hz) -6 ppm
    • chip temp @600mhz 37.5 C
    • MAC address 04E9E508D7A3
    • 10 GPIO toggles 119 cycles, with fast GPIO 18 cycles
    • coremark (Fastest @600mhz) 2427.4 iterations/sec
    • audio adapter SPI (T4 pins 10-13) uSD listfiles worked with SanDisk (failed with Kingston microSD)
    • BUILTIN_SDCARD listfiles works for both SanDisk and Kingston microSD
    • RTC tests fail, no definition for __rtc_localtime (RTC is running). FIX: boards.txt post #668
    • edge pin tests: PWM, INPUT_PULLUP, analog, attachInterrupt, and loopback tests on Serial1-5 (no pogo pins for Serial 6 and 7)
    • working: TRNG, CRC32, SHA256, AES

    Most tests with 1.8.8 1.46-beta11
    Last edited by manitou; 04-27-2019 at 12:09 PM.

  13. #2488
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    4,696
    @mjs513 looks like it is time for me to try to debug some of this.

    Probably won't go back into town today...

    I debugged SPI2, using an SPI test app I had earlier which I should simplify...
    Code:
    #include <SPI.h>
    #include <EventResponder.h>
    #define SPIT SPI2
    #define DBGSerial Serial
    #define CS_PIN 36
    
    #define SMALL_TRANSFER_SIZE 128
    #define BUFFER_SIZE 0x12000l   // More than 64K
    //uint8_t buffer[BUFFER_SIZE];
    uint8_t *buffer;  // lets malloc it...
    //uint8_t rxBuffer[SMALL_TRANSFER_SIZE];
    DMAMEM uint8_t rxBuffer[BUFFER_SIZE];
    //uint8_t *rxBuffer;
    uint8_t *foo_bar = nullptr;
    uint8_t static_buffer[16];
    
    
    EventResponder event;
    volatile bool event_happened = false;
    void asyncEventResponder(EventResponderRef event_responder)
    {
      digitalWriteFast(CS_PIN, HIGH);
      event_happened = true;
    }
    
    void setup() {
      // debug pins
      uint8_t stack_buffer[10];
      pinMode(0, OUTPUT);
      pinMode(1, OUTPUT);
      digitalWrite(0, LOW);
      digitalWrite(1, LOW);
      extern unsigned long _heap_start;
      extern unsigned long _heap_end;
    
      pinMode(CS_PIN, OUTPUT);
      digitalWriteFast(CS_PIN, HIGH);
      while (!Serial && millis() < 4000) ;  // wait for Serial port
      DBGSerial.begin(115200);
      delay(500);
      DBGSerial.println("SPI Test program");
      SPIT.begin();
    
      buffer = (uint8_t *)malloc(BUFFER_SIZE);
      //rxBuffer = (uint8_t *)malloc(BUFFER_SIZE);
    
    
      DBGSerial.print("Buffer: ");
      DBGSerial.print((uint32_t)buffer, HEX);
      DBGSerial.print(" RX Buffer: ");
      DBGSerial.print((uint32_t)rxBuffer, HEX);
      DBGSerial.print(" ");
      DBGSerial.println(BUFFER_SIZE, DEC);
      DBGSerial.printf("Static buffer: %x, Stack Buffer: %x\n", (uint32_t)static_buffer, (uint32_t)stack_buffer);
      DBGSerial.printf("Heap Start: %x, Heap End: %x\n", (uint32_t)&_heap_start, (uint32_t)&_heap_end);
      event.attachImmediate(&asyncEventResponder);
    }
    int nn = 0;
    void loop() {
    //  while (DBGSerial.read() != -1) ; // Make sure queue is empty.
    //  DBGSerial.println("Press any key to run test");
      //while (!DBGSerial.available()) ; // will loop until it receives something
    //  while (DBGSerial.read() != -1) ; // loop until queue is empty
      DBGSerial.println("Ready to start tests");
    
    
      SPIT.beginTransaction(SPISettings(8000000, MSBFIRST, SPI_MODE0));
      DBGSerial.println("After Begin Transaction");
    
      //=================================================================
      // Transfer Sync
      //=================================================================
    
    
      for (uint32_t i = 0; i < BUFFER_SIZE; i++) buffer[i] = i & 0xff;
      for (uint32_t i = 0; i < BUFFER_SIZE; i++)  rxBuffer[i] = 0x5a;
      DBGSerial.println("Transfer Small"); //DBGSerial.flush();
      digitalWriteFast(CS_PIN, LOW);
      SPIT.transfer(buffer, rxBuffer, SMALL_TRANSFER_SIZE);
      digitalWriteFast(CS_PIN, HIGH);
      DBGSerial.println("*** Completed ***"); DBGSerial.flush();
      dumpBuffer(buffer, SMALL_TRANSFER_SIZE);
      DBGSerial.println();
      dumpBuffer(rxBuffer, SMALL_TRANSFER_SIZE);
      validateTXBuffer(0);
      delay(5);
    
      for (uint32_t i = 0; i < BUFFER_SIZE; i++) buffer[i] = i & 0xff;
      DBGSerial.println("write Small"); DBGSerial.flush();
      digitalWriteFast(CS_PIN, LOW);
      SPIT.transfer(buffer, NULL, SMALL_TRANSFER_SIZE);
      digitalWriteFast(CS_PIN, HIGH);
      DBGSerial.println("*** Completed ***"); DBGSerial.flush();
      validateTXBuffer(0);
      delay(5);
    
      for (uint32_t i = 0; i < BUFFER_SIZE; i++) buffer[i] = i & 0xff;
      DBGSerial.println("read Small"); DBGSerial.flush();
      digitalWriteFast(CS_PIN, LOW);
      SPIT.transfer(NULL, rxBuffer, SMALL_TRANSFER_SIZE);
      digitalWriteFast(CS_PIN, HIGH);
      DBGSerial.println("*** Completed ***"); DBGSerial.flush();
      dumpBuffer(rxBuffer, SMALL_TRANSFER_SIZE);
      delay(5);
    
      SPIT.beginTransaction(SPISettings(2000000, MSBFIRST, SPI_MODE0));
      for (uint32_t i = 0; i < BUFFER_SIZE; i++)buffer[i] = i / 1024;
      for (uint32_t i = 0; i < BUFFER_SIZE; i++)  rxBuffer[i] = 0x5a;
    
      DBGSerial.println("Transfer Full"); DBGSerial.flush();
      digitalWriteFast(CS_PIN, LOW);
      SPIT.transfer(buffer, rxBuffer, BUFFER_SIZE);
      digitalWriteFast(CS_PIN, HIGH);
      validateTXBuffer(1);
      delay(5);
    
      for (uint32_t i = 0; i < BUFFER_SIZE; i++) buffer[i] = i / 1024;
      DBGSerial.println("write full"); DBGSerial.flush();
      digitalWriteFast(CS_PIN, LOW);
      SPIT.transfer(buffer, NULL, BUFFER_SIZE);
      digitalWriteFast(CS_PIN, HIGH);
      validateTXBuffer(1);
      delay(5);
    
      for (uint32_t i = 0; i < BUFFER_SIZE; i++) buffer[i] = i & 0xff;
      DBGSerial.println("read full"); DBGSerial.flush();
      digitalWriteFast(CS_PIN, LOW);
      SPIT.transfer(NULL, buffer, BUFFER_SIZE);
      digitalWriteFast(CS_PIN, HIGH);
      delay(5);
      //=================================================================
      // Transfer Async
      //=================================================================
      for (uint32_t i = 0; i < 5; i++) {
        digitalWriteFast(CS_PIN, LOW);
        delay(1);
        digitalWriteFast(CS_PIN, HIGH);
        delay(1);
      }
      event_happened = false;
      for (uint32_t i = 0; i < BUFFER_SIZE; i++) buffer[i] = i & 0xff;
      DBGSerial.println("Async write Small"); DBGSerial.flush();
      digitalWriteFast(CS_PIN, LOW);
      SPIT.transfer(buffer, NULL, SMALL_TRANSFER_SIZE, event);
      DBGSerial.println("After write call, waiting for event");
      while (!event_happened) ;
      event_happened = false;
      validateTXBuffer(0);
      delay(5);
    
      for (uint32_t i = 0; i < BUFFER_SIZE; i++) buffer[i] = i & 0xff;
      for (uint32_t i = 0; i < BUFFER_SIZE; i++)  rxBuffer[i] = 0x5a;
      DBGSerial.println("Async Transfer Small"); DBGSerial.flush();
      digitalWriteFast(CS_PIN, LOW);
      SPIT.transfer(buffer, rxBuffer, SMALL_TRANSFER_SIZE, event);
      DBGSerial.println("After Transfer call, waiting for event");
      while (!event_happened) ;
      event_happened = false;
      dumpBuffer(buffer, SMALL_TRANSFER_SIZE);
      DBGSerial.println();
      dumpBuffer(rxBuffer, SMALL_TRANSFER_SIZE);
      validateTXBuffer(0);
      delay(5);
    
    
      for (uint32_t i = 0; i < BUFFER_SIZE; i++) buffer[i] = i & 0xff;
      for (uint32_t i = 0; i < BUFFER_SIZE; i++)  rxBuffer[i] = 0x5a;
      DBGSerial.println("Async read Small"); DBGSerial.flush();
      digitalWriteFast(CS_PIN, LOW);
      SPIT.setTransferWriteFill(0x42);
      SPIT.transfer(NULL, rxBuffer, SMALL_TRANSFER_SIZE, event);
      //arm_dcache_delete(rxBuffer, SMALL_TRANSFER_SIZE);
      while (!event_happened) ;
      event_happened = false;
      dumpBuffer(rxBuffer, SMALL_TRANSFER_SIZE);
      validateTXBuffer(0);
      delay(5);
    
      for (uint32_t i = 0; i < BUFFER_SIZE; i++) buffer[i] = i / 1024;
      for (uint32_t i = 0; i < BUFFER_SIZE; i++)  rxBuffer[i] = 0x5a;
      DBGSerial.println("Async Transfer Full"); DBGSerial.flush();
      digitalWriteFast(CS_PIN, LOW);
      SPIT.transfer(buffer, rxBuffer, BUFFER_SIZE, event);
      while (!event_happened) ;
      event_happened = false;
      dumpBuffer(rxBuffer, 512);
      validateTXBuffer(1);
      delay(5);
    
      for (uint32_t i = 0; i < BUFFER_SIZE; i++) buffer[i] = i / 1024;
      DBGSerial.println("Async write full"); DBGSerial.flush();
      digitalWriteFast(CS_PIN, LOW);
      SPIT.transfer(buffer, NULL, BUFFER_SIZE, event);
      while (!event_happened) ;
      event_happened = false;
      validateTXBuffer(1);
      delay(5);
    
      for (uint32_t i = 0; i < BUFFER_SIZE; i++) buffer[i] = i & 0xff;
      for (uint32_t i = 0; i < BUFFER_SIZE; i++)  rxBuffer[i] = 0x5a;
      DBGSerial.println("Async read full"); DBGSerial.flush();
      digitalWriteFast(CS_PIN, LOW);
      SPIT.transfer(NULL, rxBuffer, BUFFER_SIZE, event);
      while (!event_happened) ;
      event_happened = false;
      dumpBuffer(rxBuffer, 512);
      validateTXBuffer(0);
      delay(5);
    
    
      DBGSerial.println("Tests completed");
      SPIT.endTransaction();
    }
    
    void dumpBuffer(uint8_t *pb, int cb) {
      uint8_t i = 0;
      while (cb) {
        DBGSerial.print(*pb++, HEX);
        cb--;
        DBGSerial.print(" ");
        i++;
        if (i == 16) {
          DBGSerial.println();
          i = 0;
        }
      }
      DBGSerial.println();
    }
    void validateTXBuffer(uint8_t test)
    {
      uint8_t error_count = 0;
      for (int i = 0; i < BUFFER_SIZE; i++) {
        if (((test == 0) && (buffer[i] != (i & 0xff)))
            || ((test == 1) && (buffer[i] != (i / 1024)))) {
          DBGSerial.print("Tx Buffer validate failed Index: ");
          DBGSerial.print(i, DEC);
          DBGSerial.print(" Value: ");
          DBGSerial.println(buffer[i], HEX);
          error_count++;
          DBGSerial.print("Tx Buffer validate failed Index: ");
          DBGSerial.print(i, DEC);
          if (error_count == 10)
            break;
        }
      }
    }
    Which appears to be hanging on the start of small buffer... So will try to debug...

  14. #2489
    Senior Member+ manitou's Avatar
    Join Date
    Jan 2013
    Posts
    1,973
    Quote Originally Posted by Frank B View Post
    @Defragster:

    I remember you did something with the RTC - the example TimeTeensy3 does not work for me - do you have any hints? I think there is some code missing?
    see WMXZ RTC stuff https://forum.pjrc.com/threads/54711...l=1#post195387
    (1062 build needs defintion for __rtc_localtime)

  15. #2490
    Senior Member+
    Join Date
    Jul 2014
    Location
    New York
    Posts
    3,336
    @KurtE
    Ok. Made one more change to pins in your spi class:
    Code:
    const SPIClass::SPI_Hardware_t  SPIClass::spiclass_lpspi3_hardware = {
    	CCM_CCGR1, CCM_CCGR1_LPSPI3(CCM_CCGR_ON),
    	DMAMUX_SOURCE_LPSPI3_TX, DMAMUX_SOURCE_LPSPI3_RX, _spi_dma_rxISR1,
    	1, 
    	7 | 0x10,
    	26,
    	2 | 0x10,
    	27,
    	2 | 0x10,
    	0,
    	7 | 0x10,
    	IOMUXC_LPSPI3_SCK_SELECT_INPUT, IOMUXC_LPSPI3_SDI_SELECT_INPUT, IOMUXC_LPSPI3_SDO_SELECT_INPUT, IOMUXC_LPSPI3_PCS0_SELECT_INPUT,
    	1, 0, 1, 0
    };
    Now I get on the sermon:
    Code:
    ILI9488_t3n: (T4) SPI1 automatically selected
    
    MOSI:26 MISO:1 SCK:27
    
    ILI9488 Test!
    Display Power Mode: 0x0
    MADCTL Mode: 0x0
    Pixel Format: 0x0
    Image Format: 0x0
    Self Diagnostic: 0x0
    Benchmark                Time (microseconds)
    Screen fill              734227
    Text                     14712
    Lines                    189020
    Horiz/Vert Lines         62006
    Rectangles (outline)     34462
    Rectangles (filled)      1774692
    Circles (filled)         220661
    Circles (outline)        152997
    Triangles (outline)      40923
    Triangles (filled)       559241
    Rounded rects (outline)  67348
    Rounded rects (filled)   1947741
    Done!
    So now let me go and check my connections to the display again. Always a problem.

    EDIT: Rechecked the wiring - had to switch a few but still no display. Ok more digging I guess.

    EDIT:2 - double checked SPI and that still works - just don't see why SPI1 is not working.
    Last edited by mjs513; 04-25-2019 at 11:26 PM.

  16. #2491
    Senior Member+
    Join Date
    Jul 2014
    Location
    New York
    Posts
    3,336
    Quote Originally Posted by WMXZ View Post
    if you buy 2000 of them
    And if you want to buy in small quantities: https://www.digikey.com/product-deta...4-1-ND/1003250. More concerned with the dimensions than the order quantity. Usually digikey gives you a choice.

  17. #2492
    Senior Member+
    Join Date
    Jul 2014
    Location
    New York
    Posts
    3,336
    @KurtE

    Looks like SPI1 works with the ILI9488 library. You have to use CS0 on pin 0 to make it work - doesn't work with CS=10. Also you need the changes to SPI library for spiclass_lpspi3_hardware in post #2490.

  18. #2493
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    4,696
    @mjs513 What does your table look like now?

    I think I was getting some luck with:
    Code:
    const SPIClass::SPI_Hardware_t  SPIClass::spiclass_lpspi3_hardware = {
    	CCM_CCGR1, CCM_CCGR1_LPSPI3(CCM_CCGR_ON),
    	DMAMUX_SOURCE_LPSPI3_TX, DMAMUX_SOURCE_LPSPI3_RX, _spi_dma_rxISR1,
    	1, 
    	7 | 0x10,
    	26,
    	2 | 0x10,
    	27,
    	2 | 0x10,
    	0,
    	7 | 0x10,
    	IOMUXC_LPSPI3_SCK_SELECT_INPUT, IOMUXC_LPSPI3_SDI_SELECT_INPUT, IOMUXC_LPSPI3_SDO_SELECT_INPUT, IOMUXC_LPSPI3_PCS0_SELECT_INPUT,
    	1, 0, 0, 0
    };
    Some reason when I tried 1, 0, 1, 0, I was not getting output, but maybe my trying to press probes at the bottom of the chip to touch those pins... I was not making good contact.

    Assuming you are getting good results you may want to do a PR to SPI library. And thanks

  19. #2494
    Senior Member+
    Join Date
    Jul 2014
    Location
    New York
    Posts
    3,336
    @KurtE

    This is what I am using now
    Code:
    const SPIClass::SPI_Hardware_t  SPIClass::spiclass_lpspi3_hardware = {
    	CCM_CCGR1, CCM_CCGR1_LPSPI3(CCM_CCGR_ON),
    	DMAMUX_SOURCE_LPSPI3_TX, DMAMUX_SOURCE_LPSPI3_RX, _spi_dma_rxISR1,
    	1, 
    	7 | 0x10,
    	26,
    	2 | 0x10,
    	27,
    	2 | 0x10,
    	0,
    	7 | 0x10,
    	IOMUXC_LPSPI3_SCK_SELECT_INPUT, IOMUXC_LPSPI3_SDI_SELECT_INPUT, IOMUXC_LPSPI3_SDO_SELECT_INPUT, IOMUXC_LPSPI3_PCS0_SELECT_INPUT,
    	1, 0, 1, 0
    };
    Like you said it was based on pages 842 on for LSPI3 pins

  20. #2495
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    8,557
    FrankB - I wanted to say manitou started the RTC work - but the sketch I found was WMXZ - for wake alarm - but Manitou was about 200 posts earlier with RTC ... RTC ticking ... Here is a simple sketch to start up the RTC

    Quote Originally Posted by manitou View Post
    Teensy 4 beta2 (1062) testing observations:
    • stencil on MCU: MIMXRT1062 DVL6A 0N00X CTAA1848H
    • blink power consumption (including green power LED) off/on 105/108 ma
    • crystal drift with GPT and GPS: 24mhz 1 ppm, RTC -6 ppm
    • chip temp @600mhz 37.5 C
    • MAC address 04E9E508D7A3
    • 10 GPIO toggles 119 cycles, with fast GPIO 18 cycles
    • coremark (Fastest @600mhz) 2427.4 iterations/sec
    • audio adapter SPI uSD listfiles worked with SanDisk (failed with Kingston microSD)
    • BUILTIN_SDCARD listfiles works for both SanDisk and Kingston microSD
    • RTC tests fail, no definition for __rtc_localtime (RTC is running). FIX: boards.txt post #668
    That is good news on faster and working GPIO toggles - ~2 cpu cycles when there are 600,000,000 per second is … quick

    What is power consumed when 'Off' - with RTC still ticking - Paul said that will be reduced in coming weeks when boot MCU goes offline.

    Your 37.5C temp agrees with what I was seeing when idle.

    Very nice the SDIO BUILTIN_SDCARD is (better) able to see both cards. Funny my two here are Kinston and Sandisk - I can 'listfiles' on both.

  21. #2496
    Senior Member+
    Join Date
    Jul 2014
    Location
    New York
    Posts
    3,336
    ILI9341_t3

    @KurtE
    Tried your modified library with T4 on SPI1 it will not work on anything other than SPI. Looks like we will have to do the same thing we did for the ILI9488_t3 lib to get it working on other SPI ports. That may take a little more work - guess that is a new project

    @Paul - know you have a ton of stuff on your list of things to do but do you think you can pull in Kurt's PR into the ILI9341 lib at some point so we have a baseline lib for the T4?

  22. #2497
    Senior Member+
    Join Date
    Jul 2014
    Location
    New York
    Posts
    3,336
    @KurtE
    Assuming you are getting good results you may want to do a PR to SPI library. And thanks
    Sorry I just saw this - no problem doing the PR but should I do it to your fork or the Paul's master - get confused sometimes

  23. #2498
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    4,696
    Quote Originally Posted by mjs513 View Post
    @KurtE
    Sorry I just saw this - no problem doing the PR but should I do it to your fork or the Paul's master - get confused sometimes
    Me too - As Paul pulled our stuff in to the master branch (and beta build), the PR should be against his master branch...

  24. #2499
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    8,557
    @KurtE / @mjs513 - let me know where the latest usable 9488 / 9341 / USBHost are and perhaps that can be next.

    Other than the odd problem with Serial1 getting power from debug Teensy Tx ("The UART data transmission line is normally held at a high voltage level when it’s not transmitting data" - making the BB Green LED glow) and stopping it from booting [as it seemed the T4-1 did similarly 1+K posts back and first page issue] - everything looks happy good.

    @KurtE - did you give the quick test suggested on your USB<>UART device that was causing your T4-2 to not startup? See the Glow when Off with common GND?

    IIRC there is some rule about having power applied pins of an unpowered device? But something like this seems a common thing?

    <edit>: When discovered on the T4-1 as noted in post #6: 'teensy_ports issues with 3+ boards, #1330, #1398 #2391 t4b2 one board LED Glows,'
    That was with two added debug Teensy's - this happens with just 1 - perhaps the 1052 had better handling of this - I did test with a single Tx on Rx and T4-1 did not repro like on T4-2.
    … as noted here #2391: No Start T4 with Serial Teensys on UARTUSB
    Last edited by defragster; 04-26-2019 at 09:09 AM.

  25. #2500
    Senior Member
    Join Date
    Feb 2013
    Posts
    563
    received the 1062-beta board -- thanks!

    no boot-up issues when using external power! (see #1995)

    quick question about "Drive Strength":

    i've been playing around a bit with a SPI DAC breakout-board this morning and having difficulties getting it to run reliably. the SPI signals in that case have been giving me a bit of a headache before, so i'm not entirely surprised, but the DAC will run glitch-free for days using T3.2 @ 30MHz SPI SCK (in this case, the trick was to disable the DSE bit, ie CORE_PIN13_CONFIG = PORT_PCR_MUX(2)), so i figured it should at least run at modest speeds using T4.0 ... (not so, unfortunately, even at 1MHz the DAC will eventually trip up).

    am i right in assuming that IOMUXC_PAD_DSE(1) would be the nearest equivalent as regards 1052/1062? (it does give slightly better results than IOMUXC_PAD_DSE(3)) (IOMUXC_PAD_DSE(0) = 000 / "DSE_0_output_driver_disabled" stops everything entirely), or is there anything else i can do/try to vamp up the signals? (ie save hardware modifications .. ))

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •