Navigation

    • Register
    • Login
    • OpenHardware.io
    • Categories
    • Recent
    • Tags
    • Popular
    1. Home
    2. Karl-Heinz K
    3. Topics
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    Topics created by Karl-Heinz K

    • Karl-Heinz K

      Fix for Raspberry Pi Gateway with Adafruit RFM69HCW
      Troubleshooting • • Karl-Heinz K  

      10
      1
      Votes
      10
      Posts
      1396
      Views

      mfalkvidd

      For future reference (in case someone else stumbles on this thread): It seems Adafruit made a design mistake by always pulling reset high. Also, their datasheet states RST - this is the Reset pin for the radio. It's pulled high by default. Pull down to ground to put it into reset which is clearly wrong - pulling RST to low takes the radio out of reset mode. Another note: The SX1231 datasheet says Pin 6 (Reset) should be left floating during the POR sequence. POR is the automatic reset that SX1231 does when powering on (Power On Reset). The level shifter on the Adafruit board will always output high or low, so with the Adafruit board it is impossible to leave RST floating. This does not seem to cause any real problems though.
    • Karl-Heinz K

      How to add support for SAM D51/Cortex M4?
      Hardware • • Karl-Heinz K  

      3
      0
      Votes
      3
      Posts
      2370
      Views

      Karl-Heinz K

      Hallo Mikael, thank you for your hint. I modified the hwCPUVoltage() part of MyHwSAMD.cpp like this. It works for me. Maybe it is not the best solution, however. Sincerely Karl-Heinz uint16_t hwCPUVoltage() { #ifdef __SAMD51__ return FUNCTION_NOT_SUPPORTED; #else // disable ADC while (ADC->STATUS.bit.SYNCBUSY); ADC->CTRLA.bit.ENABLE = 0x00; // internal 1V reference (default) analogReference(AR_INTERNAL1V0); // 12 bit resolution (default) analogWriteResolution(12); // MUXp 0x1B = SCALEDIOVCC/4 => connected to Vcc ADC->INPUTCTRL.bit.MUXPOS = 0x1B ; // enable ADC while (ADC->STATUS.bit.SYNCBUSY); ADC->CTRLA.bit.ENABLE = 0x01; // start conversion while (ADC->STATUS.bit.SYNCBUSY); ADC->SWTRIG.bit.START = 1; // clear the Data Ready flag ADC->INTFLAG.bit.RESRDY = 1; // start conversion again, since The first conversion after the reference is changed must not be used. while (ADC->STATUS.bit.SYNCBUSY); ADC->SWTRIG.bit.START = 1; // waiting for conversion to complete while (!ADC->INTFLAG.bit.RESRDY); const uint32_t valueRead = ADC->RESULT.reg; // disable ADC while (ADC->STATUS.bit.SYNCBUSY); ADC->CTRLA.bit.ENABLE = 0x00; return valueRead * 4; #endif }