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 23:41:39 -0400

    Sure, I might decide to build up my own network based programming tool for 
personal use too!  I looked around but I didn't see where the avrdude coding 
rules are located.  Are they in the source repository somewhere?

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:41 PM, "Ing. Daniel Rozsnyó" <address@hidden> wrote:

> Could you then share the result? I always wanted to do a network attached 
> programmer, and reusing your code/tool I can code a simple ENC28J60+AVR 
> device to act as your FPGA (I already have a network stack in my miniature 
> AVR OS... just need to code the equivalent of data unpacking/presentation 
> which your FPGA does).
> 
> Regards,
> 
> Daniel
> 
> On 08/19/2014 08:37 PM, Sterling Peet wrote:
>>     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]