AVR TX pin Pulled Low


Keefep

Recommended Posts

I cannot get the AVR to control the TX pin. I want to use the serial out
but no data is being sent out TX. In the Loop section, I get the OK on
the monitor, and have the LED blinking, but pin 1 (TX) does not toggle.

What might I be missing?


Thanks you for your help...


Keith


#include <Wire.h>
#include <Adafruit_SI5351.h>
#define circuit blank

Adafruit_SI5351 clockgen = Adafruit_SI5351();

/**************************************************************************/
/*
     Arduino setup function (automatically called at startup)
*/
/**************************************************************************/
/*
   Blink
   Turns on an LED on for one second, then off for one second, repeatedly.

   This example code is in the public domain.
  */

// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
int tx = 1;
void setup(void)
{
     // initialize the digital pin as an output.
   pinMode(led, OUTPUT);

   Serial.begin(9600);
   Serial.println("Si5351 Clockgen Test"); Serial.println("");


   /* Initialise the sensor */
   if (clockgen.begin() != ERROR_NONE)
   {
     /* There was a problem detecting the IC ... check your connections */
     Serial.print("Ooops, no Si5351 detected ... Check your wiring or
I2C ADDR!");
     while(1);
   }
   Serial.println("OK!");

   /* INTEGER ONLY MODE --> most accurate output */
   /* Setup PLLA to integer only mode @ 900MHz (must be 600..900MHz) */
   /* Set Multisynth 0 to 112.5MHz using integer only mode (div by 4/6/8) */
   /* 25MHz * 36 = 900 MHz, then 900 MHz / 8 = 112.5 MHz */
   Serial.println("Set PLLA to 900MHz");
   clockgen.setupPLLInt(SI5351_PLL_A, 36);
   Serial.println("Set Output #0 to 112.5MHz");
   clockgen.setupMultisynthInt(0, SI5351_PLL_A, SI5351_MULTISYNTH_DIV_8);

   /* FRACTIONAL MODE --> More flexible but introduce clock jitter */
   /* Setup PLLB to fractional mode @616.66667MHz (XTAL * 24 + 2/3) */
   /* Setup Multisynth 1 to 13.55311MHz (PLLB/45.5) */
   clockgen.setupPLL(SI5351_PLL_B, 24, 2, 3);
   Serial.println("Set Output #1 to 13.553115MHz");
   clockgen.setupMultisynth(1, SI5351_PLL_B, 45, 1, 2);

   /* Multisynth 2 is not yet used and won't be enabled, but can be */
   /* Use PLLB @ 616.66667MHz, then divide by 900 -> 685.185 KHz */
   /* then divide by 64 for 10.706 KHz */
   /* configured using either PLL in either integer or fractional mode */

   Serial.println("Set Output #2 to 10.706 KHz");
   clockgen.setupMultisynth(2, SI5351_PLL_B, 900, 0, 1);
   clockgen.setupRdiv(2, SI5351_R_DIV_64);

   /* Enable the clocks */
   clockgen.enableOutputs(true);
}

/**************************************************************************/
/*
     Arduino loop function, called once 'setup' is complete (your own code
     should go here)
*/
/**************************************************************************/
void loop(void)
{
   digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
   delay(100);               // wait for a second
   digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
   delay(900);               // wait for a second

   digitalWrite(tx, HIGH);   // turn the LED on (HIGH is the voltage level)
   delay(1000);               // wait for a second
   digitalWrite(tx, LOW);    // turn the LED off by making the voltage LOW
   delay(1000);               // wait for a second

   Serial.println("OK!");
}

Link to comment
Share on other sites

I removed the bootloader and replaced it on the AVR. Using the "The Offical Papilio Duo Pinout Diagram" I did not see the I2C pins and defaulted to use F7, F6 then to B1, B3. Looking at the silk screen on the Papilio Duo, I used D0 (SCK), D1(SDA), the I2C device began being programmed/working. Still, I have no Serial Output.

Link to comment
Share on other sites

I removed the bootloader and replaced it on the AVR. Using the "The Offical Papilio Duo Pinout Diagram" I did not see the I2C pins and defaulted to use F7, F6 then to B1, B3. Looking at the silk screen on the Papilio Duo, I used D0 (SCK), D1(SDA), the I2C device began being programmed/working. Still I have no Serial Output.

 

Blink will toggle Pin 1 (Tx)

Link to comment
Share on other sites

Following text from the Arduino page, "The Arduino Leonardo board uses Serial1 to communicate via TTL (5V) serial on pins 0 (RX) and 1 (TX). Serial is reserved for USB CDC communication. For more information, refer to the Leonardo getting started page and hardware page. "

 

I replaced Serial with Serial1 and the Tx pin began sending the serial data.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.