Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 29 mar 2024, o 12:24


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 6 kwi 2018, o 17:53 
Offline
Użytkownik

Dołączył(a): 03 sty 2013
Posty: 49
Pomógł: 0

Witam,

chciałem wgrać program do Atmega8A wykorzystując program mkBoot Loader, ale pojawił się problem, bo program zwraca komunikat "błędny odczyt z BLS" lub programowanie zatrzymuje się na 1%. Początkowo myślałem, że coś jest nie tak z konfiguracją procesora, ale nie. Okazało się, że ten problem występuje przy napięciu zasilania 3,3V, gdy zwiększę napięcie do 3,7V program wgrywa się poprawnie. Skąd bierze się ten problem, skoro Atmega8A startuje już od 2,7V? Korzystam z przejściówki USB <-> RS232 na układzie FTDI232RL. Na płytce mam dwa moduły zasilane napięciem 3,3V, więc podanie wyższego napięcia jest niemożliwe.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 kwi 2018, o 18:18 
Offline
Użytkownik

Dołączył(a): 25 lut 2015
Posty: 252
Lokalizacja: Lublin
Pomógł: 23

Obrazek

Zwróć proszę uwagę, przy jakiej częstotliwości traktowania kończy się użyteczny zakres pracy uC.
Wypadało by dodać jeszcze margines bezpieczeństwa.
3,3V to max 10MHz
A jakie masz Ty taktowanie?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 kwi 2018, o 18:24 
Offline
Użytkownik

Dołączył(a): 03 sty 2013
Posty: 49
Pomógł: 0

Mam ustawiony oscylator wewnętrzny 8MHz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 kwi 2018, o 18:39 
Offline
Użytkownik

Dołączył(a): 25 lut 2015
Posty: 252
Lokalizacja: Lublin
Pomógł: 23

To nie jest najlepsze rozwiązanie na komunikację UART.
Dostrajałeś przynajmniej częstotliwość przez osccal?
Z jaką prędkością wgrywasz?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 kwi 2018, o 19:04 
Offline
Użytkownik

Dołączył(a): 03 sty 2013
Posty: 49
Pomógł: 0

Prędkość mam ustawioną na 9600, próbowałem też na 4800 i jest ten sam problem. Nie wiem, o co chodzi z dostrajaniem częstotliwości.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 kwi 2018, o 19:32 
Offline
Użytkownik

Dołączył(a): 25 lut 2015
Posty: 252
Lokalizacja: Lublin
Pomógł: 23

Przy tak małych prędkościach powinno działać. Nie wiem co może być nie tak.
Może masz marne zasilanie, np. filtracja.
Kalibracja była w którymś z poradników Mirka o UART - zainstaluj sobie proszę Atmel AVPlayer.
Tutaj masz opis z analizatorem: https://youtu.be/0vUwe2QItuk
Z bootloaderem nie mam żadnych doświadczeń.
Korzystam z innych sposobów zdalnego programowania, więc nie będę się tutaj wymądrzał ;)

PS. W uzupełnieniu trzy zdania, co przyszło mi do głowy.
- Mam nadzieję, że uC podłączony zgodnie ze specyfikacją, bo nie dajesz schematu.
- Nic szkodliwego nie wisi na pinach RX/TX
- Reset podciągnięty profilaktycznie do VCC (w zasadzie zawiera się w pierwszym)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 kwi 2018, o 20:48 
Offline
Użytkownik

Dołączył(a): 03 sty 2013
Posty: 49
Pomógł: 0

Wszystko jest, tak jak powinno być, bo inaczej przy wyższym napięciu również by nie działało. Linie TX i RX mam przeznaczone tylko i wyłącznie do komunikacji. Zasilam z zasilacza laboratoryjnego. Atmega8 przeniosłem na osobną płytkę, na której jest tylko sam procesor, powtórzyłem próbę i również ten sam błąd. Poradnik ze skalowaniem jest bardzo przydatny, jutro sprawdzę jaką otrzymam częstotliwość przy zasilaniu 3,3V. Być może tu leży przyczyna tego problemu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 kwi 2018, o 20:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1020
Lokalizacja: Trójmiasto
Pomógł: 188

Kolego. Komunikacja UART potrzebuje stabilnego taktowania. Wewnętrzny generator RC jest bardzo podatny na zmiany napięcia i temperatury, więc prawdopodobnie przy zmniejszeniu zasilania poniżej 3,3V oscylator ma już taką odchyłkę że UART traci synchronizację.
Generelnie przy wykorzystywaniu komunikacji UART wysoce wskazane jest stosowanie rezonatorów kwarcowych (najlepiej UART friendly czyli np 11.0592 MHz) które mają bardzo dużą stałość częstotliwości drgań.
Oczywiście jak się uprzesz, to możesz zostawić ten wewnętrzny oscylator RC i go ewentualnie dokalibrować dla napięcia 3,3V ale pod warunkiem że układ na stałe będzie pracował w stabilnych warunkach napięciowych i temperaturowych (takich jakie panowały podczas kalibracji).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 kwi 2018, o 21:32 
Offline
Użytkownik

Dołączył(a): 03 sty 2013
Posty: 49
Pomógł: 0

W tym momencie muszę się uprzeć, bo mam już zmontowane te układy i innej opcji już nie ma. Sam jestem ciekaw, jak wypadną pomiary dla napięcia 3,3V. Urządzenie będzie pracowało w domu, więc wahania temperatury będą niewielkie.

Rozjazd częstotliwości przy zasilaniu 3,3V wynosił 0,8MHz. Wykonałem kalibrację bardzo dokładnie, ale to nie pomogło, jeszcze widocznie czegoś brakowało. Po dodaniu zewnętrznego oscylatora 8MHz wgrywanie softu przy napięciu 3,3V działa poprawnie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO