Dzięki Koledzy, w szczególności Blue_17! Gdzie jest przycisk 'POMÓGŁ'?:)
Widocznie mój avrdude był coś nie halo. Co do fuse bitów to ustawiłem hfuse=0xDF (bez BOD i watchdog nie always on), a lfuse=0xF7 - zewnętrzny kwarc, slow power up, bez CKOUT i bez dzielenie clk przez 8.
Działa. Do enkodera zrobiłem wzmacniacz na 4093 i śmiga również. Terminal działa.
Pytanie do samego terminala i strojenia: jak Wam działa wykres? Jest chyba trochę niedopracowany... Jak włączę analizę to wykres z czasem się zagęszcza i zaczyna być nieczytelny. Ci, którzy bawili się terminalem do strojenia UHU to wiedzą, że tam to ładnie działało. Tu jest niepotrzebnie zmieniana 'podstawa czasu' na wykresie. Poza tym trendy wychodzą łatwo poza zakres (w pionie)... utrudnia to tuning. Posiadacie opis do terminala? Na oryginalnej stronie Chana parametry mają inne numery i nie ma opisu jakie są zakresy poszczególnych parametrów.
Jak działa Torque Limit parametr #5? Chan napisał, że jest to zmienna 16bit bez znaku, czyli maks ponad 65000. Po co taka rozdzielczość? zresztą jak wpisałem większą wartość to wrażenie miałem, że silnik stracił moment... tak jakby się przepełnił licznik i wpisana została akurat mniejsza wartość niż przed tym.
jak działa EG compensation #6?
Znaleziono 4 wyniki
Wróć do „sterownik serva elm-chan”
- 11 mar 2012, 08:09
- Forum: Serwomotory / Serwonapędy / Napędy Serwokrokowe
- Temat: sterownik serva elm-chan
- Odpowiedzi: 156
- Odsłony: 56726
- 10 mar 2012, 10:47
- Forum: Serwomotory / Serwonapędy / Napędy Serwokrokowe
- Temat: sterownik serva elm-chan
- Odpowiedzi: 156
- Odsłony: 56726
teraz już się pogubiłem, bo kilka wersji próbowałem. Może tak, która działa? Jeszcze sprawa fuse bitów... Gdzie jest informacja na temat jak mają być ustawione? gdzieś tam widziałem, że hfuse ma być 0xC9, a lfuse=0x2E.
Jak popatrzę do datasheeta atmega88PA i odszyfruję te fusy to dla lfuse=0x2E=0010 1110 daje:
CKDIV8=0 to podział clocka przez 8,
CKOUT=0 to wystawienie clocka na zewnątrz na PB0 (po co?),
CKSEL3..1=111 to zewnętrzny rezonator w trybie low-power (mniej odporny na zakłócenia - jaki więc sens?),
SUT1&0=10 w połączeniu z CKSEL0=0 daje 'ceramic resonator+BOD' włączony+start-up time 1k CK.
Jaki sens używać trybu low power rezonatora zamiast full-swing? Jaki sens dawać możliwość wystawienia (bo chyba to czy zostanie wystawiony, czy nie ustawia się gdzieś w rejestrach - nie grzebałem tak głęboko w datasheet) sygnału clk na PB0, mimo, że na płytce ta nóżka jest nigdzie nie podłączona?
co do hfuse=0xC9=1100 1001 daje to:
RSTDISBL=1 - nóżka reset działa jako reset,
DWEN=1 - debudWIRE wyłączony,
SPIEN=0 - włączona możliwość programowania przez SPI,
WDTON=0 - zawsze włączony watchdog,
EESAVE=1 - EEPROM not reserved - ?,
BODLEVEL2..0=001 - BOD level ustawiony na 'reserved' czyli nijak. W ogóle po co BOD w tej aplikacji?
może w fusebitach jest probem?
napisałem w winavr prosty program co by dioda SERVO ERROR się po prostu zaświeciła, czyli program ma wystawić wysoki stan na nóżkę 25 (PC2):
makefile zrobiony, device mega88pa, crystal 16MHz, kompilacja przebiega pomyślnie - zero błędów.
wrzucam led.hex do avrdude. W avrdude nie mam w liście m88PA tylko m88, więc w avrdude.conf dodałem blok dla mega88PA poprzez skopiowanie bloku m88 i zmienienie nazwy na m88PA i zmienienie sygnatury procka na 0x1E930F.
teraz w avrdude ręcznie wpisuję w command line m88PA zamiast m88 (wiem, że mogłem użyć -F aby ominąć sprawdzanie sygnatury, ale już próbuję wszystkiego).
Command line wtedy wygląda tak:
i po wykonaniu programowania podsumowanie w avrdude wygląda tak:
ale dioda nie mruga... co robię źle?
o co kaman?
Jak popatrzę do datasheeta atmega88PA i odszyfruję te fusy to dla lfuse=0x2E=0010 1110 daje:
CKDIV8=0 to podział clocka przez 8,
CKOUT=0 to wystawienie clocka na zewnątrz na PB0 (po co?),
CKSEL3..1=111 to zewnętrzny rezonator w trybie low-power (mniej odporny na zakłócenia - jaki więc sens?),
SUT1&0=10 w połączeniu z CKSEL0=0 daje 'ceramic resonator+BOD' włączony+start-up time 1k CK.
Jaki sens używać trybu low power rezonatora zamiast full-swing? Jaki sens dawać możliwość wystawienia (bo chyba to czy zostanie wystawiony, czy nie ustawia się gdzieś w rejestrach - nie grzebałem tak głęboko w datasheet) sygnału clk na PB0, mimo, że na płytce ta nóżka jest nigdzie nie podłączona?
co do hfuse=0xC9=1100 1001 daje to:
RSTDISBL=1 - nóżka reset działa jako reset,
DWEN=1 - debudWIRE wyłączony,
SPIEN=0 - włączona możliwość programowania przez SPI,
WDTON=0 - zawsze włączony watchdog,
EESAVE=1 - EEPROM not reserved - ?,
BODLEVEL2..0=001 - BOD level ustawiony na 'reserved' czyli nijak. W ogóle po co BOD w tej aplikacji?
może w fusebitach jest probem?
napisałem w winavr prosty program co by dioda SERVO ERROR się po prostu zaświeciła, czyli program ma wystawić wysoki stan na nóżkę 25 (PC2):
Kod: Zaznacz cały
/* układ ATmega88PA 16MHz */
/* dioda LED na PC2*/
#define F_CPU 16000000L
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRC=0x0F; /*C0-c3 to wyjścia*/
PORTC=0xff;
_delay_ms(1);
while (1)
{
PORTC=0x0f;
_delay_ms(660);
PORTC=0x00;
_delay_ms(330);
}
}
wrzucam led.hex do avrdude. W avrdude nie mam w liście m88PA tylko m88, więc w avrdude.conf dodałem blok dla mega88PA poprzez skopiowanie bloku m88 i zmienienie nazwy na m88PA i zmienienie sygnatury procka na 0x1E930F.
teraz w avrdude ręcznie wpisuję w command line m88PA zamiast m88 (wiem, że mogłem użyć -F aby ominąć sprawdzanie sygnatury, ale już próbuję wszystkiego).
Command line wtedy wygląda tak:
Kod: Zaznacz cały
"D:\avrdudeok\avrdude.exe" -p m88pa -c usbasp -C "D:\avrdudeok\avrdude.conf" -P -U flash:w:"D:\winavr\8061\led.hex":a
Kod: Zaznacz cały
avrdude.exe: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude.exe: Device signature = 0x1e930f
avrdude.exe done. Thank you.
o co kaman?
- 10 mar 2012, 02:48
- Forum: Serwomotory / Serwonapędy / Napędy Serwokrokowe
- Temat: sterownik serva elm-chan
- Odpowiedzi: 156
- Odsłony: 56726
Czy jest w stanie któryś z Szanownych Kolegów skompilować mi program dla atmega88PA? Kupiłem atmegi i okazały się modelem 88PA-PU.
Próba zaprogramowania proca tym wsadem:
Servo_AtMega88_CompInt_Modif.hex
z użyciem avrdude i programatora usbasp nie powiodła się. W avrdude mam dostępny na liście tylko procek m88, nie mam m88P. Jak ustawiłem m88 to podczas sprawdzania sygnatury wywala błąd, że niezgodna (odczytuje sygnaturę 1e930f zamiast 1e930a). Jak ominę sprawdzanie sygnatury w avrdude (-F) i kliknę, żeby zaprogramować wyskakuje taki message:
-------------------------------------------------------------------
avrdude.exe: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude.exe: Device signature = 0x1e930f
avrdude.exe done. Thank you.
-------------------------------------------------------------------
no i nic nie zapisuje...
jakieś pomysły?
jestem na wyjeździe i nie mam opcji kupić atmega88.
Próba zaprogramowania proca tym wsadem:
Servo_AtMega88_CompInt_Modif.hex
z użyciem avrdude i programatora usbasp nie powiodła się. W avrdude mam dostępny na liście tylko procek m88, nie mam m88P. Jak ustawiłem m88 to podczas sprawdzania sygnatury wywala błąd, że niezgodna (odczytuje sygnaturę 1e930f zamiast 1e930a). Jak ominę sprawdzanie sygnatury w avrdude (-F) i kliknę, żeby zaprogramować wyskakuje taki message:
-------------------------------------------------------------------
avrdude.exe: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude.exe: Device signature = 0x1e930f
avrdude.exe done. Thank you.
-------------------------------------------------------------------
no i nic nie zapisuje...
jakieś pomysły?
jestem na wyjeździe i nie mam opcji kupić atmega88.
- 23 sty 2012, 23:24
- Forum: Serwomotory / Serwonapędy / Napędy Serwokrokowe
- Temat: sterownik serva elm-chan
- Odpowiedzi: 156
- Odsłony: 56726
Koledzy, jako dodatkowe zabezpieczenie tranzystorów mocy przed przepięciami z silnika serwo oprócz gasika RC polecane jest zastosowanie transila z serii 1.5KExxCE. Jakie napięcie tego transila dobrać? Czy ma ono być nieco większe od napięcia zasilania silnika czy nieco mniejsze od napięcia maks tranzystorów? W moimi 'elm chanie' mam silniki 48V i nie wiem jaki transil dobrać. W innym serwo driverze - UHU jak podłączyłem silnik na 60V to podczas wymuszania ręką zmiany położenia wału silnika gdy serwo pilnuje położenia napięcie na zaciskach silnika wg. multimetru to nawet 180V. Wiem, że multimetr mi pokauje głupoty w takich warunkach - jak to dokładnie wygląda sprawdzę niebawem oscyloskopem.
Czy transil równolegle z zaciskami silnika, w momencie jak zwiera przy przebiciu nie spowoduje uszkodzenia tranzystorów, które będą w danym momencie włączone? W końcu transil na chwilę zwiera...
Transil w obwodzie zasilacza TL783C w połączeniu z bezpiecznikiem rozumiem - jak się przyłoży większe napięcie niż TL może udźwignąć to transil je zewrze natychmiast i da to możliwość przepalenia się bezpiecznika.
Jak to jest jednak z transilem na silniku?
Czy transil równolegle z zaciskami silnika, w momencie jak zwiera przy przebiciu nie spowoduje uszkodzenia tranzystorów, które będą w danym momencie włączone? W końcu transil na chwilę zwiera...
Transil w obwodzie zasilacza TL783C w połączeniu z bezpiecznikiem rozumiem - jak się przyłoży większe napięcie niż TL może udźwignąć to transil je zewrze natychmiast i da to możliwość przepalenia się bezpiecznika.
Jak to jest jednak z transilem na silniku?