• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
TellyMate nie działa
#1
Czołem,

jestem zupełnie pocztkujący jeśli chodzi o AVRy.

Próbowałem zrobić terminal PAL na układzie ATMega8A do mojego komputera ośmiobitowego z tego artykułu:
http://www.batsocks.co.uk/readme/art_SerialVideo_1.htm

Nie mam Arduino, więc zamiast użyć avrdude wypaliłem plik TellyMate_M8.hex używając TL866. Plik można znaleźć tu: http://www.batsocks.co.uk/downloads/code_tm_114.zip w folderze Firmware. Plik wypaliłem w Code Memory począwszy od adresu 0000. Nie użylem pliku ArduinoATmegaBOOT.hex, jako że nigdzie w dokumentacji nie jest wspomniane co z nim zrobić. Ustawiłem też Fuse Bits na FF:C9.

Mikrokontroler oscyluje z zewnętrznym kryształem (sonda pokazuje częstotliwość na zmianę 8 i 12MHz, tego bym się spodziewał próbkując sygnał 16MHz z częstotliwością 24MHz), ale poza tym nic się nie dzieje, w szczególności nie pojawiają się impulsy synchronizacji na pinie 15.

Czy ktoś się zna na tyle że mógłby doradzić, albo może wypróbować czy ten program działa?


Załączone pliki Miniatury
       
 
Odpowiedź
#2
Nie musisz mieć Arduino by korzystać z AVR DUDE, można mu wklepać polecenie z palca lub użyć nakładki oraz jakiegoś programatora, np. taniego USBASP. Używasz tego TL866, jak wrzuciłem w Google tę nieznaną mi nazwę, to wyskoczyło coś za 1200, a z opisu wnioskuję, że wgrałeś mu coś zupełnie inną metodą wprost do flash. Może się tak i da, ale nie znam takiej drogi.
Wgrywanie przez AVRDUDE sugerują też gotowe pliki bat w tym katalogu, by nie pisać poleceń z palca. Są do ustawienia fuse, wgrania flasz i jeden do obu.
Pewnie jak używasz takiego sprzętu to wiesz, że Atmega8 nie ma RS232 tylko UART TTL i tam brakuje kawałka schematu? O ile faktycznie z drugiej strony jest RS232.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#3
TL866 to jest taki oto popularny programator: https://www.gotronik.pl/tl866-c-1_68.html
Nie rozumiem gdzie tam brakuje kawałka schematu - przy programowaniu czy na schemacie TellyMate? Nie wiem jak wewnętrznie działa programator w przypadku AVRów (EEPROMy programuje "normalnie" czyli równolegle, ale AVRy może szeregowo?), natomiast schemat TellyMate jest kompletny - można dołożyć interfejs np. MAX232, ale ja planuję komunikacje na poziomach TTL.
 
Odpowiedź
#4
Ten program pierwsze co robi to ustawia tryby uśpienia, nie wiem jak dokładnie ma to działać, ale jeśli czeka na odpowiednie dane z UART by się uruchomić to nic nie zobaczysz, zmontowałem ten układ bez wysyłanych danych na UART i nic nie wyświetlał.
Wysłałem byle jakiś tekst na UART z prękością 9600 i też nic.
Układ pobiera 40uA prądu, co również sugeruje uśpienie.
Może trzeba ustawić jakieś piny opcji, jest ich 6, 3 są do UART, nie wiem o czego są 3 pozostałe.
Zmontowałem podobny układ na Arduino Nano, bo w sumie nigdy nie wyświetlałem nic z Arduino na TV, więc nie wiedziałem czy w ogóle mój TV LCD to jeszcze potrafi, ale tu obraz demo się pojawił normalnie.
Układ konwersji RS232 na UART jest pokazany w schemacie na PDF, na stronie WWW go nie ma.

OK, rozgryzłem to, zauważyłem w końcu to połączenie między RX a PB0, pewnie jest o budzenia, teraz działa. Tekst wysłany na UART, na początku wyświetlił krzaki, potem się chyba dopasował (bez zworek jest autobaud), wyświetlił wysłany tekst prawidłowo.
Własna kompilacja to będzie niezła rzeźba, wrzuciłem projekt do Eclipse, ale wywalił tyle błędów, bo pozmieniały się zasady pisania kodu, coś tam ze stałymi we flash, ma tu jakieś tablice wstawiane warunkowo, a kompilator tego nie kupuje w ogóle.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#5
Wielkie dzięki, jutro spróbuję. Nie wiedziałem że tam jest jakiś tryb uśpienia. Spodziewałem się że przynajmniej sygnał synchronizacji będzie generowany, nawet przy braku danych do wyświetlenia.

Nie mam zamiaru tego kompilować, rozumiem, że to jest projekt sprzed kilunastu lat i współczesny kompilator może tego nie łyknąć (sam próbowałem z AVR Studio, ale bez sukcesów). Będę tylko używał gotowego pliku hex.
 
Odpowiedź
#6
Możliwe, że jest do zdobycia informacja w czym to było robione, wystarczy zrobić jakiś wirtualny system by nie śmiecić, AVR Studio może być wystarczająco stare by to poszło, jego następca Atmel Studio już ma z 10 lat. Ale bardziej stawiam na WinAVR, a zajrzenie to makefile to potwierdza. Arduino też jest do pobrania w wersji poniżej 1.5cośtam, gdy nie trzeba było dawać const przed zmiennymi flash. Ale błędy są jeszcze inne, których w ogóle nie rozumiem, jak można w pliku c po prostu wstawić zawartość tablicy bez żadnych znaczników i jak program do kompilacji ma to łyknąć jako wstawkę do innego, ten ignorując. Widocznie winAVR pozwala na takie cuda.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#7
Układ działa, jeszcze raz wielkie dzięki!
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości