Jump to content

Search the Community

Showing results for tags 'SERIAL'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • News
    • Announcements
    • Suggestions
    • New users say Hi!
  • Spotlight!
    • Sponsor Spotlight
    • Sponsor Giveaways
  • Energia
    • Energia - MSP
    • Energia - TivaC/CC3XXX
    • Energia - C2000
    • Energia Libraries
  • MSP Technical Forums
    • General
    • Compilers and IDEs
    • Development Kits
    • Programmers and Debuggers
    • Code vault
    • Projects
    • Booster Packs
    • Energia
  • Tiva-C, Hercules, CCXXXX ARM Technical Forums
    • General
    • SensorTag
    • Tiva-C, Hercules, CC3XXX Launchpad Booster Packs
    • Code Vault
    • Projects
    • Compilers and IDEs
    • Development Kits and Custom Boards
  • Beagle ARM Cortex A8 Technical Forums
    • General
    • Code Snippets and Scripts
    • Cases, Capes and Plugin Boards
    • Projects
  • General Electronics Forum
    • General Electronics
    • Other Microcontrollers
  • Connect
    • Embedded Systems/Test Equipment Deals
    • Buy, Trade and Sell
    • The 43oh Store
    • Community Projects
    • Fireside Chat
  • C2000 Technical Forums
    • General
    • Development Kits
    • Code Vault
    • Projects
    • BoosterPacks


There are no results to display.

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start



Website URL





