avr-chat
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [avr-chat] Using a custom ISP programming tool


From: Sterling Peet
Subject: Re: [avr-chat] Using a custom ISP programming tool
Date: Tue, 19 Aug 2014 14:37:34 -0400

    Yes, that gives me a great place to start!  I'll give it a shot and see how 
it goes.

Thanks,

Sterling Peet

Embedded Developer
Gamma-Ray Camera Group
CTA Gamma-Ray Observatory Development
School of Physics & Center for Relativistic Astrophysics
Georgia Institute of Technology
837 State Street NW, Atlanta, GA 30332-0430


On Aug 19, 2014, at 2:22 PM, "Ing. Daniel Rozsnyó" <address@hidden> wrote:

> Then just fork the nonaccelerated FTDI bitbang code (e.g. FT245R programmer). 
> It implements the programming and mcu communication, all you need to do is to 
> transmit the port writes and reads over your network stack. You need to 
> adhere to rules set by avrdude coding here.
> 
> My suggestion was to use the buspirate programmer, which communicates over 
> serial line protocol. The serial line interconnection allows you to run it 
> over a local socket and decouple your code from avrdude into a separate tool 
> (maybe you can do the communication more efficiently in high level language 
> other than C, it can use any threading coding method, etc..). It also allows 
> you to create this add-on and no need in changing anything in avrdude, which 
> might help distribution.
> 
> All programmers which use serial lines can be run over a network easily, in 
> terms of TCP/IP bidirectional streams. For your UDP packetization, you need 
> an intermediate proxy program, to do the translation.
> 
> Clear now?
> 
> 
> On 08/19/2014 08:04 PM, Sterling Peet wrote:
>> Daniel,
>> 
>>     A serial emulator is the first idea that I originally began to consider, 
>> and may well be the initial solution.
>> 
>>     I'm not sure if I don't quite understand some of your proxy suggestion, 
>> or if I didn't quite provide enough information in my previous email.
>> 
>>     The FPGA contains it's own network stack, and is not connected directly 
>> to the computer that is attempting to load the firmware onto the ATmega328 
>> (except via TCP/IP).  Since the FPGA already translates data I send it in a 
>> UDP packet to the hardware bit toggling, I am currently mostly just 
>> concerned with packing and unpacking the the UDP packets in such a way that 
>> avrdude can communicate with the remote FPGA.
>> 
>>     The FPGA could be described as having an ATmega328 connected to a normal 
>> usb programmer on a computer with IP address 10.0.0.5, and a UDP to USB 
>> serial bridge deamon listening on a particular port.  I want to run avrdude 
>> on a different computer with IP address 10.0.0.9 to program the ATmega328.
>> 
>>     Since the AVR is usually programmed directly from the computer the 
>> programmer is connected to, I didn't think there was already a provision for 
>> using avrdude over a network connection.
>> 
>>     It would be preferable to avoid running a separate deamon to bridge 
>> avrdude to the network, but if that is likely to significantly increase the 
>> amount of work then I can tolerate it.  Should I try to pursue developing a 
>> new programmer type for avrdude?
>> 
>> Thanks,
>> 
>> Sterling Peet
>> 
>> Embedded Developer
>> Gamma-Ray Camera Group
>> CTA Gamma-Ray Observatory Development
>> School of Physics & Center for Relativistic Astrophysics
>> Georgia Institute of Technology
>> 837 State Street NW, Atlanta, GA 30332-0430
>> 
>> 
>> On Aug 19, 2014, at 11:50 AM, "Ing. Daniel Rozsnyó" <address@hidden> wrote:
>> 
>>> One of the simpler approaches would be to emulate some simple serial line 
>>> programmer - with a proxy program, which presents itself on a socket (which 
>>> will be used by avrdude) and translate the high level commands to your bit 
>>> toggling in actual hardware.
>>> 
>>> And later updates might move your software translation piece into the 
>>> hardware side.
>>> 
>>> 
>>> Daniel
>>> 
>>> 
>>> On 08/19/2014 05:14 PM, Sterling Peet wrote:
>>>>      I think that I need to write/modify a programmer definition in 
>>>> avrdude to write the firmware into an AVR project that I am working on.  I 
>>>> would like to avoid re-inventing the wheel where I can, and I am 
>>>> interested in suggestions regarding where to start and how to approach 
>>>> this problem.
>>>> 
>>>>      I have inherited a project that contains virgin ATmega328 behind an 
>>>> FPGA that needs to be programmed.  I do not easily have direct access the 
>>>> to pcb hardware.  I do know how the FPGA is connected to the ATmega328, 
>>>> and the FPGA has access to the SPI and Reset lines for the ATmega328.  I 
>>>> also know how to communicate with the FPGA over a UDP socket.  Currently, 
>>>> the FPGA can communicate with the ATmega328 using either SPI or UART, but 
>>>> the communication between the computer and the FPGA uses 32-bit words.
>>>> 
>>>>     It is likely that I can convince the FPGA engineer to make small 
>>>> firmware changes, if that makes programming the ATmega328 firmware 
>>>> significantly easier.  Unfortunately, I do not have the full control of 
>>>> the hardware design that I am used to having, so my normal method of using 
>>>> a standard AVRISP header and programmer tool is not an option.
>>>> 
>>>>    The FPGA engineer has provided me a script that toggles the reset line 
>>>> and demonstrates FPGA interaction described in the firmware programming 
>>>> section of the ATmega328 data sheet, so I believe I should be able to 
>>>> write some relatively basic plumbing code to connect between avrdude and 
>>>> the FPGA to program the ATmega328.
>>>> 
>>>>    How should I proceed?  Are there any recommendations for this type of 
>>>> setup?
>>>> 
>>>> Thanks,
>>>> 
>>>> Sterling Peet
>>>> 
>>>> Embedded Developer
>>>> Gamma-Ray Camera Group
>>>> CTA Gamma-Ray Observatory Development
>>>> School of Physics & Center for Relativistic Astrophysics
>>>> Georgia Institute of Technology
>>>> 837 State Street NW, Atlanta, GA 30332-0430
>>>> _______________________________________________
>>>> AVR-chat mailing list
>>>> address@hidden
>>>> https://lists.nongnu.org/mailman/listinfo/avr-chat
>>>> 
>>> _______________________________________________
>>> AVR-chat mailing list
>>> address@hidden
>>> https://lists.nongnu.org/mailman/listinfo/avr-chat
> 
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]