Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Ładowanie HEX pod Win 98 i Win 2000

SACZI
-
-
Posty:21
Rejestracja:21 mar 2004, o 18:51
Lokalizacja:Iwonicz Zdrój, woj podkarpackie
Kontaktowanie:
Ładowanie HEX pod Win 98 i Win 2000

Postautor: SACZI » 30 mar 2004, o 17:08

Zauważyłem dziwny problem, mianowicie jak ładuję HEXa do procka pod Windows 2k układ nie dział mi poprawnie. Na PC odbieram jakieś "chińskie" gryzmoły.
Pod Windows 98SE problem nie wystepuje, odbieram wszystko prawidłowo. Dodatkowo transmisja odbywa się "jakoś" szybciej.
Dodam, że ładowany jest ten sam plik HEX i takie same są ustawienia transmisji.

Drugie pytanie dotyczy maksymalnej prędkości RS232c udostepnianej pod wyzej wyienionymi systemami. Win 2000 oferuje maksymalnie 128 kb/s, W98 cos okolo 920 k/s. O co tutaj chodzi ??

Awatar użytkownika
gawel
-
-
Posty:683
Rejestracja:24 lis 2003, o 11:19
Lokalizacja:Białystok

Postautor: gawel » 31 mar 2004, o 08:06

Maksymalna prędkość RS232 w PC wynosi 115200 bps (jest to granica możliwości technicznych).

SACZI
-
-
Posty:21
Rejestracja:21 mar 2004, o 18:51
Lokalizacja:Iwonicz Zdrój, woj podkarpackie
Kontaktowanie:

Postautor: SACZI » 31 mar 2004, o 14:46

Zatem jak wytłumaczysz oferowane prędkości prze Windy?

Jurek Szczesiul
-
-
Posty:175
Rejestracja:10 paź 2003, o 20:44
Lokalizacja:Białystok
Kontaktowanie:

Postautor: Jurek Szczesiul » 31 mar 2004, o 14:53

Zatem jak wytłumaczysz oferowane prędkości prze Windy?
Sam system umie wiecej niż typowy układ hardwarowy portu. Jak wstawisz szybką kartę RS ( albo konwerter USB<>232 ) to wyciągniesz
920 k.

Pozdrowienia
Jurek Szczesiul

Awatar użytkownika
gawel
-
-
Posty:683
Rejestracja:24 lis 2003, o 11:19
Lokalizacja:Białystok

Postautor: gawel » 31 mar 2004, o 15:04

Można użyć nietypowych kart rozszerzeń dające nietypowe cechy.
W PC UARTY są budowane w oparciu o układy typu 16550 (wcześniej 16450), a one więcej nie wyciągają.

prompt
-
-
Posty:116
Rejestracja:30 sty 2004, o 23:25
Lokalizacja:Bydgoszcz

Postautor: prompt » 31 mar 2004, o 15:42

Nie porównuj obsługi portów w W2K i 98 bo to dwie różne sprawy. W2K robi to za pośrednictwem HAL-a, a co za tym idzie dostęp do portu jest tylko przez Win API. W Windowsie98 jest możliwy dostęp bezpośredni (tak jak w DOS-ie). W sytuacji, gdy konstrukcja programatora i algorytm programowania wymagają dokładnego doboru czasów, najlepiej jest korzystać z systemów umożliwiających pracę z portem w trybie direct.

Jurek Szczesiul
-
-
Posty:175
Rejestracja:10 paź 2003, o 20:44
Lokalizacja:Białystok
Kontaktowanie:

Postautor: Jurek Szczesiul » 31 mar 2004, o 16:40

Nie porównuj obsługi portów w W2K i 98 bo to dwie różne sprawy. W2K robi to za pośrednictwem HAL-a, a co za tym idzie dostęp do portu jest tylko przez Win API. W Windowsie98 jest możliwy dostęp bezpośredni (tak jak w DOS-ie). W sytuacji, gdy konstrukcja programatora i algorytm programowania wymagają dokładnego doboru czasów, najlepiej jest korzystać z systemów umożliwiających pracę z portem w trybie direct.
Tak jak w jednozadaniowym dosie to nie ma w żadnej windzie. Owszem, seria 9x umożliwia dostęp do rejestrów sprzętowych przez 'dosowe' wstawki asemblerowe co w programie wygląda tak samo - ale w rzeczywistości wstawki te są też przetwarzane przez kernel - z wyłącznym przejmowaniem kontroli nad sprzętem nie ma to nic wspólnego. Do precyzyjnego ( i powtarzalnego ) odmierzania czasów żaden system wielozadaniowy ( jednoprocesorowy ) raczej się nie nadaje - to sama w sobie sprzeczność. To zresztą forum elektroniczne - takie zadania realizujemy przez dodatkowy inteligentny hardware :-)) - tylko softwarowcy są skazani na system i porty PC :-)

Pozdrowienia
Jurek Szczesiul

prompt
-
-
Posty:116
Rejestracja:30 sty 2004, o 23:25
Lokalizacja:Bydgoszcz

Postautor: prompt » 31 mar 2004, o 17:18

Rzeczywiście, wielozadaniowość w Wingrozie, pomimo zapewnień fachowców z Redmont, zawsze była mrzonką. Znacznie lepiej radziła sobie z tym np. Amiga. W tej chwili, można dość dobrze obsłużyć porty spod Unixa (z Linuxem włącznie).
Podczas pracy z portami nie jest istotny fakt, czy ma się całkowitą kontrolę nad sprzętem, ważne, by kontrola ta była wystarczająca, a to daje możliwość bezpośredniego odwoływania się do portu (właściwego rejestru). W przypadku W2K mamy do dyspozycji tylko funkcje.
Często korzystam z programatora JDM (PIC16...). Efekt jest taki, że pod W98 programowanie zawsze kończy się sukcesem, pod W2K (i Win API), rzadko. W tym przypadku problem może wynikać z trudności w wygenerowaniu właściwego napięcia programującego, ale to też świadczy o kompletnym braku nadzoru nad czasem dostępu do portu.