Found 51 results

  1. I am planning to port this code for TIVA-C129 using Energia (on a Mac). 1st trying if it even compiles. I have below include #include "XBee.h" #include <SoftwareSerial.h> Getting error "#include <SoftwareSerial.h> ^ compilation terminated." I even tried doing #include "SoftwareSerial.h" but same error. What am I missing?
  2. Hello there, I have been trying to use a MSP430FR5969 to start a serial communication with a SARA-R4 Cellphone modem. Basically that modem just works sending AT commands through serial communication, so, i decided to start with the basics using the library example include <SoftwareSerial.h> SoftwareSerial mySerial(P1_4, P1_3);// RX, TX void setup(){ // Open serial communications and wait for port to open: Serial.begin(9600); Serial.println("Goodnight moon!"); // set the data rate for the SoftwareSerial port mySerial.begin(9600); mySerial.println("Hello, world?"); } void loop(){ // run over and over if(mySerial.available()) Serial.write(mySerial.read()); if (Serial.available()) mySerial.write(Serial.read()); } Unfortunately an error jumps everytime i try to compile the code. C:\Users\dom\Desktop\energia-1.8.7E21\hardware\energia\msp430\libraries\SoftwareSerial\SoftwareSerial.cpp:80:2: error: #error This version of SoftwareSerial supports only 16MHz processors C:\Users\dom\Desktop\energia-1.8.7E21\hardware\energia\msp430\libraries\SoftwareSerial\SoftwareSerial.cpp: In member function 'void SoftwareSerial::begin(long int)': C:\Users\dom\Desktop\energia-1.8.7E21\hardware\energia\msp430\libraries\SoftwareSerial\SoftwareSerial.cpp:250:31: error: 'table' was not declared in this scope C:\Users\dom\Desktop\energia-1.8.7E21\hardware\energia\msp430\libraries\SoftwareSerial\SoftwareSerial.cpp: In member function 'virtual size_t SoftwareSerial::write(uint8_t)': C:\Users\dom\Desktop\energia-1.8.7E21\hardware\energia\msp430\libraries\SoftwareSerial\SoftwareSerial.cpp:318:26: error: 'XMIT_START_ADJUSTMENT' was not declared in this scope exit status 1 Error compilando para la tarjeta MSP-EXP430FR5969LP. So i decided to debug the library looking for those lines and trying to solve the errors, but after a few days i still can not get rid of that compiling error. Does anyone has an idea about what is happening and how can i solve it? Regards
  3. Dear All, I have a problem with my Energia IDE. I have using my Tiva c ek-tm4c123gxl board. Also I am using the Energia ide on Mac OS Catalina 10.15. But in Energia IDE in the Mac doesn't see my board. I cannot see anything except for bluetoothport in serial port place.On the other hand I don't have any problems with Arduino boards and the Arduino ide in Mac too. Help me with this problem please.Have a nice day and good luck :)
  4. Hello, I'm try to use msp-exp430g2553et launchpad with energia but the serial monitor doesn't work. I'm using the example code:(One Wire DS18X20_temperature) I found it need to change RXD TXD but I changed it display "no more addresses" please help, thanks!
  5. Views: 5 Hi, I have a problem with serial communication. I'm using IDE Energia to print a simple word ("hello") on the serial monitor but nothing appear (no error in the sketch). Can you help me? PS: right board and COM port are selected and serial monitor and board have the same baud rate . The code is: void setup () { Serial.begin(9600); } void loop() { Serial.println("hello"); delay(1000); } I don't know why the monitore showing nothing. Thanks for the help Gino
  6. Hi, I am developing a monitor that will wake up every 15 minutes read and sensor and send some data. I'm using an EXP430G2 onto which I have successfully soldered the 32KHz crystal. The interrupts are working OK, waking every 16 seconds and toggling a LED. I'm using TACTL = TASSEL_1 +ID_3 + MC_2 +TAIE and Timer0-A1. My problem occurs whenever I try to use either the serial port (using Serial.print) or the AirBooster Pack. Then nothing happens - the system freezes. I'm assuming this has something to do with use of interrupts by the Serial and Airbooster libraries but I have no idea what. Any pointers on how to resolve this much appreciated. (Note serial and airbooster work fine when not using interrupts) Cheers brian
  7. Hi, I have noticed (after much hair pulling) that serial doesn't work when board definition 1.0.5 is selected. Wondering if anyone else is experiencing this issue? 1.0.4 works perfectly. Tested on both the launchpad and a custom board.
  8. Hi all, I have a PID algorithm written on TIVA C TM4C123G . I want to setup a PIL simulation with Simulink. Simulink will send the error signal to TIVA, the PID will calculate the control signal and send it back to Simulink. How can I link the TIVA C "TM4C123GH6PM" Launchpad with Simulink and send/receive data in PIL setup? any help ?? Thanks
  9. I have an interesting problem that has been popping up over the last several months. I am presently using a MSP-EXP430G22553 Rev 1.5. I am running Energia 17. Every so often when I load a program into the editor, the serial port option on the tools menu will be grayed out. I am able to download the program into the board and the program will run but I am unable to open the serial port window. I am running Windows 7 and if I look at the ports in device manager, it show port 66 being assigned to the TI board. This problem will continue for several days and then suddenly it will start to work again. No matter what program I load, the problem will persist. Any thoughts would certainly be appreciated.
  10. I have an interesting problem that has been popping up over the last several months. I am presently using a NSP-EXP430G22553 Rev 1.5. I am running Energia 17. Every so often when I load a program into the editor, the serial port option on the tools menu will be grayed out. I am able to download the program into the board and the program will run but I am unable to open the serial port window. I am running Windows 7 and if I look at the ports in device manager, it show port 66 being assigned to the TI board. This problem will continue for several days and then suddenly it will start to work again. No matter what program I load, the problem will persist. Any thoughts would certainly be appreciated.
  11. Dear developers, I am simply using Serial.println(); command, but I get some weird characters in the serial port display window. Code : #include <Wire.h> // HIH6130 I2C address is 0x27(39) #define Addr 0x27 int tzero = 196; int tspan = 17; int hzero = 196; int hspan = 17; void setup() { Wire.setModule(1); Wire.begin(); pinMode(P1_3,OUTPUT); pinMode(P1_2,OUTPUT); pinMode(P1_6,OUTPUT); Serial.begin(9600); Serial.println("OK"); delay(300); } void loop() { unsigned int data[4]; // Start I2C Transmission Wire.beginTransmission(Addr); // Select data register Wire.write(0x00); // Stop I2C Transmission Wire.endTransmission(); // Request 4 bytes of data Wire.requestFrom(Addr, 4); // Read 4 bytes of data // humidity msb, humidity lsb, temp msb, temp lsb if (Wire.available() == 4) { data[0] = Wire.read(); data[1] = Wire.read(); data[2] = Wire.read(); data[3] = Wire.read(); } // Convert the data to 14-bits float humidity = ((((data[0] & 0x3F) * 256) + data[1]) * 100.0) / 16383.0; float temp = ((data[2] * 256) + (data[3] & 0xFC)) / 4; float cTemp = (temp / 16384.0) * 165.0 - 40.0; // Output data to serial monitor Serial.print("Relative Humidity :"); Serial.println(humidity); Serial.println(" %RH"); Serial.print("Temperature in Celsius :"); Serial.println(cTemp); Serial.println(" C"); Serial.println("=============================================================== "); int VcTemp = map(cTemp, -5, 125, tzero, tspan ); int vhumidity = map (humidity, 0, 100, hzero, hspan); analogWrite(P1_2, VcTemp); analogWrite(P1_6, vhumidity); delay(1000); } Serial Output : (in one single line, means it keeps printing these characters in just one line on and on.picture : Thax.
  12. Using Tiva C Series TM4C123GH with Energia 1.6.10E18, Win7 platform. TivaC is connected by USB, of course . I really need to be able to set Serial2.begin(38400) to implement Even Parity [8E1, instead of 8N1] because of the fixed hardware that is being connected. There is a patch posted already for the MSP430G2553; I'm pretty sure the register arrangement for the Tiva C is vastly different. There's a register in the TM4C123GH at 0x4000:E02C (E000 offset 0x2C) which contains the command word for that UART (parity select, number of bits, enable FIFO, ESP, PENable) that needs to be modified during programming. I really don't want to impact the USB connection from the Tiva C back to the programming connection. Would greatly appreciate any help!
  13. I apologize if this is obvious, but on a new version of a MSP430FR5949 based datalogger programmed using Energia 18 - I switched the pins on the physical chip for serial communication from the Aux to the Debug UART for better layout. Below is the modified pin map energia_pins.h file - #if defined(__MSP430_HAS_EUSCI_A0__) || defined(__MSP430_HAS_EUSCI_A1__) static const uint8_t DEBUG_UARTRXD = 18; /* Receive Data (RXD) at P2.1 */ static const uint8_t DEBUG_UARTTXD = 17; /* Transmit Data (TXD) at P2.0 */ static const uint8_t AUX_UARTRXD = 22; /* Receive Data (RXD) at P4.5 */ static const uint8_t AUX_UARTTXD = 21; /* Transmit Data (TXD) at P4.4 */ #define DEBUG_UARTRXD_SET_MODE (PORT_SELECTION1 | INPUT) #define DEBUG_UARTTXD_SET_MODE (PORT_SELECTION1 | OUTPUT) #define AUX_UARTRXD_SET_MODE (PORT_SELECTION1 | INPUT) #define AUX_UARTTXD_SET_MODE (PORT_SELECTION1 | OUTPUT) #define DEBUG_UART_MODULE_OFFSET 0x00 #define AUX_UART_MODULE_OFFSET 0x20 #define SERIAL1_AVAILABLE 1 #endif I can't seem to even get a simple serial print out in terminal, although it loads without errors. How do I specify to use the debug_uartrxd and debug_uarttxd pins? Is there something similar to Wire.setModule() for serial?
  14. Hello guys, I have been trying to connect my MSP432R Launchpad with another device that requires 57600 bps on Serial1 and after hours trying to find an error in my code I decided to test the Serial1 port. Thus I uploaded the following test code and connected RX to TX (P3.2 <-> P3.3) : void setup() { Serial.begin(115200); Serial1.begin(115200); Serial.println("Starting..."); } void loop() { Serial1.write('A'); if (Serial1.available()) { int inByte = Serial1.read(); Serial.write(inByte); } delay(1000); } So far everything works as expected. Then I try the same code but with Serial1.begin(57600) but it won't work, I won't get any data from the Serial1 port. (I tried several other rates and it seems that only 9600bps and 115200bps were working correctly). Anyone knows about this issue ? Thanks in advance. PS : Even the back channel UART to computer Serial.begin(57600) seems broken
  15. So, Indeed YELLOW_LED controls the red LED on the board. 8^) But I still can't get serial on my Mac to work reliably. I have set the baud to 115200 (Launchpad and Energia Terminal). I have tried Serial and Serial1. I have tried both usbmodems that show up, I do have USB 3.0, but I have no control over that. I have also tried the macOSX screen command which turns a terminal session into a serial console. The kicker is, one time I *did* get serial output to show up using this method. I was printing to Serial and Serial1 at the time. So I modified it to do one or the other but never again got any joy. One frustrating thing is that once I try something, I have to unplug and re-plug the USB to prevent "resource already in use" errors. Any thoughts?
  16. Hi all, I'm using MSP432 with energia. I'm getting weird symbols in the serial monitor instead of the values sent through the Serial.print() function.I have seen these happening when the baud rate specified in code and serial monitor is not same, but this is happening when they are same.Please see the attached image and provide help.
  17. Hi, I am trying to make a UART connection with a device from serial1 in MSP432. It isn't working as i cannot see anything printing on my serial monitor (I am trying to print the data stored in global variables using serial/USB). Wherein the same code works fine on MSP430 or TM4C1294 devices. I have double checked my wiring connections.. P3.2, P3.3 for RX, TX. Can anyone here help me resolve this issue or point out where im going wrong.. Please find the code below //----------------------------------------------------------------------------- // Microchip MCP39F501 Power Monitor TI Interface Sample Code #define ACK 0x06 #define NACK 0x15 #define CSFAIL 0x51 int OK1_Count = 0; // Success/No Success Counter for Reg Read 0x0002 int NOK1_Count = 0; byte Xmit_Dly = 2; // Transmit Delay between bytes, in msec byte Header; // Received ACK/NACK/CSFAIL byte byte Byte_Count; // Reveived Byte count byte CurrentRMS_LL; // 0x0004 CurrentRMS byte CurrentRMS_L; // 0x0005 CurrentRMS byte CurrentRMS_H; // 0x0006 CurrentRMS byte CurrentRMS_HH; // 0x0007 CurrentRMS byte VoltageRMS_L; // 0x0008 Voltage RMS byte VoltageRMS_H; // 0x0009 Voltage RMS byte ActivePower_LL; // 0x000A ActivePower byte ActivePower_L; // 0x000B ActivePower byte ActivePower_H; // 0x000C ActivePower byte ActivePower_HH; // 0x000D ActivePower byte ReactivePower_LL; // 0x000E ReactivePower byte ReactivePower_L; // 0x000F ReactivePower byte ReactivePower_H; // 0x0010 ReactivePower byte ReactivePower_HH; // 0x0011 ReactivePower byte ApparentPower_LL; // 0x0012 ApparentPower byte ApparentPower_L; // 0x0013 ApparentPower byte ApparentPower_H; // 0x0014 ApparentPower byte ApparentPower_HH; // 0x0015 ApparentPower byte PowerFactor_L; // 0x0016 PowerFactor byte PowerFactor_H; // 0x0017 PowerFactor byte Freq_L; // 0x0016 Frequency byte Freq_H; // 0x0017 Frequency byte CheckSum; byte CalculatedCS; float CurrentRMS; // Current RMS float VoltageRMS; // Voltage RMS float ActivePower; // Active Power float ReactivePower; // Reactive Power float ApparentPower; // Apparent Power float PowerFactor; // Power Factor float Freq; // Frequency void setup() { Serial.begin(9600); Serial.println("Entering Loop "); } void loop() { if (RegRead0x0004()) { OK1_Count++; } else { NOK1_Count++; } Serial.println("------------------------------------------"); Serial.print("MCP39F501 DEMO BOARD : "); Serial.println("------------------------------------------"); Serial.println("OUTPUTS"); Serial.print("RMS Current : "); Serial.print(CurrentRMS*0.0001,4); Serial.println(" A"); Serial.print("RMS Voltage : "); Serial.print(VoltageRMS*0.1,1); Serial.println(" V"); Serial.println("DATA COMMUNICATION"); Serial.print("1st frame counts: OK="); Serial.print(OK1_Count,DEC); Serial.print(", Not OK="); Serial.println(NOK1_Count,DEC); delay(1000); } bool RegRead0x0004(void) { Serial1.begin(4800); WriteByte(0xA5); WriteByte(0x08); WriteByte(0x41); WriteByte((byte)0x00); WriteByte(0x04); WriteByte(0x4E); WriteByte(0x16); WriteByteND(0x56); ClearBuffer(); // Parse the data returned from the meter if (Serial1.available()) { Header = Serial1.read(); Byte_Count = Serial1.read(); CurrentRMS_LL = Serial1.read(); CurrentRMS_L = Serial1.read(); CurrentRMS_H = Serial1.read(); CurrentRMS_HH = Serial1.read(); VoltageRMS_L = Serial1.read(); VoltageRMS_H = Serial1.read(); ActivePower_LL = Serial1.read(); ActivePower_L = Serial1.read(); ActivePower_H = Serial1.read(); ActivePower_HH = Serial1.read(); delay(50); ReactivePower_LL = Serial1.read(); ReactivePower_L = Serial1.read(); ReactivePower_H = Serial1.read(); ReactivePower_HH = Serial1.read(); ApparentPower_LL = Serial1.read(); ApparentPower_L = Serial1.read(); ApparentPower_H = Serial1.read(); ApparentPower_HH = Serial1.read(); PowerFactor_L = Serial1.read(); PowerFactor_H = Serial1.read(); Freq_L = Serial1.read(); Freq_H = Serial1.read(); CheckSum = Serial1.read(); } Serial1.end(); Serial.print("Cehcksum Received: "); Serial.println(CheckSum,HEX); // Calculate the expected CheckSum CalculatedCS = (byte)((int)( Header + Byte_Count + CurrentRMS_LL + CurrentRMS_L + CurrentRMS_H + CurrentRMS_HH + VoltageRMS_L + VoltageRMS_H + ActivePower_LL + ActivePower_L + ActivePower_H + ActivePower_HH + ReactivePower_LL + ReactivePower_L + ReactivePower_H + ReactivePower_HH + ApparentPower_LL + ApparentPower_L + ApparentPower_H + ApparentPower_HH + PowerFactor_L + PowerFactor_H + Freq_L + Freq_H + 0)%256); Serial.print("Checksum Calculated: "); Serial.println(CalculatedCS,HEX); // Check for ACK, correct byte count and CheckSum matches expected checksum if ((Header == 0x06) ){//&& (Byte_Count == 0xD) && (CheckSum == CalculatedCS)) { Serial.println("IM HERE"); CurrentRMS = ((unsigned long)(CurrentRMS_HH << 24) + (unsigned long)(CurrentRMS_H << 16) + (unsigned long)(CurrentRMS_L << 8) + (unsigned long)(CurrentRMS_LL)); VoltageRMS = ((unsigned int)(VoltageRMS_H << 8) + (unsigned int)(VoltageRMS_L)) ; return true; } else return false; } void WriteByte(byte _wbyte) { Serial1.flush(); Serial1.write(_wbyte); delay(Xmit_Dly); } void WriteByteND(byte _wbyte) { Serial1.flush(); Serial1.write(_wbyte); //delay(Xmit_Dly); } void ClearBuffer(void) { Serial1.flush(); while(Serial1.available()) char _f = Serial1.read(); delay(30); }
  18. Hi, I am using MSP432P401R to make a UART connection and talk to a board. I have found in the datasheet that MSP432 supports only one UART (RX-P3.2, TX-P3.3). In this case when I use serial to transmit and receive from the other board, Can there be a way i can view the data on serial monitor? How to realize this? I have read in other posts about software serial where GPIOs can be used as serial pins. Can someone brief it for me. My project basically is to read bytes from MCP39F501 onto MSP432P401R and then transmit that data using MODBUS TCP protocol with CC3100 boaster pack.
  19. Good morning. I've been using the MSP430 launchpad and programming it using Energia 18. Anyway, for the whole time I've been using Energia, it very often have to unplug and plug back in my device in order to send it another build. Have any of you seen this problem before? Sometimes it works without having to unplug the hardware, however, over 50% of the time, I have to unplug the LaunchPad in order to upload new code to it from Energia. It seems to get hung while attempting the upload. So, to overcome this, I unplug the Launchpad, click the Upload button again, usually get an error, so I click Upload again and then it seems to start working. Another problem I've been having is that half the time, the Serial Debug output window doesn't show any output. I usually have to close it and re-open it in order to see the output. Also, sometimes, it just doesn't show any output no matter how many times I close and re-open it. Is this just me, or is it a bit iffy with the debug window and the upload? I'm doing all this on a Windows 8 box and have the latest Energia 18 on it. Any ideas to make it so I don't have to keep on unplugging/plugging in my device with each upload? Thanks much, Curtis
  20. Is there a way to use the SoftwareSerial library on the Stellaris Launchpad TM4C123GXL board? I am trying to connect a Sparkfun serial enabled LCD screen to the board but the SoftwareSerial library is only compatible with 20, 16, and 8 MHz processors, and the TM4C123GXL is an 80 MHz chip. How can I use this LCD screen with the Stellaris Launchpad over a UART connection? Do I need to use SoftwareSerial or can I do without it? I am programming in Energia 0101E0017 on Windows 7 64 bit. Any help is greatly appreciated, thanks!
  21. Oh I hope someone can help me out of this headache. I run the msp430g2452 from my MAC (Yosemite), Ran fine after installing drives and all. Now suddenly the "Serial Port" has gone grey and I try to re install, reboot, re everything. No way I can connect again. I was playing with digital out and also in. Seemed like it was when I was trying to read the switch on pin5 that things went bad for me. I know many have had problems on a mac and I have looked intense on this Forum and other on the net. Now I try this. I hope someone can help. Greetings from Brazil and thanks any help. Peter
  22. Here's a tutorial on programming a graphical UI in Google Chrome to display data received over serial http://www.lucadentella.it/en/2016/06/07/chrome-app-e-comunicazione-seriale/ via Dangerous Prototypes. I meant looking into this topic for a long time. For serial communication like in this tutorial, but also USB for a portable upgrade application via a custom USB BSL implementation.
  23. 0down votefavorite Hi, I am trying to implement Modbus TCP on TIVA 1294 using the following code. I am using a modbus slave simulator on a pc to check the following code. However, the code doesn't seem to be working. I have downloaded the code & the libraries fromhttp://myarduinoprojects.com/modbus.html. Please suggest me corrections if necessary. Also is there another working example available for modbus tcp/ip for ethernet on TIVA energia? Please guide. #include <SPI.h> #include <Ethernet.h> #include "MgsModbus.h" MgsModbus Mb; int inByte = 0; // incoming serial byte // Ethernet settings (depending on MAC and Local network) byte mac[] = {0x00, 0x1A, 0xB6, 0x02, 0xD1, 0x14 }; IPAddress ip(192, 168, 0, 35); void setup() { // serial setup Serial.begin(9600); Serial.println("Serial interface started"); // initialize the ethernet device Ethernet.begin(mac, ip); // start etehrnet interface Serial.println("Ethernet interface started"); // print your local IP address: Serial.print("My IP address: "); for (byte thisByte = 0; thisByte < 4; thisByte++) { // print the value of each byte of the IP address: Serial.print(Ethernet.localIP()[thisByte], DEC); Serial.print("."); } Serial.println(); // slave address Mb.remSlaveIP = (192,168,0,1); // Fill MbData // Mb.SetBit(0,false); Mb.MbData[0] = 1; Mb.MbData[1] = 2; Mb.MbData[2] = 3; Mb.MbData[3] = 4; Mb.MbData[4] = 5; Mb.MbData[5] = 6; Mb.MbData[6] = 0; Mb.MbData[7] = 0; Mb.MbData[8] = 0; Mb.MbData[9] = 0; Mb.MbData[10] = 0; Mb.MbData[11] = 0; // print MbData for (int i=0;i<12;i++) { Serial.print("address: "); Serial.print(i); Serial.print("Data: "); Serial.println(Mb.MbData); } // print menu Serial.println("0 - print the first 12 words of the MbData space"); Serial.println("1 - FC 1 - read the first 5 coils from the slave and store them in the lower byte of MbData[1]"); Serial.println("2 - FC 2 - read the first 5 discrete inputs from the slave and store them in the higer of the MbData[1]"); Serial.println("3 - FC 3 - read the first 5 registers from the slave and store them in MbData[3..7"); Serial.println("4 - FC 4 - read the first 5 input registers from the slave and store them in MbData[8..12]"); Serial.println("5 - FC 5 - write coil 0 of the slave with the bit valeu of MbData[0.0]"); Serial.println("6 - FC 6 - write register 0 of the slave with MbData[2]"); Serial.println("7 - FC 15 - write 5 coils of the slave starting with coil 0 with GetBit(16..20"); Serial.println("8 - Fc 16 - write 5 registers of the slave starting on register 0 with MbData[0..4]"); Serial.println(Mb.remSlaveIP); } void loop() { if (Serial.available() > 0) { // get incoming byte: inByte = Serial.read(); if (inByte == '0') { // print MbData for (int i=0;i<12;i++) { Serial.print("address: "); Serial.print(i); Serial.print("Data: "); Serial.println(Mb.MbData); } } if (inByte == '1') {Mb.Req(MB_FC_READ_COILS, 6,6,6);} // 1 // ref, count, pos if (inByte == '2') {Mb.Req(MB_FC_READ_DISCRETE_INPUT, 6,6,6);} // 2 if (inByte == '3') {Mb.Req(MB_FC_READ_REGISTERS, 6,6,6);} // 3 if (inByte == '4') {Mb.Req(MB_FC_READ_INPUT_REGISTER, 6,6,6);} // 4 if (inByte == '5') {Mb.Req(MB_FC_WRITE_COIL, 0,0,0);} // 5 // count can be x if (inByte == '6') {Mb.Req(MB_FC_WRITE_REGISTER, 7,0,0);} // 6 // count can be x if (inByte == '7') {Mb.Req(MB_FC_WRITE_MULTIPLE_COILS, 0,6,0);} // 15 if (inByte == '8') {Mb.Req(MB_FC_WRITE_MULTIPLE_REGISTERS, 0,6,0);} // 16 } Mb.MbmRun(); // Mb.MbsRun(); } Thanks.
  24. I have an XBee (S2C) connected to my Mac and another XBee connected to a TI microcontroller (TIVA-C129) communicating with each other - Mac as a coordinator and TI as a router. I can communicate between them, but on the TI side, I can't read the exact data that is coming in the serial port. On the Mac, I am running below python code that reads the incoming serial data through XBee and writes an acknowledgment. #!/usr/bin/python import serial ser = serial.Serial('/dev/tty.usbserial-A104IC2U', 9600) ack='A' while True: incoming = ser.readline().strip() if incoming != 'A': print '%s' % incoming ser.write('%s\n' % ack) On the TI side, I have below code int incomingByte = 0; void setup() { Serial3.begin(9600); //UART3 has XBee connection pinMode(LED, OUTPUT); } void loop() { Serial3.println("Sending command to the XBee"); delay(1000); Serial3.println("I am R1"); delay(1000); if (Serial3.available() > 0) { // read the incoming byte from UART3 incomingByte = Serial3.read(); // say what you got, print at the usb serial console Serial.print("I received: "); Serial.println(incomingByte, DEC); } } When I run this, XBee communication stops after printing "I am R1" in the python console. I am sure Serial3.available() > 0 is working as when I replace it with a blink code like below, it works and XBee communication keeps working on. if (Serial3.available() > 0) { digitalWrite(LED, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(LED, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second } So looks like the problem is in incomingByte = Serial3.read(); From python, I am sending a string (%s) with ser.write('%s\n' % ack). Is Serial3.read() the right read mechanism for the ack string? Anything else? FYI: I tested the serial.read() only with TI (no python involved) by writing something in the console and serial.read() can read and print it.
  25. Since my only 5529LP was confirmed no longer functioning properly and the likely cause is the USB hub module, there have been some thoughts going through my mind to salvage the core 5529 device on the LP for some good use. And this weekend I have decided to give it a try. As the USB host part is confirmed not functioning, the first step is to verify the F5529 is still good. The easiest way is to try program it and check if it can run new program. With a good F5529 LP (the new replacement board ordered after the old one retired), I removed all the jumpers between the ez-FET and the target device, and then wired the GND, 5V, 3V3, RXD, TXD, SBW RST, and SBW TST from the good ez-FET to the 5529 side of the old LP. This will also power up the old board from the new one as the USB host on the old board is dead and no longer powering it. Soon after an example Energia sketch of SerialCallResponseASCII is uploaded through the new, good board, the good news is displayed on the Serial console confirming the 5529 device is still working flawlessly. At this point, I came into realization that this board can no longer be a handy development board as it once was but only good for deployment, possibly permanently, to some project because I have to rely on that good LP every time for programming. But wait, I recall recently from the forum there are some posts mentioning Forth interpreter for MSP430, one of which by monsonite with comprehensive information on various Forth offerings. However, a common requirement for Forth is serial communication for the console that my old LP is no longer capable to provide with a dead USB hub. Even though I don't have serial to usb converter to bypass the on-board hub for direct serial connection, I remember there is an old Arduino Pro Mini laying around without much used. Combining these two, I could probably build a utility development board that provide ad hoc programming capability (in Forth) on the 5529LP provide the console access required by Forth on the 5529LP via the Arduino Pro Mini (forward the serial communication from the Arduino UART to the 5529LP TX/RX) power the 5529LP via the 5V and 3V3 pin from the Arduino Pro Mini All in all, the goal is to take the Arduino Pro Mini as the controller or programmer of the 5529LP that is programmed to run Forth only. I picked the Mecrisp as it provided out of the box support for the 5529LP and pre-compiled hex file. So the build begin by first flashing the Forth hex file to the 5529LP. Again it required a good 5529LP and I used the latest MSPFlasher for the job. The following is the command line (for Windows). MSP430Flasher.exe -w "forth-mecrisp-5529.hex" -v -g -z [VCC] For a more decent looking of this utility development board, the Pro Mini is mounted to a medium sized breadboard on one end, and with four metal pins (pulled from left over connectors), the 5529LP is somehow "mounted" to the other end. This is enough for some structural support for the 5529LP Now for the Arduino side. Since there is only one set of UART on the Pro Mini, the program on it make use of the SoftSerial library that will emulate another serial port by two digital pins to relay the serial messages from the real UART to the 5529LP. Finally the moment of truth, the serial console to the Arduino is opened for a test. Apart from the line feed being weird, the expression run (1 2 + .<cr>) is successful, so is the programming of the blinky program Moving forward, the Arduino can be programmed in such a way that not only merely relaying serial message, but parse special commands to initiate specific Forth programming to the 5529LP (the Forth programs themselves stored as program in the Arduino). Hopefully this will make the whole package more versatile and practical.
  • Create New...