This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

How to use Multiple GPIO pins to program other multiple devices at once ?

Other Parts Discussed in Thread: TM4C1237H6PGE, CC2530

Hello all,

I need the support on the logic of multiple device programming at once.

I want to use TM4C1237H6PGE controller for programming multiple devices at once.

That device needs three lines (i.e. DATA, CLK and RESET) to be programmed and one device needs approx. 45 secs to 1 minute to be programmed completely.

So, If I want to program 8 devices at a time, the same will be programmed in the same time i.e. approx 45 secs to 1 minute thus in this way I can cut the programming time and thereby improve the efficiency.

Now as for example, if I want to program such 8 devices, what I am thinking is to use PORTA as DATA lines for 8 devices, PORTB as CLK lines for those 8 devices and PORTC as RESET lines for those 8 devices. 

If I use such interface, can I program those 8 devices at once ? Is this type of connection is reliable ?

Moreover, if such way of parallel programming is possible then, can I use more than 8 bits at once such that I can program more than 8 devices in parallel.

Any suggestion is highly appreciable. 

Thanks and regards,

Milap Dhruv

  • Yes and maybe but it depends a lot on how robust your program is.

    Two thoughts
    - First, be wary of optimizing yourself to death. Spending a lot of time and money on cutting average time in half of programming when most of your process time is elsewhere is worse than pointless. Also remember to factor in your time adding and removing items from jigs.
    - Second rather than bit bang the output you may be able to get exactly the same speed up by running the communications in sequence, first device 1, then device 2 etc... It's usually the wait for operation status that eats the time, you can send commands to the next N devices while waiting for status from the first. The advantage is that you may be able to use a faster peripheral and not have to manage multiple different bit streams when bit-banging.

    Robert
  • Milap Dhruv said:
    ...If I want to program 8 devices at a time

    Might it be (just) a bit premature to raise this issue?  

    Will your product sell in the volume required to justify the time/effort/cost spent in this, "Parallel MCU Programming Quest?"

    Is this relatively simple MCU - its ports confined to (just) 8 bits - ideal (or even proper) for such task?

    In the dark ages we programmed Eproms in parallel.    And we noted "driver/booster" ICs - dedicated to overcoming the extra capacitance & added distance - such parallel programming created.

    Commercial devices are available - their designers (likely) have, "Weighed the critical issues & dedicated far more time/funds" to such project than can a single user...

  • Hello Milap

    Again it is on the communication protocol between TM4C1237H6PGE and the "device". While you have mentioned what you want to do; the protocol being unclear renders the post very ambiguous to be able to achieve the desired goals.

    Regards
    Amit
  • Please consider following additional information on this.

    Actually we have CC2530 chipcon modules which need to be programmed. Programming CC2530 module needs 3 lines (DATA, CLK and RESET) for programming.
    Currently we are programming it through Debug interface / over the air programming. But doing programming in any way takes approx. 45 secs to 1 minute to complete programming.
    And for production purpose we need to find a way so that we can program such hundreds of modules in less time.
    Thus we are thinking of parallel programming so that production time can be reduced.
    For that purpose(i.e. parallel programming) what we are thinking is to take PORTA as DATA lines for 8 modules, PORTB as CLK lines for 8 modules and PORTC as RESET lines for 8 modules like I said earlier. And in this way, we can program 8 CC2530 modules in approx. 1 minute.

    Moreover, we can take other ports for programming more modules. So, considering the max. port availability, we can program 24 modules. Considering the time for programming 8 modules takes approx. 1 minute, we can program 24 modules in approx. 3 minutes. All we need to do is to make such board on which those 24 modules can be placed and that board needs to be connected with microcontroller programming board. So, in approx. 3 - 5 minutes (additional time is considered in case any unwanted delay occurs during programming) , 24 modules can be programmed. Then remove those 24 modules from the board and place another 24 modules for programming and so on.

    So, in this way, is it possible to program those modules in parallel.
    Is there any other way to do it ? Your suggestion is appreciable.

    Thanks,
    Milap
  • Hello Milap

    Since I have not used CC2530, my suggestion would be to build one device programmer first before expanding it to 8-24. There are a few things to note

    1. CC2530 uses the data as bi directional mode, so you would need to configure the Pad direction based on the command to be able to sample the data when doing a read from CC2530
    2. When using multiple devices on the same port or multiple ports, it would not be 45 seconds as more computation would be requiered due to changes to the IO configuration. So be realistic on the programming times.

    Other than it is very much possible,

    Regards
    Amit
  • Hi Amit,

    I got your point. I will do it accordingly.

    Thanks and regards,
    Milap