Jurek Szczesiul
-
-
Posty:175
Rejestracja:10 paź 2003, o 20:44
Lokalizacja:Białystok
Kontaktowanie:

Postautor: Jurek Szczesiul » 31 mar 2004, o 18:09

W przypadku W2K mamy do dyspozycji tylko funkcje.
Często korzystam z programatora JDM (PIC16...). Efekt jest taki, że pod W98 programowanie zawsze kończy się sukcesem, pod W2K (i Win API), rzadko. W tym przypadku problem może wynikać z trudności w wygenerowaniu właściwego napięcia programującego, ale to też świadczy o kompletnym braku nadzoru nad czasem dostępu do portu.
Nie tylko API - są też sterowniki umożliwiające dostęp do przestrzeni I/O
pod w2k/XP ( np. free DriverLynx ).
IMHO dużo tez zależy od tolerancji protokołu. Z powodzeniem używałem ISP ( 8252,avr ) 'napedzanego' sterowanymi wyłącznie API pinami portu RS - zarówno pod 9x jak i XP. Ten sam układ pozwalał także na obsługę I2C ( master transmitter/receiver ). Ale fakt, że zależności czasowe nie są tu zbyt wyśrubowane - jak gdzieś wskoczy przełączanie wątku to nie rozwala od razu transmisji.

Pozdrowienia
JS

prompt
-
-
Posty:116
Rejestracja:30 sty 2004, o 23:25
Lokalizacja:Bydgoszcz

Postautor: prompt » 31 mar 2004, o 21:15

Akurat Lynx'a używałem do szybkiej transmisji przez port równoległy w trybie EPP .. :) Ale i tak te sterowniki nie wnoszą żadnej nowej jakości w porównaniu z API. Dla zrealizowania w miarę ciągłej łączności kompa z "resztą świata" w czasie rzeczywistym, jednak preferowałbym Linuxa.

Jurek Szczesiul
-
-
Posty:175
Rejestracja:10 paź 2003, o 20:44
Lokalizacja:Białystok
Kontaktowanie:

Postautor: Jurek Szczesiul » 31 mar 2004, o 21:32

Akurat Lynx'a używałem do szybkiej transmisji przez port równoległy w trybie EPP .. :) Ale i tak te sterowniki nie wnoszą żadnej nowej jakości w porównaniu z API. Dla zrealizowania w miarę ciągłej łączności kompa z "resztą świata" w czasie rzeczywistym, jednak preferowałbym Linuxa.
I tak masz więcej doświadczeń praktycznych - prawdę powiedziawszy Lynx'a nigdy do konkretnych rzeczy nie używałem. IMHO za wiele chyba nie ma co od takiej uniwersalki oczekiwać. Pewnie dałoby się i z windy dużo więcej wycisnąć pisząc dobre dedykowane drivery - ale to nie na moje amatorskie programowanie ;-)

Pozdrowienia Jurek S.

prompt
-
-
Posty:116
Rejestracja:30 sty 2004, o 23:25
Lokalizacja:Bydgoszcz

Postautor: prompt » 31 mar 2004, o 22:25

Hmmm ... własne sterowniki ? Aż takim pasjonatem nie jestem ... :wink:
Mimo to, w momencie dotarcia do kolejnej przeszkody systemowej, trochę żal czasów assemblera i ośmiobitowców ...
Chyba jednak zrobię sobie JDM2. Trochę wkurza konieczność przełączania na Win98, gdy trzeba zaprogramować kolejnego PIC-a ... :)

SACZI
-
-
Posty:21
Rejestracja:21 mar 2004, o 18:51
Lokalizacja:Iwonicz Zdrój, woj podkarpackie
Kontaktowanie:

Postautor: SACZI » 2 kwie 2004, o 02:43

Programuję aplikację ADuC812 przez RS232c. Do tego jest podpięty MAX232 wraz z 4 kondensatorami.

Co do prędkości, to poprzez karty bądź konwertery mozna uzyskać znacznie większe prędkości transmisji nie uzyskam, bo zostaję przy RS dostarczonym wraz z płytą główną.

Jak mam rozumieć zagadnienia Win32API oraz bezpośredniego dostępu do portów spod Windy 98?
Czy pisząc program na PC w oparciu o API (W2k) będe miał problemy z jego działaniem pod W98 ? Z tego co wiem W98 równiez posiada API i aplikacje napisane pod W2k działają pod W98.

Jurek Szczesiul
-
-
Posty:175
Rejestracja:10 paź 2003, o 20:44
Lokalizacja:Białystok
Kontaktowanie:

Postautor: Jurek Szczesiul » 2 kwie 2004, o 08:58

Programuję aplikację ADuC812 przez RS232c. Do tego jest podpięty MAX232 wraz z 4 kondensatorami.
Jak mam rozumieć zagadnienia Win32API oraz bezpośredniego dostępu do portów spod Windy 98?
Czy pisząc program na PC w oparciu o API (W2k) będe miał problemy z jego działaniem pod W98 ? Z tego co wiem W98 równiez posiada API i aplikacje napisane pod W2k działają pod W98.
Stosujesz tradycyjne rozwiązania komunikacji - pisz spokojnie używając API - podstawowe funkcje są takie same dla różnych Windowsów. Wywody o bezpośrednich dostępach dotyczyły możliwości ominięcia API w celu uzyskania większej, szybszej i bardziej precyzyjnej kontroli nad hardwarem portu.

Pozdrowienia Jurek S.

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 45 gości