Jump to content

LiviuM

Members
  • Content Count

    91
  • Joined

  • Last visited

  • Days Won

    13

Posts posted by LiviuM


  1. Hi @@fritzk9,

    regarding your Linux tries, have you installed and "activated" the udev rules for your board as explained on energia.nu?

    What shows the dmesg after connecting the board to the Linux box? If I connect my Launchpad I see

    [327268.534687] usb 1-2: new full-speed USB device number 3 using xhci_hcd
    [327268.741651] usb 1-2: New USB device found, idVendor=0451, idProduct=f432
    [327268.741654] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [327268.741655] usb 1-2: Product: Texas Instruments MSP-FET430UIF
    [327268.741656] usb 1-2: Manufacturer: Texas Instruments
    [327268.741657] usb 1-2: SerialNumber: 58FF426C50063918
    [327268.741782] usb 1-2: ep 0x82 - rounding interval to 1024 microframes, ep desc says 2040 microframes
    [327269.100143] cdc_acm 1-2:1.0: No union descriptor, testing for castrated device
    [327269.100145] usbcore: registered new interface driver usbhid
    [327269.100146] usbhid: USB HID core driver
    [327269.100185] cdc_acm 1-2:1.0: ttyACM0: USB ACM device
    [327269.101187] usbcore: registered new interface driver cdc_acm
    [327269.101188] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
    

    From this message I can see my Launchpad is seen as ttyACM0 by the system. Is the serial port I'll choose in Energia.

     

    If all the above points are OK, you may try to include your user in the dialout group. It is the group "owning" the serial devices, maybe it helps. It should something like

    sudo usermod -a -G dialout yourUserName
    

  2. Hello Curtis,

    in my opinion, your pins file has a problem with the (hardware) i2c pins. In my opinion, the TWISDA should be == with TWISDA0 and TWISCL should be == with TWISCL0. In your file there are defined as:

    static const uint8_t TWISDA  = 22;  /* P1.7 */
    static const uint8_t TWISCL  = 21;  /* P1.6 */
    static const uint8_t TWISDA0  = 23;  /* P1.7 */
    static const uint8_t TWISCL0  = 22;  /* P1.6 */
    

    I think they should be

    static const uint8_t TWISDA  = 22;  /* P1.7 */
    static const uint8_t TWISCL  = 21;  /* P1.6 */
    static const uint8_t TWISDA0  = 22;  /* P1.7 */
    static const uint8_t TWISCL0  = 21;  /* P1.6 */
    

    Attached is the pins_energia.h file with the above correction and with some minor "visual" changes - made the correct footprint for the 32 pins chip, aligned the comments...

    pins_energia.h


  3. The selection of included LP, starting with the "worst" one and bringing the "good" ones few days later, disappointed me.

    So, I bought an (almost) useless LP *) to acquire an (almost) useless CCS license.

     

    Useless for me, as I already had one, no need for a second.


  4. Hi Curtis,

     

    I've checked the Pins_Energia.h

    looking in one of your previous posts to the pin map for the 32 pins devices, there are some defines that maybe are wrong?

    I mean, at the beginning of the map you have

    static const uint8_t TWISDA  = 22;  /* P1.6 */
    static const uint8_t TWISCL  = 21;  /* P1.7 */
    

    and later:

    #define PIN_SCL   P1_3
    #define PIN_SDA   P3_1
    

    Are you sure the later defines are OK?


  5. Hi Bob,

     So, 5V in = 5V out, with the current throttled...

    If there it is a current flowing through the resistor (to be throttled), then Vin != Vout (Vin = Vout + I*R).

    A resistor (+ the ESD protection diode) can be seen as the simplest "level adapting" structure, if the resistor is large enough to keep the current in the Pin's specification.

    As for the actual case, with a 3.3V output driving a 5V CMOS input, as the input is practically floating, I don't see any reason for a damage to the output.

    In the worst case, the 3.3V wouldn't be enough to switch the input, if it is a Schmitt trigger input, for example (the most Schmitt triggers I know have VIH = 0.7*VDD => VIH = 3.5V @VDD = 5V).

     

    My 2 (euro) cents, of course.

     

    Best regards,

    Liviu


  6. Actually you can copy each folder that interest you in the libraries folder for your board.

    On my linux machine and for my board (TM4C1294), the libraries directory is located under

    /home/liviu/.energia15/packages/energia/hardware/tivac/1.0.2/libraries/
    

    Putting there a new folder with a .cpp and a .h files inside, is enough to "create" a new library.

    If you put inside an examples sub-folder, containing example sketches, you'll have also the examples in Energia -> File -> Examples.

     

    HTH,

    Liviu


  7. makes perfect sense to me in English

    Strange, I was thinking the English is my week point... :D

    What I tried to say is, if you look the diagram at page 4 in the Microchips AN, you'll see that every time the bit value changes (0->1 or 1->0) you don't have a transition at the end of bit, but if the bit repeats, you have a transition in the middle of the bit (the active one) and one transition at the end of bit.

    But looking now to the same diagram, I see now that if you can detect the start edge (first H->L transition), there are maybe better criteria to decode the bits.


  8. For Manchester decoding (not on micro controllers, on other equipment), I've measured the time distance between consecutive edges. If the distance is half of the bit length, the last bit is repeated, if the distance is the bit length, the last bit is inverted.

    If you use in interrupt to detect the falling edge and to start a timer, and as you know the first (start) bit is a zero, detecting the next bits shouldn't be to difficult.


  9. Hi,

     

    you can use the for sure the uC name:

    #if defined(__TM4C1294NCPDT__) /*tivac LM4C1294 writes 4 locations at once;*/ 
    

    In older Arduino IDE's I've used the board name as well, but not sure how the newer IDEs work:

     #if defined(ARDUINO_AVR_UNO) || defined(ARDUINO_AVR_NANO)
    

    Regards,

    Liviu

     

    LE Because of the "command line defines" (-D compiling option), I think in the last Energia (1.6.10E18) you can use "ENERGIA_board-name", with the "board-name" found in the boards.txt file. For my TivaC TM41294XL, the boards.txt shows:

    EK-TM4C1294XL.build.board=EK-TM4C1294XL
    

    and the compile option is

    -DENERGIA_EK-TM4C1294XL

  10. Hi,

     

    fount it. :)

    It seems, the DIR definition in energia-1.6.10E18/hardware/tools/msp430/msp430/include/msp430f5529.h

    /* USBCTL Control Bits */
    #define DIR            (0x0001)  /* USB - Data Response Bit */
    
    conflicts with the DIR in the energia-1.6.10E18/libraries/PFatFs/utility/pff.h:

    /* Directory object structure */
    typedef struct {
    	WORD	index;		/* Current read/write index number */
    	BYTE*	fn;			/* Pointer to the SFN (in/out) {file[8],ext[3],status[1]} */
    	CLUST	sclust;		/* Table start cluster (0:Static table) */
    	CLUST	clust;		/* Current cluster */
    	DWORD	sect;		/* Current sector */
    } DIR;
    
    No idea where it will be better to change to remove the conflict, but probably in the PFatFs.

     

    Regards,

    Liviu

×
×
  • Create New...