Brak odczytu temepratury extrudera po awarii

Oprogramowanie sterownika drukarki i do łączenia komputera z drukarką
Awatar użytkownika
dziobu
Zasłużony
Postów w temacie: 21
Posty: 8939
Rejestracja: 28 gru 2016, 16:38
Drukarka: ZMorph 2.0(S)
x 5869
Kontakt:

Re: Brak odczytu temepratury extrudera po awarii

Post autor: dziobu »

A jednak coś jest grubo nie tak.
Nie dość że przerwanie od ADC (jedyne obsługiwane!) robi za podwójny (1 i 4-bajtowy) licznik to jeszcze pojawił się taki oto kwiatek:

Kod: Zaznacz cały

ROM:3BBC                 cbi     ADCH, 7         ; The ADC Data Register High (ADLAR = 0)
ROM:3BBD                 cbi     UCSR0A, FE      ; USART Control and Status Register
Skasowanie 7 bitu w rejestrze read-only. Tego assembler nie puści na pewno.
Drugiego też nie - tu mowa o 254 bicie (rozkaz wymaga parametru 0..7).

Inny soft dla atmegi128 deasembluje się prawidłowo. W innych deassemblerach (choćby we wspomnianym ReAVR) jest taka sama kicha jak tu. Ale jakby to był problem konwersji z srec to zarówno wspomniane programy by się burzyły jak i teksty nie wyglądały by tak jak powinny:
costam.png
Softy z paczki firmware wyglądają tak samo. Nic z tego nie rozumiem... Chyba muszę się wyspać ;p
sawko78
Konto z ograniczeniami
Postów w temacie: 31
Posty: 65
Rejestracja: 03 gru 2017, 21:22

Re: Brak odczytu temepratury extrudera po awarii

Post autor: sawko78 »

Jeżeli nie da rady podmienić czujników może da radę ożywić extruder nr 2 wówczas przełożę sterowanie na 2 i w repetier wstawię że mam 2 extrudery i używam nr 2 ? Czy nie logicznie pisze i też muszę się przespać ? Kolejna opcja, otrzymany od dziobu HEX wsadzę do nowej atmegi i ja po prostu podmienię ?
Awatar użytkownika
dziobu
Zasłużony
Postów w temacie: 21
Posty: 8939
Rejestracja: 28 gru 2016, 16:38
Drukarka: ZMorph 2.0(S)
x 5869
Kontakt:

Re: Brak odczytu temepratury extrudera po awarii

Post autor: dziobu »

W powyższym pliku masz "EXTRUDER_COUNT:1" co by sugerowało że ten firmware jest na etapie kompilacji oberżnięty do jednego ekstrudera. Zostaje imho tylko podmiana wejść (co w AVRze nie jest/nie powinno być trudne). Tyle że za cholerę nie wiem (jeszcze) jak ten FW działa.

Mógłby ktoś tu wrzucić skompilowanego (hex/bin) Marlina?
Awatar użytkownika
dragonn
Zasłużony
Postów w temacie: 14
Posty: 6384
Rejestracja: 12 gru 2016, 21:50
Lokalizacja: Opole
Drukarka: LUME
x 1455

Re: Brak odczytu temepratury extrudera po awarii

Post autor: dragonn »

Awatar użytkownika
dziobu
Zasłużony
Postów w temacie: 21
Posty: 8939
Rejestracja: 28 gru 2016, 16:38
Drukarka: ZMorph 2.0(S)
x 5869
Kontakt:

Re: Brak odczytu temepratury extrudera po awarii

Post autor: dziobu »

Dzięki.
Tutaj jest OK. Jeśli dobrze widzę korzystasz z ADC1 i ADC4 (tak mi się wydaje bo nie widzę gdzie on kasuje te bity ;p).

Ale tamto też się wyjaśniło. Na głupa założyłem że to mega128, a to przecież mega1281. Zupełnie inny procesor. Dlatego wektor przerwań był taki głupi. Problem tylko w tym że 1281 ma część rejestrów I/O dostępnych niejawnie. Trzeba je adresować przez Z (r31:r30):
(z Atmel Studio)

Kod: Zaznacz cały

	ADMUX = 0;
  de:	ec e7       	ldi	r30, 0x7C	; 124
  e0:	f0 e0       	ldi	r31, 0x00	; 0
  e2:	10 82       	st	Z, r1
	ADMUX = 1;
  e4:	81 e0       	ldi	r24, 0x01	; 1
  e6:	80 83       	st	Z, r24
dlatego próżno szukać dostępu bezpośredniego (w powyższym Marlinie mogę zmienić wejścia od razu). A do tego program pisany w C i kompilowany optymalizacją co niestety w kodzie widać.

