Keefep Posted December 10, 2016 Report Share Posted December 10, 2016 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!"); } Quote Link to comment Share on other sites More sharing options...
Keefep Posted December 11, 2016 Author Report Share Posted December 11, 2016 I've been able to get the pins 2-13 to toggle by loading the AVR via the ISP connection from the FPGA, however, the TX and SCK, SDA pins are working correctly. Any suggestions? Quote Link to comment Share on other sites More sharing options...
Keefep Posted December 11, 2016 Author Report Share Posted December 11, 2016 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. Quote Link to comment Share on other sites More sharing options...
Jack Gassett Posted December 12, 2016 Report Share Posted December 12, 2016 Are you able to run the Arduino Blink sketch by itself on pin 1? Jack. Quote Link to comment Share on other sites More sharing options...
Keefep Posted December 12, 2016 Author Report Share Posted December 12, 2016 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) Quote Link to comment Share on other sites More sharing options...
Keefep Posted December 12, 2016 Author Report Share Posted December 12, 2016 Blink will toggle Pin1 (Tx). Quote Link to comment Share on other sites More sharing options...
Jack Gassett Posted December 13, 2016 Report Share Posted December 13, 2016 So then that means it has to be something in your sketch that is causing the problem... Quote Link to comment Share on other sites More sharing options...
Keefep Posted December 13, 2016 Author Report Share Posted December 13, 2016 I agree, The IDE may not be handeling the Serial hardware correctly... Quote Link to comment Share on other sites More sharing options...
Keefep Posted December 19, 2016 Author Report Share Posted December 19, 2016 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. Quote Link to comment Share on other sites More sharing options...
Jack Gassett Posted December 20, 2016 Report Share Posted December 20, 2016 Ahh, man! I'm sorry I didn't catch that one right away. I was thinking more from a hardware perspective as to what could be blocking the communication and never thought about the bigger picture... Glad you got that figured out. Jack. Quote Link to comment Share on other sites More sharing options...
Keefep Posted December 21, 2016 Author Report Share Posted December 21, 2016 All good. Thank you for your help, key was to stop looking at hardware. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.