1. Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.
    Dismiss Notice

DATA transmission/receiving using SCR Radio modules.

Discussion in 'Oshonsoft' started by camerart, Oct 10, 2016.

  1. ericgibbs

    ericgibbs Well-Known Member Most Helpful Member

    Joined:
    Jan 4, 2007
    Messages:
    21,220
    Likes:
    644
    Location:
    Ex Yorks' Hants UK
    ONLINE
    hi C,
    It loads a program that resets ALL your passwords every time you go online, also loads countless cookies.
    Do not click the link for the LoRa.

    E
     
  2. camerart

    camerart Active Member

    Joined:
    Jun 12, 2008
    Messages:
    1,368
    Likes:
    11
    Location:
    Dorset UK.
    Hi E,
    Good job, I hadn't got round to clicking on any of the pages in this link.
    Cheers, C.
     
  3. camerart

    camerart Active Member

    Joined:
    Jun 12, 2008
    Messages:
    1,368
    Likes:
    11
    Location:
    Dorset UK.
    Hi,
    I'm still trying to understand how the FIFO works.

    When receiving DATA 'say' via an aerial. Does each BYTE get loaded into the FIFO like a pack of cards, while counting (NUMBER) till the last BYTE has been received?

    When READing the FIFO, is it READ from the bottom, until the NUMBER reaches '0', then SENT to 'say' a terminal?
    C.
     
    Last edited: Jun 28, 2017
  4. dave

    Dave New Member

    Joined:
    Jan 12, 1997
    Messages:
    -
    Likes:
    0


     
  5. sagor1

    sagor1 Member

    Joined:
    Dec 11, 2014
    Messages:
    52
    Likes:
    2

    A lot depends on the size of the FIFO. Some PIC UARTS, for example, have a 2 or 3 byte FIFO. But, if receiving 8 bytes into that FIFO, one has to read the bytes as they come in (before the FIFO gets full), else it will overflow. Usually there is a flag for FIFO overflow. Small FIFO are to allow the program some time to respond to an interrupt or "receive" flag and read the fifo until empty (like you assume). Then, if more data comes in, it simply starts adding to the FIFO again and sets a flag that there is data received again.
    If the FIFO is bigger than the expected received data, you don't need to worry about overflow. But, this is not common, most FIFO are simply limited buffers to allow time for processing of data without losing a byte or two.
    Every byte that goes into the FIFO increments the FIFO counter, and every byte you read from the bottom decreases the FIFO counter. One reads the FIFO until the counter hits zero. Before reading anything, always check the overflow flag, because if that is set, it is too late, you missed data
     
  6. camerart

    camerart Active Member

    Joined:
    Jun 12, 2008
    Messages:
    1,368
    Likes:
    11
    Location:
    Dorset UK.
    Hi S,
    From the DATA sheet [See post#1] it says the FIFO is 64 BYTES. It's possible that this is split in two TX RX so 'say' 32 BYTES. For testing I can keep everything to less than 32 to save overflowing.
    From the notes, I'm following, I get the feeling that the DATA is being emptied from FIFO at the same time as it is coming in from the aerial, is this true, or does it fill the FIFO while counting the BYTES, then sends it out to 'say' a computer serial port while counting them out?

    Do you know how the DATA is stored for outputting and inputting? I'm trying to understand how the DATA transitions to/from the radio module to/from the radio module.
    C.
     
  7. sagor1

    sagor1 Member

    Joined:
    Dec 11, 2014
    Messages:
    52
    Likes:
    2
    Fifo is stored until it is read by some routine. Fifo does not empty on its own, it has to be read, or have some DMA/Interrypt code (complicated...). In 99% of the cases, FIFO has to be read in order to empty it.
    For transmit, the transmit fifo empties on its own, as the hardware sends a byte, it reads the fifo on its own (usually) and decrements the counter. As a program puts another byte into the TX fifo, the fifo counter should go up by one. In some cases, one would put data in the fifo first, then trigger the transmit. How much data on puts in depends on fifo design. For TX, there is usually a fifo "full" flag, that when clear means you can then put another byte into the register (which is part of the internal fifo hardware).

    To test to/from radio modules, I would suggest minimal messages at first, to make sure all bytes are transferred properly. That ensures all the flag checking is done properly, both on RX and TX uarts and fifo registers.

    EDIT: Looking at the datasheet, this device seems to use memory locations as a fifo with thresholds and of course registers to flag status. This is not the same as a UART fifo where one just reads the same register until the "empty" flag comes on. For this RF device, one has to read the memory locations based on address and number of bytes, etc... This system is beyond my skills with simple PICs...
     
    Last edited: Jun 28, 2017
    • Thanks Thanks x 1
  8. camerart

    camerart Active Member

    Joined:
    Jun 12, 2008
    Messages:
    1,368
    Likes:
    11
    Location:
    Dorset UK.
    Hi S,
    Thanks for looking at the DATA sheet, it's quite a task.

    For clarification when testing TRANSMIT:
    [Computer USB serial port TX]>>[PIC RX>>FIFO>>TX (DATA PIN)]>>[SX1278 RX (DATA PIN)>>FIFO>>TX (aerial)]

    The questions here refer to the SX1278 FIFO, I will set up another thread for the PIC FIFO, HERE: http://www.electro-tech-online.com/threads/understanding-a-pic-fifo.151261/
    EDIT: You say "This system is beyond my skills with simple PICs..." Me too!!

    Thanks, C.
     
    Last edited: Jun 29, 2017
  9. camerart

    camerart Active Member

    Joined:
    Jun 12, 2008
    Messages:
    1,368
    Likes:
    11
    Location:
    Dorset UK.
    Hi,
    A puzzle!
    When writing to SPI there is a MASK BIT 10000000
    I am looking at TX and TX READ WRITE and am puzzled by these. How are there WRITTEN and READ from?
    C
     

    Attached Files:

  10. camerart

    camerart Active Member

    Joined:
    Jun 12, 2008
    Messages:
    1,368
    Likes:
    11
    Location:
    Dorset UK.
    Hi,
    Here is the 'finished' program, in that it has all been written and it compiles.
    I'm sure there are mistakes!
    I can now put it on a PIC in circuit and work through it.
    C.
     

    Attached Files:

  11. ericgibbs

    ericgibbs Well-Known Member Most Helpful Member

    Joined:
    Jan 4, 2007
    Messages:
    21,220
    Likes:
    644
    Location:
    Ex Yorks' Hants UK
    ONLINE
    hi C,
    Initial look shows these are incorrect, crossed over.??
    E
    Dim set_regopmode_lora_access0_res_low_moderxcontinuous As Byte
    set_regopmode_lora_access0_res_low_moderxcontinuous = %10001101 '8b 139
    Dim set_regopmode_lora_access0_res_low_modetx As Byte
    set_regopmode_lora_access0_res_low_modetx = %10001011 '8d 141
     
  12. camerart

    camerart Active Member

    Joined:
    Jun 12, 2008
    Messages:
    1,368
    Likes:
    11
    Location:
    Dorset UK.
    Hi E,
    Yes, they're in the wrong order, but I think they are the correct settings. do you agree?
    EDIT: I've put them in the correct order.
    C.
     
    Last edited: Jun 29, 2017
  13. ericgibbs

    ericgibbs Well-Known Member Most Helpful Member

    Joined:
    Jan 4, 2007
    Messages:
    21,220
    Likes:
    644
    Location:
    Ex Yorks' Hants UK
    ONLINE
    hi C,
    I mean the conversion decimal to binary bits is wrong.
    %10001101 '8b 139 is 8d not 8b
    %10001011 '8d 141 is 8b not 8d.

    E
     
  14. camerart

    camerart Active Member

    Joined:
    Jun 12, 2008
    Messages:
    1,368
    Likes:
    11
    Location:
    Dorset UK.
    Hi E,
    I see now, thanks, corrected
    C.
     
    Last edited: Jul 4, 2017
  15. camerart

    camerart Active Member

    Joined:
    Jun 12, 2008
    Messages:
    1,368
    Likes:
    11
    Location:
    Dorset UK.
    Hi,
    Some amendments to the program at #149:
    On the 'Const r_regpayloadlength = 0x22' line [Change comment to EXPLICIT HEADER MODE]
    On the 'Dim addr As Byte' line change ADDR to [fifoaddrptr]
    At LCD: change 'addr' to [fifoaddrptr]

    There need to be RX and TX connections to the PIC, and serial code added.

    C.
     
    Last edited: Jun 30, 2017
  16. camerart

    camerart Active Member

    Joined:
    Jun 12, 2008
    Messages:
    1,368
    Likes:
    11
    Location:
    Dorset UK.
    Hi,
    I am trying to set up HSERIN and HSEROUT for program #149. I have previously used it in my Tracker program, but that was complicated in that it included an NMEA sentence with lots of different types of information.
    I would firstly like to test HSERIN using the simplest DATA possible so I can test to see that the radio module transmits.
    For example, does all DATA transfer start with a $ sign?
    Any help please.
    EDIT:I used a $ at the beginning of random numbers, and the expected Variable changed, early result:)
    C.
     
    Last edited: Jul 4, 2017
  17. camerart

    camerart Active Member

    Joined:
    Jun 12, 2008
    Messages:
    1,368
    Likes:
    11
    Location:
    Dorset UK.
    Hi,
    The #149 program simulates in Oshonsoft, but so far nothing is appearing on the LCD apart from rubbish. I have added start up indicator LEDs at the start of the program, which flash, also a red on inside the receive loop and a yellow one onside the transmit loop, occasionally the yellow one comes on, but that's all I've managed to get out of it so far, no radio transmission.
    I'll now try to proof read the program.
    C.
     
  18. ericgibbs

    ericgibbs Well-Known Member Most Helpful Member

    Joined:
    Jan 4, 2007
    Messages:
    21,220
    Likes:
    644
    Location:
    Ex Yorks' Hants UK
    ONLINE
    hi C,
    Such nice weather to be indoors...:D

    I usually add a simple 'Ready' msg to the LCD, close to the program start as possible, keep it ON for say 2 secs.
    If you are using RS232/serial a 'Ready',crlf msg will confirm that the modules are wired correctly and are working.

    E
     
  19. camerart

    camerart Active Member

    Joined:
    Jun 12, 2008
    Messages:
    1,368
    Likes:
    11
    Location:
    Dorset UK.
    Hi
    Hi E,
    I've just come in for a cool:cool:
    I did something like that in a circuit test, and the LCD works ok.
    C
     

Share This Page