Jako że moja IDA nie wspiera tego sprzętu (niby mam kod wtyczki ale za cholerę nie mogę jej skompilować) to opieram się na tym co objdump wykrzaczył. I tu problem, bo choć na 100% któryś "st Z" musi za to odpowiadać to kompilator był na tyle mądry że operując na stałych nie zapisuje ich do rejestrów gdy te są OK, lub zamiast zapisu np oruje/anduje/ustawia bit żeby wartość dopasować. To normalne i dla uC nie ma znaczenia.

Wystarczy odrobina szczęścia i alkoholu ;p
Awatar użytkownika
dragonn
Zasłużony
Postów w temacie: 14
Posty: 6384
Rejestracja: 12 gru 2016, 21:50
Lokalizacja: Opole
Drukarka: LUME
x 1455

Re: Brak odczytu temepratury extrudera po awarii

Post autor: dragonn »

Tak ADC4 bo mam termoparę zamiast zwykłego termistora. Niestety dalej nie pomogę bo dekompilacja programów to jednak nie moja działka.
Awatar użytkownika
McKee
Zasłużony
Postów w temacie: 4
Posty: 2630
Rejestracja: 20 kwie 2016, 23:00
x 717

Re: Brak odczytu temepratury extrudera po awarii

Post autor: McKee »

sawko78 pisze:Otrzymałem odp że z gruntu nie wysyłają kodów źródłowych i mogą mi sprzedać nową płytę główną, oczywiście wysłałem linki od dragonna.
Jeżeli nie da się "po dobroci", to można siłą. Przydałby ci się jakiś prawnik. Jeżeli masz znajomego albo ochotę na sądzenie się (samodzielne wniesienie pozwu), to masz dużą szansę na uzyskanie kodów. W sądzie na pewno by przegrali, więc nie sądzę żeby nie doszło wcześniej do ugody - prawdopodobnie wystarczy postraszyć. Koszt pozwu nie jest duży (tylko się to powoli dzieje niestety) a po wygranej koszty sądowe są, zwracane (pozwana/przegrana firma pokrywa). Możesz też liczyć na szum medialny jeżeli trafisz do odpowiednich ludzi - może warto zainteresować kilka redakcji ;) (które wymienią przykładową firmę świadomie łamiącą prawo).
A przy okazji nieco informacji:
https://www.crn.pl/aktualnosci/kto-ma-prawo-do-open-source
dragonn
Motto na dziś: "How may I abuse you?"
Awatar użytkownika
dziobu
Zasłużony
Postów w temacie: 21
Posty: 8939
Rejestracja: 28 gru 2016, 16:38
Drukarka: ZMorph 2.0(S)
x 5869
Kontakt:

Re: Brak odczytu temepratury extrudera po awarii

Post autor: dziobu »

A to swoją drogą. Dla zasady.

Ale znalazłem ;)
Tylko że on do rejestru wpisuje 0 (PF0 to ADC0) więc nie mam pola do zmiany wartości rejestru i w hexedytorze piszę procedurę ;p Będzie czad jak to ruszy.
dragonn
Awatar użytkownika
dziobu
Zasłużony
Postów w temacie: 21
Posty: 8939
Rejestracja: 28 gru 2016, 16:38
Drukarka: ZMorph 2.0(S)
x 5869
Kontakt:

Re: Brak odczytu temepratury extrudera po awarii

Post autor: dziobu »

Dobra, no to jedziem.
Wrzuć tego HEXa. Wejście ekstrudera 1 podmienione na to z ekstrudera 2 - dopisałem procedurę na końcu bo inaczej się nie dało. Poza tym nic nie ruszałem ale sprawdź czy wszystko działa.

Kurde, odwykłem już od edytowania plików binarnych. Narzędzia jak widać, a chodzi tu o IDA, są do d*py :)
Załączniki
program_mod.rar
(47.41 KiB) Pobrany 154 razy
dragonn
sawko78
Konto z ograniczeniami
Postów w temacie: 31
Posty: 65
Rejestracja: 03 gru 2017, 21:22

Re: Brak odczytu temepratury extrudera po awarii

Post autor: sawko78 »

Od rana jak tylko zobaczyłem że się udało walczę z komunikacją . ISP mosi , miso wlutowane resztę znalazłem na płycie i klocek nie chce się komunikować. Szukam w google nowych pomysłów , extreme burner nie widzi, ISP prog nie widzi , MKAVR calculator tez nie widzi ????? Programowałem już jakieś arduino, atmegi 8 itp i było ok więc USB ASP raczej spoko mam 2 sztuki żaden nie widzi ? Będę walczył dalej jak coś ruszy od razu będę pisał.
ODPOWIEDZ

Wróć do „Firmware'y i hosty”