Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

ESPasp - programator WiFi do AVRów by piotr_go

piotr_go 04 Sty 2015 18:59 26064 75
  • ESPasp - programator WiFi do AVRów by piotr_go

    Witam.
    Chciałbym zaprezentować kolejny zaprojektowany przeze mnie programator. Tym razem jest to programator AVRów w wersji WiFi.
    Do jego budowy został wykorzystany popularny ostatnio moduł ESP-12 na układzie ESP8266. W celu dostosowania modułu do napięć 5V dodałem układ 74LCX244.
    Programator współpracuje z AVRDUDE.
    Przytrzymanie przycisku przy włączaniu zasilania odblokowuje tryb konfiguracji i aktualizacji FW (aktualizacja za pomocą TFTP).

    Wgrywanie FW:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    AVRDUDE:
    Kod: bash
    Zaloguj się, aby zobaczyć kod


    ESPasp - programator WiFi do AVRów by piotr_go

    ESPasp - programator WiFi do AVRów by piotr_go

    ESPasp - programator WiFi do AVRów by piotr_go

    Konfiguracja WWW:
    ESPasp - programator WiFi do AVRów by piotr_go

    Wykorzystanie projektu w celach komercyjnych zabronione!

    Załączniki:

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz pendrive 32GB.
  • #2 04 Sty 2015 21:46
    piotrva
    Moderator na urlopie...

    Jaki koszt całości?
    W czym tworzyłeś soft na ESP, mógłbyś podzielić się jakimiś dokumentacjami?
    Jakie procesory wspiera urządzenie?
    Czy zamierzasz coś takiego sprzedawać?

    Czy można równocześnie komunikować się z układem programowanym?

    Ogólnie projekt ciekawy, choć zastanawiam się czy nie lepszy jest bootloader po UART, bo wtedy mamy interface komunikacyjny i programowanie układu będącego gdzieś ;)

  • #3 04 Sty 2015 21:56
    noel200
    Poziom 23  

    Układ esp na tej niebieskiej płytce rozumiem z handlu, a ta biała skąd? Gdzie zamawiałeś? Czy może sam robiłeś?
    Z jaką szybkością programuje układ ten programator?
    Aha i jaki pobór prądu jest całości z programowanego układu?
    Ale bardzo ciekawe urządzenie. Masz realną i praktyczną potrzebę bezprzewodowego podłączania programatora czy zrobiłeś to dla bajeru?
    Pozdrawiam

  • #4 04 Sty 2015 22:17
    piotr_go
    Poziom 27  

    piotrva napisał:
    Jaki koszt całości?

    Poniżej 50zł.

    piotrva napisał:
    W czym tworzyłeś soft na ESP, mógłbyś podzielić się jakimiś dokumentacjami?

    SDK stąd:
    http://bbs.espressif.com/

    piotrva napisał:
    Jakie procesory wspiera urządzenie?

    Testowałem tylko na attiny13 ale powinien z avrów wspierać to co stk500v1 + avrdude

    piotrva napisał:
    Czy zamierzasz coś takiego sprzedawać?

    Nie mam do tego głowy. Jeżeli jakaś firma jest zainteresowana produkcją to niech da znać.

    piotrva napisał:
    Czy można równocześnie komunikować się z układem programowanym?

    Dało by się dorobić, tylko trzeba by kabelek dolutować bo uart nie jest podłączony.


    noel200 napisał:
    Układ esp na tej niebieskiej płytce rozumiem z handlu, a ta biała skąd? Gdzie zamawiałeś? Czy może sam robiłeś?

    Projekt własny, zamawiana w chinach (taniej, lepiej)

    noel200 napisał:
    Z jaką szybkością programuje układ ten programator?

    I have no idea. Mam tylko attiny13 pod ręką, z dużych procków wolę ARMy.

    noel200 napisał:
    Aha i jaki pobór prądu jest całości z programowanego układu?

    Było coś koło 70mA w idle. Przy programowaniu nie mierzyłem.

    noel200 napisał:
    Ale bardzo ciekawe urządzenie. Masz realną i praktyczną potrzebę bezprzewodowego podłączania programatora czy zrobiłeś to dla bajeru?

    Dla bajeru :) Nie chciałem robić kolejnego włącznika światła jako pierwszy projekt na tym układzie.

  • #5 04 Sty 2015 22:24
    noel200
    Poziom 23  

    Aha, ja od pewnego czasu zastanawiam się czy nie zrobić dedykowanego bezprzewodowego programatora do PLC-ków które programuję zawodowo, ale tam w gnieździe nie ma zasilania, więc przy podłączaniu gdzieś w szafie trzeba byłoby oddzielny przewód zasilający puścić i najwygodniej taki programator zostawić, żeby nie podłączać i odłączać ciągle. A do każdej maszyny taki to koszt własny, bo na pracodawcę raczej nie ma co liczyć.
    A jak z zasięgiem? Testowałeś? na jakieś większe otwarte odległości, albo ściany?

  • #6 04 Sty 2015 22:30
    piotr_go
    Poziom 27  

    noel200 napisał:
    A jak z zasięgiem? Testowałeś? na jakieś większe otwarte odległości, albo ściany?

    Na youtube był test zasięgu tych modułów, wyszło od kilkuset metrów do kilku km.
    U mnie przez kilka ścian działa więc jest OK.

  • #7 04 Sty 2015 23:58
    byrrt
    Poziom 21  

    Na tych ESP sam zamierzam trochę porobić - zamówione jeszcze w zeszłym roku idą do mnie z chin.. Fajne te moduliki, nie ruszałem jeszcze SDK ale wydaje się być to fajną bardzo tanią zabawką z wifi.

  • #9 05 Sty 2015 01:23
    george2002

    Poziom 19  

    Kruca seksa, aż się dziwię że nikt nie napisał że w końcu jakiś ciekawy projekt programatora AVR, uważam że rewelacja, już były na RFM12, optoizolowane ale to to po prostu przebija, zwłaszcza że brak mikrokontrolera, układ potrzebuje pcb + parę oporniczków, dwie diodki, bufor zasilania, zasilacz i po prostu działa i to bezprzewodowo i bez problemu, pełen podziw dla kolegi :) tak na prawdę to chyba tańszy programator od pospolitych USBasp bo esp8266 przy dobrym zakupie kosztuje ok 3-5zł a atmega8 do USBasp kosztuje >6zł i do tego bezprzewodowy :D

    PS
    Rozumiem że kolega "zemulował" ESP że działa jak programator STK500 tak :) ?

    Pozdrawiam
    George2002

  • #10 05 Sty 2015 09:37
    Dragas
    Poziom 26  

    Jeśli chodzi o pcb, czy istnieje możliwość udostępnienia linku lub informacji gdzie można znaleźć firmę produkującą pcb w chinach w dobrej jakości i przyzwoitej cenie, o której mowa w poprzednich postach, oraz jaka jest cena za 1mm^2 lub 1cm^2 pcb w chinach?

  • #11 05 Sty 2015 09:42
    Radzio M.
    Poziom 32  

    Dragas napisał:
    Jeśli chodzi o pcb, czy istnieje możliwość udostępnienia linku lub informacji gdzie można znaleźć firmę produkującą pcb w chinach w dobrej jakości i przyzwoitej cenie, o której mowa w poprzednich postach, oraz jaka jest cena za 1mm^2 lub 1cm^2 pcb w chinach?

    To możesz poszukać na ebay pod hasłem "pcb manufacture".

  • #12 05 Sty 2015 11:10
    piotr_go
    Poziom 27  

    george2002 napisał:
    w końcu jakiś ciekawy projekt programatora AVR

    pgProg lepiej mi się udał, ostatnio dodałem nawet programowanie pic10fxxx. Miałem nawet zrobić jego wersję wifi z wbudowanym akumulatorem ale sobie odpuściłem.

    george2002 napisał:
    Rozumiem że kolega "zemulował" ESP że działa jak programator STK500 tak :) ?

    Tak, szukałem czegoś z obsługą sieci w avrdude.

    Dragas napisał:
    gdzie można znaleźć firmę produkującą pcb w chinach w dobrej jakości i przyzwoitej cenie

    www.elecrow.com , ale białych na prototyp nie polecam, ładne ale ciężko wypatrzeć ścieżki.

  • #13 05 Sty 2015 11:43
    george2002

    Poziom 19  

    piotr_go napisał:
    george2002 napisał:
    w końcu jakiś ciekawy projekt programatora AVR

    pgProg lepiej mi się udał, ostatnio dodałem nawet programowanie pic10fxxx. Miałem nawet zrobić jego wersję wifi z wbudowanym akumulatorem ale sobie odpuściłem.

    george2002 napisał:
    Rozumiem że kolega "zemulował" ESP że działa jak programator STK500 tak :) ?

    Tak, szukałem czegoś z obsługą sieci w avrdude.

    Dragas napisał:
    gdzie można znaleźć firmę produkującą pcb w chinach w dobrej jakości i przyzwoitej cenie

    www.elecrow.com , ale białych na prototyp nie polecam, ładne ale ciężko wypatrzeć ścieżki.



    Wg Mnie i tak nie ma porównania, programator bez procesora w cenie procesora i do tego jeszcze przez WiFi, ciekawi Mnie czy mógłby być taki programator wpięty na stałe do ISP aby zdalnie przeprogramowywać czasem urządzenie trudno dostępne :) ? zakładam że nie bo trzyma reset cały czas :) ?


    dało by też radę sprawdzić te szybkości programowania z ci9ekawości, czy działa szybciej od USBasp czy tak samo czy wolniej ;)

    Pozdrawiam
    Grzegorz

  • #14 05 Sty 2015 11:51
    piotr_go
    Poziom 27  

    A no cena wiadomo, nie ma porównania :)
    Reset włącza się tylko na czas programowania. Resztę też 74LCX244 odcina.
    Poszukam jakiejś mega8ki(nic większego z avrów nie mam) do testów prędkości, ale nic nie obiecuję.

  • #15 05 Sty 2015 11:54
    george2002

    Poziom 19  

    piotr_go napisał:
    A no cena wiadomo, nie ma porównania :)
    Reset włącza się tylko na czas programowania. Resztę też 74LCX244 odcina.


    Kurczę rewelacja, bo np są takie miejsca gdzie cieżko się dostać z programatorem lub trudno/wysoko a czasem trza coś zaktualizować a tu jak znalazł, szkoda że kolega nie myślał nad produkcją bo zakładam że jak jakiś czajnik to zobaczy to zaraz w sprzedaży się znajdzie ;)

    Pozdrawiam
    Grzegorz

  • #16 05 Sty 2015 11:59
    Freddy
    Poziom 43  

    byrrt napisał:
    Na tych ESP sam zamierzam trochę porobić - zamówione jeszcze w zeszłym roku idą do mnie z chin.. Fajne te moduliki, nie ruszałem jeszcze SDK ale wydaje się być to fajną bardzo tanią zabawką z wifi.
    No niestety nie znam C i chyba już trochę późno na jego naukę :P, a też chętnie zająłbym się tymi modułami.

  • #17 05 Sty 2015 14:05
    piotr_go
    Poziom 27  

    Test szybkości programowania mega8:

    Kod: bash
    Zaloguj się, aby zobaczyć kod

    Dało by się jeszcze przyspieszyć bo nie zrobiłem jeszcze regulacji prędkości.

  • #18 05 Sty 2015 17:51
    george2002

    Poziom 19  

    piotr_go napisał:
    Test szybkości programowania mega8:

    Kod: bash
    Zaloguj się, aby zobaczyć kod

    Dało by się jeszcze przyspieszyć bo nie zrobiłem jeszcze regulacji prędkości.



    Zasuwa nieźle, jak by jeszcze obsługę prędkości dorobić to by było hiper, ciekawa jest bardzo mała różnica w zapis/odczyt zakładam że odczyt powinno się dać przyspieszyć bo normalnie chodzi szybciej odczyt od zapisu :)



    Pozdrawiam
    Grzegorz

  • #19 05 Sty 2015 18:27
    piotr_go
    Poziom 27  

    Dodałam zmianę prędkości tylko nie mogę znaleźć parametru w avrdude do tego :( (zna ktoś?)
    Przy okazji przyspieszyłem programowanie.

    Kod: bash
    Zaloguj się, aby zobaczyć kod

  • #20 05 Sty 2015 18:48
    naelektryzowany
    Poziom 17  

    Muszę przyznać, że układ robi wrażenie. Sam kiedyś zastanawiałem się nad zdalnym programowaniem, ale doszedłem do wniosku, że prościej niż bootloader po radiu lub bluetooth się nie da. Dziś patrzę i jestem zdumiony nie dość, że bezprzewodowo to i tanio i bez konieczności zajmowania flsha dodatkowym kodem bootloadera.

    Sam korzystam na co dzień z stk500v2 można programować po wirtualnym serial porcie, więc może do regulacji prędkości nadałby się parametr -b (baudrate), który mi się kolaży typowo z serial portem. ;)

    A tu wszystkie parametry dla avrdude:

    Code:

    naelektryzowany@mateusz-ThinkPad:~$ avrdude
    Usage: avrdude [options]
    Options:
      -p <partno>                Required. Specify AVR device.
      -b <baudrate>              Override RS-232 baud rate.
      -B <bitclock>              Specify JTAG/STK500v2 bit clock period (us).
      -C <config-file>           Specify location of configuration file.
      -c <programmer>            Specify programmer type.
      -D                         Disable auto erase for flash memory
      -i <delay>                 ISP Clock Delay [in microseconds]
      -P <port>                  Specify connection port.
      -F                         Override invalid signature check.
      -e                         Perform a chip erase.
      -O                         Perform RC oscillator calibration (see AVR053).
      -U <memtype>:r|w|v:<filename>[:format]
                                 Memory operation specification.
                                 Multiple -U options are allowed, each request
                                 is performed in the order specified.
      -n                         Do not write anything to the device.
      -V                         Do not verify.
      -u                         Disable safemode, default when running from a script.
      -s                         Silent safemode operation, will not ask you if
                                 fuses should be changed back.
      -t                         Enter terminal mode.
      -E <exitspec>[,<exitspec>] List programmer exit specifications.
      -x <extended_param>        Pass <extended_param> to programmer.
      -y                         Count # erase cycles in EEPROM.
      -Y <number>                Initialize erase cycle # in EEPROM.
      -v                         Verbose output. -v -v for more.
      -q                         Quell progress output. -q -q for less.
      -l logfile                 Use logfile rather than stderr for diagnostics.
      -?                         Display this usage.

    avrdude version 6.1, URL: <http://savannah.nongnu.org/projects/avrdude/>

  • #21 05 Sty 2015 18:55
    piotr_go
    Poziom 27  

    naelektryzowany napisał:
    do regulacji prędkości nadałby się parametr -b (baudrate)

    To nie to, to do komunikacji pc<>stk500.
    W źródłach avrdude niby jest funkcja "stk500_set_sck_period" ale nie mogę znaleźć jaki parametr ją wywołuje.
    Cytat:
    -B <bitclock> Specify JTAG/STK500v2 bit clock period (us).
    -i <delay> ISP Clock Delay [in microseconds]

    nie dają efektów.

  • #22 05 Sty 2015 20:07
    elektronik000
    Poziom 19  

    Witam,
    ciekawe adresy uploadu flasha, coś zmieniałeś ostro w SDK?
    Używasz otwartego SDK czy tego z Espressif?

  • #23 05 Sty 2015 20:37
    piotr_go
    Poziom 27  

    Tego z Espressif.
    Adresy takie bo planuje zrobić bootloader który będzie przełączał soft (update/zwykły).
    Aktualizacje TFTP już mam tylko nie wiem jak zrobić wybór softu który ma startować za pomocą przycisku..

  • #24 05 Sty 2015 20:40
    elektronik000
    Poziom 19  

    Nie wiem czy dasz rade, bo z tego co pamiętam tam bootloader jest binarny. Chińczycy obiecywali pełne SDK (bez binarek), ale pewnie na obietnicach się skończy.

    Próbuje uruchomić ten twój projekt, ale coś nie może zapisać nowych ustawień. Testuje na ESP-08, jeszcze bez podłączonych peryferiów.

  • #25 05 Sty 2015 20:48
    piotr_go
    Poziom 27  
  • #26 05 Sty 2015 21:02
    elektronik000
    Poziom 19  

    Ok. Teraz działa, jak mogłem taką oczywistość przeoczyć :)

    --UPDATE--

    Działa lux!
    Na płytce ESP07 i ESP08 jest pomylona kolejność pinów (w warstwie opisowej) - zamienione są GPIO4 oraz GPIO5.

    Testowałem z avr328p (bez buforów, na 3.3V@2MHz - 16MHz kwarc + DIV 8).
    Warto dodać, że przesyłanie działa tylko pod Linuxem, pod Windows brak wsparcia w avrdude.

    Warto pomyśleć nad trybem AP+STA. Modulik ESP8266 nawet dobrze sobie radzi w tym trybie :)

  • #27 05 Sty 2015 22:58
    george2002

    Poziom 19  

    piotr_go napisał:
    naelektryzowany napisał:
    do regulacji prędkości nadałby się parametr -b (baudrate)

    To nie to, to do komunikacji pc<>stk500.
    W źródłach avrdude niby jest funkcja "stk500_set_sck_period" ale nie mogę znaleźć jaki parametr ją wywołuje.
    Cytat:
    -B <bitclock> Specify JTAG/STK500v2 bit clock period (us).
    -i <delay> ISP Clock Delay [in microseconds]

    nie dają efektów.


    Znalazłem takie cuś:

    Cytat:

    The value used in the -B option to avrdude is the period, so higher values result in a slower programming frequency. This is handled in the avrdude software, not the usbasp firmware. All that is passed to the usbasp device is a number from 0-12 (0 = auto = 375 khz) via usb which is transparent to the end user. When the clock frequency is 32khz or greater the usbasp device utilizes bit banged ISP communications in order to get the increased delays. Here is a chart showing the relationship of the -B value to frequency. I normally just use '-B 100' to set fuses on a new device or as a troubleshooting tool for one that is not communicating. That value works well to set fuses or establishing communications but I wouldnt want to do any programming at that slow of a speed.


    0. no -B switch = auto = 375khz
    1. -B 2000 = 500 hz
    2. -B 1000 = 1khz
    3. -B 500 = 2khz
    4. -B 250 = 4khz
    5. -B 125 = 8 khz
    6. -B 62 = 16khz
    7. -B 31 = 32khz * the cutoff for bit banged isp
    8. -B 10 = 93.75 khz
    9. -B 5 = 187.5 khz
    10. -B 2 = 375 khz
    11. -B 1 = 750 khz
    12. -B .5 = 1.5mhz


    Opisane więcej tutja http://9xrprogrammer.com/index.php/learn/31-usbasp-firmware co prawda to do USBasp ale może zadziała z twoim ;)

    Dodano po 6 [minuty]:

    elektronik000 napisał:

    Warto dodać, że przesyłanie działa tylko pod Linuxem, pod Windows brak wsparcia w avrdude.


    Rozumiem że pod windowsem ten programator nie będzie działał :( ? bo avrdude z USBasp działa, może uda się coś wykminić ;)

    Pozdrawiam
    Grzegorz - użytkownik Winzgrozy :D

  • #28 05 Sty 2015 23:18
    elektronik000
    Poziom 19  

    Raczej wątpie, użycie avrdude z parametrami podanymi powyżej powoduje:

    Code:

    avrdude: ser_open(): network connects are currently notimplemented for Win32 environments


    No chyba, że samemu napiszesz obsługę pod Win32.

  • #29 05 Sty 2015 23:41
    george2002

    Poziom 19  

    elektronik000 napisał:
    Raczej wątpie, użycie avrdude z parametrami podanymi powyżej powoduje:

    Code:

    avrdude: ser_open(): network connects are currently notimplemented for Win32 environments


    No chyba, że samemu napiszesz obsługę pod Win32.



    Buuu :(

    Może pod androidem by ruszyło :) ?

    https://play.google.com/store/apps/details?id=ru.zdevs.zflasheravr

    Pozdrawiam
    Grzegorz

  • #30 06 Sty 2015 00:03
    piotr_go
    Poziom 27  

    echhhhhhhh
    "network connects are currently not implemented for Win32 environments"
    Nie ma jakichś emulatorów com<->tcp ?


    ============= update odnośnie ustawiania prędkości =============
    Do parametrów trzeba dodać "-t", pojawi się terminal, wtedy wpisujemy "sck <czas w uS>", potem "quit" i zacznie się programowanie z wybraną prędkością :)
    Nie wiem tylko czy da się to zautomatyzować.