logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Przenoszenie projektu z arduino na płytkę stykową

swiderEK1 25 Maj 2019 18:01 2877 26
  • #1 17980203
    swiderEK1
    Poziom 6  
    Posty: 49
    Ocena: 17
    Witam Was przy sobocie :) spójrzcie proszę na zdjęcie. Chcę przenieść projekt z arduino na czystą atmegę - proszę - spójrzcie czy dobrze to podpiąłem (zasilanie 5V). Mam taki programator PIC K150 i adapter od esp8266 modułu. Czy tym jestem jakoś wstanie przenieść program ze sketcha arduino na atmegę? Czy muszę adapter kupić jakiś czy jestem w stanie tego co mam użyć albo podłączyć jakoś pod arduino? (mam arduino uno i leonardo) bez możliwości wyciągnięcia atmeg z nich). Dołożyłem jeszcze kwarc 16MHz - proszę sprawdzcie przy okazji czy to jest dobrze podpięte.

    Przenoszenie projektu z arduino na płytkę stykową Przenoszenie projektu z arduino na płytkę stykową
  • Pomocny post
    #2 17980229
    Konto nie istnieje
    Poziom 1  
  • Pomocny post
    #3 17980261
    Konto nie istnieje
    Poziom 1  
  • Pomocny post
    #4 17980267
    Konto nie istnieje
    Poziom 1  
  • #5 17982663
    swiderEK1
    Poziom 6  
    Posty: 49
    Ocena: 17
    a Wam się kiedykolwiek udało w ten sposób zaprogramować? Dwa dni przesiedziałem nad tym, na milion różnych sposobów próbowałem. Albo ta atmega jest uszkodzona (mimo ze jest nowa) albo sam już nie wiem. Pozostaje kupić programator.
  • Pomocny post
    #6 17982669
    Konto nie istnieje
    Poziom 1  
  • Pomocny post
    #7 17982688
    Konto nie istnieje
    Poziom 1  
  • #8 17982756
    kaczakat
    Poziom 34  
    Posty: 1748
    Pomógł: 317
    Ocena: 231
    swiderEK1 napisał:
    Dwa dni przesiedziałem nad tym, na milion różnych sposobów próbowałem
    Jest tylko jedno dobre podłączenie pasujące do jednego ustawienia w programie Arduino as ISP, więc jak próbowałeś na 999999 innych to miałeś sporą szansę na to, że robiłeś źle. Ale takie uroki początków. Wiele osób na początku np. łączy piny RST ArduinoProgramator z RST ArduinoPacjent, a to nie ma prawa działać. USBASP z odpowiednimi sterownikami też działa we wszystkich Windows, jeśli nie planujesz programować egzotycznych uC (jak na Arduino) to jest ponad 5x tańsze od klona MKII.
    Pomogłem? Kup mi kawę.
  • #9 17982812
    swiderEK1
    Poziom 6  
    Posty: 49
    Ocena: 17
    Męczy mnie to, po adapter i tak mogę jechać dopiero za kilka dni więc w tym czasie może coś ustalimy, no chyba, że odpuścicie. Probówałem robić w ten sposób że na arduino wgyrwa się z ArduinoISP z przykładów - użycie pinow 13 12 11 10(do resetu) - to nie działało ale może faktycznie przez ten reset.

    Może ustalmy krok po kroku co powinno sie zrobić. Ja będę to wykonywał i relacjonował.

    I jeszcze jedna ciekawostka. Jak wepnę Atmegę do tego programatora (ze zdjęcia - pic k150) i wezmę "Read" to sczytuje takie coś (zamieszczam na zdjęciu). Tym programatorem chyba się nie da programować Atmeg. Ale czy tak wygląda pusta atmega? jej wartość hex? Bo to by świadczyło, że jest sprawna.

    Przenoszenie projektu z arduino na płytkę stykową

    Przenoszenie projektu z arduino na płytkę stykową
  • Pomocny post
    #10 17982857
    kaczakat
    Poziom 34  
    Posty: 1748
    Pomógł: 317
    Ocena: 231
    Schowaj sobie ten programator na razie do szuflady, możesz go użyć do AVR jako konwertera UART po wyjęciu pica z podstawki i tu się pomysły u mnie kończą. Nie ma zgodnych wyprowadzeń pinów z Atmega328 i co najwyżej coś upalisz. Jeśli od tego zacząłeś to przy okazji programatora od razu zamów sobie ze dwa nowe uC.
    RST faktycznie podpina się pod pin 10, ale też tak musisz mieć ustawione w pliku. Domyślny baudrate jest na 19200 i tak działa OK z Arduino IDE. Ja używam czasami programu AVR LAB++ (jest tu na forum do ściągnięcia) i tam jest potrzebny wybór 115200, a programator AVR ISP. AVR ISP można też wybrać w Arduino jeśli masz skompilowany szkic z prędkością 115200, tak że wolę to ustawienie. Korzystając z programatora Arduino as ISP czy AVR ISP trzeba podać port COM programatora.
    Podłączenia kabelkami trzeba sprawdzić na spokojnie dwa razy, pomylić się łatwo.

    Przenoszenie projektu z arduino na płytkę stykową
    Pomogłem? Kup mi kawę.
  • #11 17982873
    swiderEK1
    Poziom 6  
    Posty: 49
    Ocena: 17
    Przenoszenie projektu z arduino na płytkę stykową

    znalazł tą atmegę na arduino czy tą pustą?
  • #13 17982905
    swiderEK1
    Poziom 6  
    Posty: 49
    Ocena: 17
    Arduino ISP na liście brak a na AVRISP wywala to

    avrdude.exe: stk500_recv(): programmer is not responding
    avrdude.exe: stk500_getsync() attempt 1 of 10: not in sync: resp=0x03
    avrdude.exe: stk500_recv(): programmer is not responding
    avrdude.exe: stk500_getsync() attempt 2 of 10: not in sync: resp=0x03
    avrdude.exe: stk500_recv(): programmer is not responding
    avrdude.exe: stk500_getsync() attempt 3 of 10: not in sync: resp=0x03
    avrdude.exe: stk500_recv(): programmer is not responding
    avrdude.exe: stk500_getsync() attempt 4 of 10: not in sync: resp=0x03
    avrdude.exe: stk500_recv(): programmer is not responding
    avrdude.exe: stk500_getsync() attempt 5 of 10: not in sync: resp=0x03
    avrdude.exe: stk500_recv(): programmer is not responding
    avrdude.exe: stk500_getsync() attempt 6 of 10: not in sync: resp=0x03
    avrdude.exe: stk500_recv(): programmer is not responding
    avrdude.exe: stk500_getsync() attempt 7 of 10: not in sync: resp=0x03
    avrdude.exe: stk500_recv(): programmer is not responding
    avrdude.exe: stk500_getsync() attempt 8 of 10: not in sync: resp=0x03
    avrdude.exe: stk500_recv(): programmer is not responding
    avrdude.exe: stk500_getsync() attempt 9 of 10: not in sync: resp=0x03
    avrdude.exe: stk500_recv(): programmer is not responding
    avrdude.exe: stk500_getsync() attempt 10 of 10: not in sync: resp=0x03

    avrdude.exe done. Thank you.

    czyli to samo ciągle od kilku dni.

    Co z podłączeniem Atmegi - jeśli chodzi o reset i kondensatory - jak jest prawidłowo?
    W ustawieniach portu też baud jest inny - jaka powinna być wartośc odpowiednia? Przenoszenie projektu z arduino na płytkę stykową
  • Pomocny post
    #14 17982915
    kaczakat
    Poziom 34  
    Posty: 1748
    Pomógł: 317
    Ocena: 231
    Nic nie ruszaj w ustawieniach portu COM w Windows. Programy same sobie to ustalają. Wiem, że to działa, bo obrazek załączyłem na żywo, zrobienie programatora i odpowiednie podłączenie trwa 2 minuty.
    Nie napisałeś co skompilowałeś i wgrałeś do Arduino, ani jak teraz ustawiłeś programator w AVR LAB++.
    Pomogłem? Kup mi kawę.
  • #15 17983315
    swiderEK1
    Poziom 6  
    Posty: 49
    Ocena: 17
    Przenoszenie projektu z arduino na płytkę stykową

    Na tę chwilę jest wgrane ArduinoISP przez AVR ISP - ma być to czy Atmega_Hex_Uploader?

    Męczy mnie to podłączenie - żebyś my się dobrze zrozumieli - bo może tu jest pies pogrzebany. Dodam jeszcze, że testuje to na leonardo i uno oraz na systemie windows 7 i 10. Ja aktualnie mam podłączone pod 13,12,11,10 pin - może mógłbyś podeśłać zdjęcie jak Ty masz podpięte? tylko tak żebym mógł to łatwo rozszyfrować.
  • Pomocny post
    #16 17983439
    kaczakat
    Poziom 34  
    Posty: 1748
    Pomógł: 317
    Ocena: 231
    Masz mieć podłączone piny SPI, czyli MOSI, MISO, SCK i do kompletu pin 10 jako reset. Oczywiście jeszcze VCC i GND. Płytka Leonardo nie ma SPI na pinach 11-13. W obu możesz wykorzystać piny złącza ICSP. No i masz ten jeden przypadek z 999999 nieprawidłowych. Wpisz sobie w Google "Arduino Leonardo PINOUT", to samo dla UNO.

    Jeśli używasz AVR ISP to w szkicu przed kompilacją i wgraniem zmień sobie linie około 140 linii kodu:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Schemat, gdy programatorem jest UNO:
    Przenoszenie projektu z arduino na płytkę stykową
    Piny UNO 11-13 są zdublowane na złączu ICSP, w Leonardo to zupełnie inne piny.
    Jak zrobisz programator z UNO , to możesz go podłączyć do Leonardo tak samo jak na tym schemacie i próbować go odczytać z AVRLAB.
    Pomogłem? Kup mi kawę.
  • #17 17983517
    swiderEK1
    Poziom 6  
    Posty: 49
    Ocena: 17
    Zmieniłem tę wartość i faktycznie odnalazło mi coś takiego:

    Przenoszenie projektu z arduino na płytkę stykową

    Co to oznacza, czy udalo się dobrać do tej atmegi? Jak próbuje wgrać bootloader to otwiera się okno komend i szybko coś przebiega i jedyne co zdążam zobaczyć to 100% gdzieś a gdzieś przy końcu "done" - ale niestety okno się zamyka :/

    czyli idziemy w dobrym kierunku? i jeszcze jedno pytanie - AREF ma być podłączony czy nie?


    udalo mi się (tak mi się wydaje przynajmiej) wgrać na atmegę pod pin 8 blinka - ale nie wiem jak to zrobiłem

    Dodano po 14 [minuty]:

    Przenoszenie projektu z arduino na płytkę stykową

    Coś zrobiłem ale nie do końca wiem co, a teraz jak wgrać program z arduino? czy przez avr tez sie da? Jak w takim razie wgrać - żeby wgrać na nową atmegę a nie na arduino?

    Dodano po 32 [minuty]:

    UDAŁO SIĘ! DZIAŁA! ATMEGA SPRAWNA! BARDZO ALE TO BARDZO DZIĘKUJĘ!

    Fajnie, że nie marudziliście i chcieliście pomóc. Bardzo dziękuję :)
  • #18 17984025
    kaczakat
    Poziom 34  
    Posty: 1748
    Pomógł: 317
    Ocena: 231
    Gratulacje, a to co tak szybko miga na czarnym ekranie możesz sobie spokojnie obejrzeć w okienku AVR LAB++, po to jest ten suwak po prawej. AREF podłącz tylko kondensator 100n z GND, zresztą tak samo kondensator powinien być przy VCC i AVCC. Po wskazaniu jako programatora AVR ISP możesz teraz szkice wgrywać bezpośrednio z Arduino IDE.:
    Przenoszenie projektu z arduino na płytkę stykową
    Nie jest przy tej opcji potrzebny bootloader. Z bootloaderem możesz używać tych swoich konwerterów UART. Pamiętaj tylko, że po każdym użyciu programatora do wgrania szkicu bootloader jest kasowany, nie dziw się po tym, że bootloader nie działa. No i tylko ta płytka do pica ma "wyprowadzony" DTR (te piny są podłączone do podstawki pica) przydatny do zrobienia autoreset.
    Pomogłem? Kup mi kawę.
  • #19 17994081
    swiderEK1
    Poziom 6  
    Posty: 49
    Ocena: 17
    Żeby nie zaśmiecać forum - ostatnia prośba. Przeniosę projekt na płytkę, mam ten projekt aktualnie na płytce stykowej i działa jak się należy. Proszę spójrzcie na ten projekt (załącznik pdf) i powiedzcie mi czego tutaj brakuje - szczególnie chodzi mi o kondensatory.

    Jest to sterownik światła z możliwością ustawień godziny aktualnej, włączania i wyłączania - zasilanie 12V (zasilacz 2A). Na płytce stykowej działa poprawnie. Zapewne nikomu nie będzie się chciało analizować całego układu (nie dziwie się), chodzi o te główne połączenia.

    Głównymi elementami jest wyświetlacz 4 cyfrowy (4 piny), moduł zegara rzeczywistego, atmega382, kwarc 16mHz, 5 led 5mm zielonych, 3 switche + 1 jeden przesuwny, jeden stabilizator prądu (TU POWINIENEM ZASTOSOWAĆ JAKIŚ KONDENSATOR?) - który zasili atmęgę i "lewą" część zaznaczoną na czerwono, sterownik LDD-1500L i terminal na śrubki (wyjście do lampy).

    Tak jak wspomniałem powyżej, projekt znajduje się na płytce stykowej i działa, ale zanim przeniose na plytke PCB chciałbym się upewnić, że nie ma błedów, niczego nie brakuje. Nie ukrywam, że w elektornice to moje początki.

    Dziękuję za zainteresowanie (PS: nie dodałem kondensatora do AREFU)
    Załączniki:
    • aaa.pdf (47.18 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • Przenoszenie projektu z arduino na płytkę stykową Untitled-1.jpg (357.12 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #20 17994400
    kaczakat
    Poziom 34  
    Posty: 1748
    Pomógł: 317
    Ocena: 231
    Masz sprzętowe I2C na PC4 i PC5 a używasz osobnych programowych dla LCD i RTC? No i linie SCL/SDA powinny być podciągnięte do VCC, może mają rezystory na swoich płytkach do tego. Dodaj kondensator do Vref 100n, przy ledach rezystory stosuję co najmniej 220 dla VCC 5V (z 1k też jeszcze świecą), przy regulatorze napięcia z obu stron powinny być kondensatory ceramiczne i elektrolity. Czy to zadziała w naturze zależy jeszcze jak jest plan ułożyć to na płytce, ostatnio widziałem jak ktoś narzekał na działanie układu, a listwę do kabli prądowych we/wy umieścił tak, że przewody oplatały uC w drodze do mosfetów.
    Pomogłem? Kup mi kawę.
  • #21 17994416
    Konto nie istnieje
    Poziom 1  
  • #22 17994628
    Konto nie istnieje
    Poziom 1  
  • #23 17994691
    Konto nie istnieje
    Poziom 1  
  • #24 17995130
    el2010tmp
    Poziom 25  
    Posty: 713
    Pomógł: 97
    Ocena: 44
    khoam napisał:
    DS nie wspomina nic o konieczności zastosowania dodatkowych kondensatorów elektrolitycznych.

    Nie wspomina również o "konieczności zastosowania" zasilanego układu :)

    kaczakat napisał:
    przy regulatorze napięcia z obu stron powinny być kondensatory ceramiczne i elektrolity.

    Popieram, na pewno nie zaszkodzą a wręcz przeciwnie.
  • #25 17995407
    swiderEK1
    Poziom 6  
    Posty: 49
    Ocena: 17
    1 Korzystałem z tej strony i mi pokazała taką wartość do zielonej diody (zdjęcie w załączniku)
    2. Dodałem kondensatory - te elektroliczne jakiej wartości powinny być?
    3. Podłączyłem Aref i kondensatory - proszę - spójrzcie w załącznik.
    4. Jak będę projektował płytkę to umieszczę te kondensatory najbliżej jak się da (umieszczę projekt - ale nie chce się brać za projekt płytki jak układ jeszcze niegotowy).
    5. "Masz sprzętowe I2C na PC4 i PC5 a używasz osobnych programowych dla LCD i RTC? No i linie SCL/SDA powinny być podciągnięte do VCC, może mają rezystory na swoich płytkach do tego." tego nie rozumiem - tego mój niezbyt duży mózg nie ogarnia :/
    Załączniki:
    • Przenoszenie projektu z arduino na płytkę stykową ledy.jpg (220.62 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • bbb.pdf (48.23 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #26 17995448
    Konto nie istnieje
    Poziom 1  
  • #27 17996715
    kaczakat
    Poziom 34  
    Posty: 1748
    Pomógł: 317
    Ocena: 231
    Sprawdź, czy w LCD i RTC interfejs do komunikacji to I2C, jeśli tak to znaczy, że na tych samych przewodach podłączasz wiele urządzeń, uC jest MASTER'em, urządzenia to SLAVE'y, to z którym gadasz zależy od adresu urządzenia. Sprzętowe rozwiązania zwykle są lepsze, Twój program nie musi pilnować pinów, wybijać tu rytmu komunikacji i wpisywać bitów, wrzuca to do modułu I2C i wraca do swoich rzeczy w pętli głównej, analogicznie z SPI i UART. Z rezystorami podciągającymi też różnie bywa, jak masz gotowe moduły, każdy ma wbudowany rezystor 10k, podłączysz dwa takie moduły to już masz wypadkowo 5k, przy czterech 2.5k i nic więcej robić nie trzeba. Gdybyś podłączył 4, które mają po 2k to wypadkowa R=500 to już przesada. Gołe chipy z interfejsem I2C nie mają zwykle żadnego PULLUP, bo po co dawać niewłaściwe, ale moduły do Arduino najczęściej są sprzedawane gotowe do użytku.
    Pomogłem? Kup mi kawę.

Podsumowanie tematu

✨ Użytkownik przenosi projekt z Arduino na czystą ATmegę i pyta o poprawność podłączenia oraz możliwość użycia programatora. Odpowiedzi sugerują, że Arduino może działać jako programator, a do wgrywania programów można użyć ArduinoISP lub AVR ISP. Użytkownik napotyka problemy z programowaniem ATmegi, co prowadzi do dyskusji na temat podłączenia pinów oraz ustawień programatora. Po kilku próbach i wskazówkach, użytkownik udaje się wgrać program na ATmegę, co potwierdza jej sprawność. W dalszej części rozmowy omawiane są szczegóły dotyczące kondensatorów, rezystorów oraz podłączenia I2C w kontekście nowego projektu na płytce stykowej.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA