Elektroda.pl
Elektroda.pl
X
OptexOptex
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[ATMEGA]Bascom . RS485 , LCD i zakłócenia

16 Kwi 2010 01:54 12677 65
  • Poziom 24  
    Mam taki dziwny problem związany z kasowaniem wyświetlanego obrazu na LCD.

    Wyjaśniam o co chodzi.
    Zatem mam w moim urządzeniu kostkę MAX485CN która działa poprawnie.Mam także LCD graficzny 240x128. Problem polega na tym że jeśli nie mam podpięte urządzenia do linii RS485 to na LCD wszystko wyświetla się poprawnie. Ale jeśli podepne urządzenie do linii A i B sieci RS485 to owszem mogę odbierać i nadawać w sieci poprawnie ale na lcd dzieją się cuda(kasuje mi to co aktualnie wyświetliłem.
    Dodam że kasowanie zawartości nie ma nic wspólnego z błędem w programie .Do tej pory działało to poprawnie ale teraz podpięte mam trzecie urządzenie do sieci i wystąpiły problemy. Są to wg. mnie jakieś zakłócenia ale czy jest to możliwe aby winna była kostka MAX458CN ?
    Może ktoś się już z czymś takim spotkał i wie jak to usunąć?
    Czy winą może być to że linia A i B w masterze nie jest wstępnie spolaryzowana rezystorami 510 Ohm? Czy brak elektrolita i ceramicznego kondensatora przy kostce MAX może to powodować?
    Nie mam wielkiego doświadczenia z RS485 ale z tym sobie nie daję rady.

    MAX w masterze jak i w sleave-ach jest podłączone tak:

    [ATMEGA]Bascom . RS485 , LCD i zakłócenia

    Czy schemat jest poprawny? Jak powinno wyglądać poprawne w 100% podłączenie?
  • OptexOptex
  • Pomocny post
    Poziom 18  
    Spróbuj dać dużego elektrolita oraz małego 100nF na piny zasilania LCD.
  • Pomocny post
    Poziom 17  
    Brak kondensatorów odsprzęgających może powodować cuda,
    Takie kondensatorki powinno się montować tak aby ich końce były jak najbliżej zasilania i to możliwie grubymi ścieżkami,
    Czasem zachodzi potrzeba stosowania cewek filtrujących przed tym kondensatorem,
    Układy cyfrowe pobierają prąd krótkimi impulsami w takt zegara,
    Więc jeśli np układ pobiera 50mA a jest to średni prąd poboru,
    To jeśli założymy że prąd jest pobierany przez 1% czasu to nam wyjdzie, że szpilka prądowa ma amplitudę 5A!!,
    Jak się uwzględni indukcyjności ścieżek to napięcie zasilające układu potrafi spadać do zera i powodować reset lub śmietnik w rejestrach,
    No i teraz jeśli twój układ działa choć napięcia zasilania sporo spadają i zaczynasz nadawać RS to przecież driver RS przy każdej zmianie stanu logicznego musi przeładować pojemność przewodów,
    A to kolejna szpilka prądowa,
    Jeśli wszystko to razem złożysz do kupy no to właśnie jest rezultat jaki jest,
    Wlutuj kondensatorki 100n przy zasilaniu wszystkiego co masz na płytce i sprawdź może pomoże,
  • Poziom 24  
    Może wyjaśnię do końca jak to wygląda. Otóż mój program co pewien czas(około 5 sekund) wysyła zapytanie do jednego urządzenia , potem odbiera odpowiedź i pora na wysłanie zapytania do drugiego urządzenia i znowu odbiera dane. I tak się dzieje non-stop. Problem z LCD mam w momencie kiedy nacisnę "przycisk" na dotykowym LCD i następuje ładowanie obrazka (innego poziomu menu) z karty SD.
    Po prostu albo załaduje się część obrazka albo pozostaje cały biały ekran i tylko reset przywraca wszystko do normy.

    W przerwaniu jednego z timerów zliczam sobie czas i po osiągnięciu wymaganego czasu ustawiam sobie flagę i po wykryciu jej w pętli głównej następuje ustawienie jednego pinu sterującego kierunkiem nadawania w kostce MAX485CN , i potem następuje proste użycie Print"xxxxx";chr(13);
  • Pomocny post
    Moderator Mikrokontrolery Projektowanie
    O co chcesz się założyć, że masz błąd w programie? Problem w tym, że żeby ci pomóc musiałbyś ten program pokazać. Wywalaj z programu wszystko co niepotrzebne, aż do momentu, kiedy problem zniknie. Wtedy dowiesz się co było nie tak, albo otrzymasz krótki programik demonstrujący problem, a wtedy ktoś będzie ci mógł pomóc.
    BTW, jeśli nie masz rezystorów polaryzujących linie A i B w spoczynku to zapewne odbiorniki odbierają śmieci, ramki, do których obsługi twój program nie jest dostosowany.
  • Pomocny post
    Poziom 42  
    Mnie także to wygląda tylko i wyłącznie na babola w programie. Chociaż nie zdziwiłbym się gdyby jak zwykle potwierdziła się zasada, że jak ktoś "oszczędza" na kondensatorach filtrujących przy każdym scalaku czyli na parach (100nF i kilkanaście uF), to potem zbiera żniwo w postaci dziwnego zachowywania się układu w najprzeróżniejszych sytuacjach. A jak do tego dochodzą jeszcze problemy z pisaniem kodu .... no! .... to pozostaje zabawa z szukaniem błędów na dłuuuugie zimowe wieczory.
  • OptexOptex
  • Poziom 24  
    Zaczynam rozbierać moduł i dolutuję kondensatory zarówno przy LCD jak i przy scalakach (których jest ..............) . Ale gwarantuję że wszystko chodzi poprawnie jak na lini RS są dwa urządzenia. Jak dodam kolejne to zaczynają się szopki. Ale po dolutowaniu opisze co i jak. Usunę z kodu także wszystko co dodałem ostatnio i zobaczymy. Co do przedstawienia kodu to ma on ponad 140k więc troszkę by się temat rozciągnął :D .
  • Pomocny post
    Poziom 33  
    Musisz mieć gdzieś błąd w programie. Jak sterujesz LCD'ka (w przerwaniu, w pętli)?
    Ja u siebie na biurku mam urządzenie na Atmedze 128, 7 urządzeń na RS485(odpytywane co 150ms) oraz dotykowy LCD graficzny 160x160px którego muszę odświeżać co 17ms (3kb danych), do tego tablice trezch rodzai czcionek .Całość zajmuje ~32kB i do 140kB to mam jeszcze daaaaaaaleko...co Ty u siebie takiego wielkiego zadeklarowałeś? :wink:. Nie powiem.....LCD mi "miga" delikatnie ale to tylko kwestia zbyt zawężonych zależności czasowych...a u Ciebie.....skoro odpytujesz urządzenia co 5sec to masz prawdopodobnie źle skonstruowany protokół i algorytm komunikacji.
  • Poziom 24  
    Mam bardzo rozbudowane graficznie menu.Steruje odtwarzaczem wav, czujnikami ruchu, temperatury , dymu , siecią rs485 , portem USB(przez FT232RL) , Com-em, LCD ,panelem dotykowymi , przekaźnikami , PCF-em i długo by tu jeszcze pisać ..

    A obrazki ładuję tak:

    Code:
    Graphic:
    


    Open Obrazek For Binary As #5

    'Cls Text                                                    'czyszczenie tekstu  na lcd

       Addr = 768
       lds R20, {Addr+0}
       lds R21, {Addr+1}
       Gosub _set_address

    For Ya = 0 To 128

       Get #5 , Pixinfo(1) , , 42
       For Xa = 1 To 40                                         '240/8 = 30

          Pixel_data = Pixinfo(xa) - 32

          lds R24, {Pixel_data}
          Gosub _gwrite_data

          ldi R24, &HC0
          Gosub _gwrite_cmd

       Next Xa

    Next Ya

    Close #5


    Return


    a odwołanie do procedury wyświetlania to po prostu:

    Code:
          Cls
    
          Obrazek = "tmp.avr"
          Gosub Graphic


    i wszystko wyświetla poprawnie do momentu kiedy podłączę nowe urządzenie na RS485 i nacisnę przycisk który spowoduje odwołanie do procedury wyświetlania. Wtedy ekran robi mi się cały biały. Może jakoś się resetuje?
  • Pomocny post
    Poziom 43  
    Wiesz co? To znowu może być ten błąd biblioteki AVDROS. Jakie masz zużycie RAMu?
  • Poziom 43  
    No tutaj:
    [ATMEGA]Bascom . RS485 , LCD i zakłócenia

    Dodano po 1 [minuty]:

    Ale tylko gdy jest dołączone? Czy dołączone i coś wysyła?
  • Poziom 24  
    Nawet jeśli jest tylko dołączone. Odpytywanie następuje co parę sekund a efekt bielenia ekranu mam za każdym razem kiedy nacisnę przycisk w celu załadowania nowego obrazka.

    A tu raport (wklejam na razie większość gdyż może Wam to coś ułatwi:


    Code:

    Report       : System_LCD_TOUCH PAD_rs485
    Date         : 04-17-2010
    Time         : 13:48:37

    Compiler     : BASCOM-AVR LIBRARY V 1.11.9.8
    Processor    : M2560
    SRAM         : 2000 hex
    EEPROM       : 1000 hex
    ROMSIZE      : 40000 hex

    ROMIMAGE     : 1E8EE hex  -> Will fit into ROM
    ROMIMAGE     :  125166 dec
    FLASH USED   :  47  %
    BAUD         : 19200 Baud
    XTAL         : 16000000 Hz
    BAUD error   : 0.16%

    Stack start  : 21FF hex
    Stack size   : 200 hex
    S-Stacksize  : 80 hex
    S-Stackstart : 2000 hex
    Framesize    : 80 hex
    Framestart   : 1F7F hex
    Space left   :  2695  dec

    LCD PORT     :
    LCD E        : PORTB.3
    LCD RS       : PORTB.2
    LCD mode     :  8  bit

    --------------------------------------------------------------------------------
    Variable                         Type            Address(hex)   Address(dec)
    --------------------------------------------------------------------------------
    UBRR3                            Word              0134          308
    OCR5C                            Word              012C          300
    OCR5B                            Word              012A          298
    OCR5A                            Word              0128          296
    ICR5                             Word              0126          294
    TCNT5                            Word              0124          292
    UBRR2                            Word              00D4          212
    UBRR1                            Word              00CC          204
    UBRR0                            Word              00C4          196
    UBRR                             Word              00C4          196
    OCR4C                            Word              00AC          172
    OCR4B                            Word              00AA          170
    OCR4A                            Word              00A8          168
    ICR4                             Word              00A6          166
    TCNT4                            Word              00A4          164
    OCR3C                            Word              009C          156
    OCR3B                            Word              009A          154
    OCR3A                            Word              0098          152
    ICR3                             Word              0096          150
    TCNT3                            Word              0094          148
    OCR1C                            Word              008C          140
    OCR1B                            Word              008A          138
    OCR1A                            Word              0088          136
    ICR1                             Word              0086          134
    TCNT1                            Word              0084          132
    ADC                              Word              0078          120
    SP                               Word              003D          61
    EEAR                             Word              0021          33
    COMPARE5C                        Word              012C          300
    COMPARE5B                        Word              012A          298
    COMPARE5A                        Word              0128          296
    CAPTURE5                         Word              0126          294
    TIMER5                           Word              0124          292
    COMPARE4C                        Word              00AC          172
    COMPARE4B                        Word              00AA          170
    COMPARE4A                        Word              00A8          168
    CAPTURE4                         Word              00A6          166
    TIMER4                           Word              00A4          164
    COMPARE3C                        Word              009C          156
    COMPARE3B                        Word              009A          154
    COMPARE3A                        Word              0098          152
    CAPTURE3                         Word              0096          150
    TIMER3                           Word              0094          148
    COMPARE1C                        Word              008C          140
    COMPARE1B                        Word              008A          138
    COMPARE1A                        Word              0088          136
    CAPTURE1                         Word              0086          134
    TIMER1                           Word              0084          132
    HWSTACK                          Word              003D          61
    SWSTACK                          Word              001C          28
    FRAME                            Word              0004          4
    COUNTER0                         Byte              0026          38
    TIMER0                           Byte              0026          38
    COUNTER2                         Byte              00B2          178
    TIMER2                           Byte              00B2          178
    COMPARE2                         Byte              0000          0
    ADCD                             Word              0078          120
    COUNTER1                         Word              0084          132
    TIMER1                           Word              0084          132
    CAPTURE1                         Word              0086          134
    CAPTURE3                         Word              0096          150
    CAPTURE4                         Word              00A6          166
    CAPTURE5                         Word              0126          294
    COMPARE1A                        Word              0088          136
    PWM1A                            Word              0088          136
    COMPARE1                         Word              0088          136
    PWM1B                            Word              008A          138
    COMPARE1B                        Word              008A          138
    PWM1C                            Word              008C          140
    COMPARE1C                        Word              008C          140
    COUNTER3                         Word              0094          148
    TIMER3                           Word              0094          148
    COUNTER4                         Word              00A4          164
    TIMER4                           Word              00A4          164
    COUNTER5                         Word              0124          292
    TIMER5                           Word              0124          292
    COMPARE3A                        Word              0098          152
    PWM3A                            Word              0098          152
    COMPARE3                         Word              0098          152
    PWM3B                            Word              009A          154
    COMPARE3B                        Word              009A          154
    PWM3C                            Word              009C          156
    COMPARE3C                        Word              009C          156
    COMPARE4A                        Word              00A8          168
    PWM4A                            Word              00A8          168
    PWM4B                            Word              00AA          170
    COMPARE4B                        Word              00AA          170
    PWM4C                            Word              00AC          172
    COMPARE4C                        Word              00AC          172
    COMPARE5A                        Word              0128          296
    PWM5A                            Word              0128          296
    PWM5B                            Word              012A          298
    COMPARE5B                        Word              012A          298
    PWM5C                            Word              012C          300
    COMPARE5C                        Word              012C          300
    PWM0A                            Byte              0027          39
    PWM0B                            Byte              0028          40
    PWM2A                            Byte              00B3          179
    PWM2B                            Byte              00B4          180
    ERR                              Bit               0006          6
    TIM                              Integer (5)       047E          1150
    X                                Integer           0488          1160
    Y                                Integer           048A          1162
    MINUTA                           Byte              048C          1164
    SEKUNDA                          Byte              048D          1165
    GODZINA                          Byte              048E          1166
    DZIEN                            Byte              048F          1167
    DZIENT                           Byte              0490          1168
    MIESIAC                          Byte              0491          1169
    WM                               Byte              0492          1170
    ROK                              Byte              0493          1171
    YD                               Byte              0494          1172
    SGODZINA                         Integer           0495          1173
    SSEKUNDA                         Integer           0497          1175
    SMINUTA                          Integer           0499          1177
    SDZIEN                           Integer           049B          1179
    SMIESIAC                         Integer           049D          1181
    SROK                             Integer           049F          1183
    TMIESIAC                         String            04A1          1185
    TDZIENT                          String            04AD          1197
    MINUTAX                          String            04BA          1210
    SEKUNDAX                         String            04BC          1212
    DFREE                            Long              04BE          1214
    DSIZE                            Long              04C2          1218
    SD                               Integer           04C6          1222
    PLIK                             String (31)       04C8          1224
    A                                Integer           065B          1627
    KAT                              String            065D          1629
    A2                               Byte              0672          1650
    ADRES                            Byte              0673          1651
    ROZKAZ                           Byte              0674          1652
    USB                              String            0675          1653
    RS1_FLAGA                        Integer           068A          1674
    RS2_FLAGA                        Integer           068C          1676
    RS3_FLAGA                        Integer           068E          1678
    RS4_FLAGA                        Integer           0690          1680
    RS1_ODEBRANE                     String            0692          1682
    RS2_ODEBRANE                     String            06E3          1763
    RS3_ODEBRANE                     String            06F8          1784
    RS4_ODEBRANE                     String            070D          1805
    COM3_I                           Integer (3)       07AE          1966
    COM3_S                           String (1)        07B4          1972
    DL_RS4                           Integer           07B8          1976
    O4                               String (25)       07BA          1978
    URT4_1                           String            0805          2053
    URT4_2                           Byte              0856          2134
    URT4_3                           Byte              0857          2135
    COM_SPEED                        String (4)        0858          2136
    UART_ID                          String            0878          2168
    UART_VISIBLE                     String            087F          2175
    1W_ID                            Byte (130)        0886          2182
    1W_I                             Byte              0908          2312
    1W_J                             Byte              0909          2313
    1W_L                             Byte              090A          2314
    1W_ILOSC                         Byte              090B          2315
    1W_1W_DANECOUNT                  Byte              090C          2316
    1W_NAZWA                         String (16)       090D          2317
    1W_READ                          Byte              0A5D          2653
    1W_I1                            Integer           0A5E          2654
    SS                               String            0A60          2656
    1W_DANE                          String (16)       0A67          2663
    1W_Z                             Integer (9)       0AD7          2775
    DS                               Integer (16)      0AE9          2793
    TPOWROT                          Integer           0B09          2825
    XA                               Byte              0B0B          2827
    YA                               Byte              0B0C          2828
    PIXINFO                          Byte (41)         0B0D          2829
    ADDR                             Word              0B36          2870
    PIXEL_DATA                       Byte              0B38          2872
    OBRAZEK                          String            0B39          2873
    TT                               String            0B46          2886
    TS                               String            0B48          2888
    TR                               Integer           0B71          2929
    TY                               String            0B73          2931
    KB                               Integer           0B9C          2972
    ZN                               Integer           0B9E          2974
    KOM                              String (2)        0BA0          2976
    KO                               Integer           0BF2          3058
    BKL                              Long              0BF4          3060
    BKL1                             Long              0BF8          3064
    BUFOR                            Byte              0BFC          3068
    BV                               Byte              0BFD          3069
    SV                               String            0BFE          3070
    UTWOR                            String            0C07          3079
    LEKTOR                           Integer (2)       0C0D          3085
    Z                                Integer (12)      0C11          3089
    T                                String (12)       0C29          3113
    U                                String (3)        0C41          3137
    SND                              String (3)        0C4A          3146
    RR                               Integer (4)       0C56          3158
    QW                               String (4)        0C5E          3166
    FFG                              Long              0C6A          3178
    BB                               Integer (4)       0C6E          3182
    JY                               Long (3)          0C76          3190
    TRX                              Integer (15)      0C82          3202
    FLAGA                            Integer (10)      0CA0          3232
    ANIM                             Integer (10)      0CB4          3252
    BUZER                            Integer           0CC8          3272
    WYGASZACZ                        Integer           0CCA          3274
    MY_ID                            String            0CCC          3276
    BATERIA                          Single            0CD3          3283
    WART_AC                          Word              0CD7          3287
    WART_NAP                         String            0CD9          3289
    CD                               String (12)       0CDD          3293
    CR                               String (12)       0CF5          3317
    CZ                               String (6)        0D0D          3341
    RS485_ODEBRANE                   String            0D19          3353
    VZ                               String            0D6A          3434
    SZ                               String            0D70          3440
    SL                               String            0D72          3442
    TZ                               String            0D74          3444
    NDYMU                            String (12)       0D7A          3450
    NRUCHU                           String (12)       0E76          3702
    NS                               String            0F72          3954
    AKUMULATOR_POZIOM                Single            0F78          3960
    AKUS                             Single            0F7C          3964
    VOLUME                           Integer           0F80          3968
    POMOC_I                          Integer (10)      0F82          3970
    POMOC_S                          String (5)        0F96          3990
    I                                Integer           0FCD          4045
    EEPROM_SROK                      EEPROM Integer    0000          0
    EEPROM_BKL                       EEPROM Long       0002          2
    EEPROM_1W_NAZWA                  EEPROM String (16)0006          6
    EEPROM_BUZER                     EEPROM Integer    0156          342
    EEPROM_WYGASZACZ                 EEPROM Integer    0158          344
    EEPROM_LEKTOR                    EEPROM Integer (2)015A          346
    EEPROM_VOLUME                    EEPROM Integer    015E          350
    EEPROM_NDYMU                     EEPROM String (12)0160          352
    EEPROM_NRUCHU                    EEPROM String (12)025C          604
    E_COM_SPEED                      EEPROM String (4) 0358          856
    EEPROM_MY_ID                     EEPROM String     0378          888
    BAT_ZN                           Integer           0FCF          4047
    FIUT                             Integer           0FD1          4049
    DET                              Integer (2)       0FD3          4051
    GSM_FLAGA                        Integer (3)       0FD7          4055
    GSM_OPERATOR                     String            0FDD          4061
    GSM_SYGNAL                       String            0FE8          4072
    GSM_OPERATE                      String            0FED          4077
    GLDRIVESECTORS                   Long              0FF8          4088
    GBDOSERROR                       Byte              0FFC          4092
    GBFILESYSTEM                     Byte              0FFD          4093
    GBFILESYSTEMSTATUS               Byte              0FFE          4094
    GLFATFIRSTSECTOR                 Long              0FFF          4095
    GBNUMBEROFFATS                   Byte              1003          4099
    GLSECTORSPERFAT                  Long              1004          4100
    GLROOTFIRSTSECTOR                Long              1008          4104
    GWROOTENTRIES                    Word              100C          4108
    GLDATAFIRSTSECTOR                Long              100E          4110
    GBSECTORSPERCLUSTER              Byte              1012          4114
    GLMAXCLUSTERNUMBER               Long              1013          4115
    GLLASTSEARCHEDCLUSTER            Long              1017          4119
    GLFS_TEMP1                       Long              101B          4123
    GLDIRFIRSTSECTORNUMBER           Long              101F          4127
    GWFREEDIRENTRY                   Word              1023          4131
    GLFREEDIRSECTORNUMBER            Long              1025          4133
    GSDIR0TEMPFILENAME               String            1029          4137
    GWDIR0ENTRY                      Word              1035          4149
    GLDIR0SECTORNUMBER               Long              1037          4151
    GSTEMPFILENAME                   String            103B          4155
    GWDIRENTRY                       Word              1047          4167
    GLDIRSECTORNUMBER                Long              1049          4169
    GBDIRBUFFERSTATUS                Byte              104D          4173
    GBDIRBUFFER                      Byte (512)        104E          4174
    ABFILEHANDLES                    Byte (538)        124E          4686
    LASTDOSMEM                       Byte              1468          5224
    GBDRIVEERROR                     Byte              1469          5225
    GBDRIVEERRORREG                  Byte              146A          5226
    GBDRIVESTATUSREG                 Byte              146B          5227
    GBDRIVEDEBUG                     Byte              146C          5228

  • Poziom 43  
    Masz jeszcze zapas RAMu. Ale to jeszcze o niczym nie świadczy bo AVRDOS to niewiadomo gdzie będzie śmiecił w RAMie.
    Jeżeli wystarczy podłączenie urządzenia to masz problem z masami albo zakłóceniami. A urządzenia masz połączone normalne "szeregowo"? To znaczy w topologii Daisy Chain?
  • Poziom 24  
    Sieć ma w tym momencie zaledwie 12 m a docelowo ma mieć około 110m.
    Wszystko podłączam w taki sposób:

    [ATMEGA]Bascom . RS485 , LCD i zakłócenia

    na końcu linii mam terminator 120 ohm.

    Problem powoduje nowe urządzenie jakie podłączam. Sprawdziłem za pomocą innego urządzenia i to nowe pracuje poprawnie tzn. odczytuje przychodzące zapytania i na nie odpowiada. Więc problemem nie jest to nowe urządzenie lecz moduł główny.

    Lutuję właśnie kondensatorki i po złożeniu dam znać czy zadziałało.
  • Pomocny post
    Poziom 43  
    Ok ale właśnie na tym Twoim schemacie połączenia nic nie widać. Jaka jest odległość od każdego transceivera do tego poziomego kabla?
    Co do urządzenia. Dalej nie wiadomo. Oczywiście urządzenie może i poprawnie odpowiada na komendy. Ale w pewnym sensie to ono może powodować błąd. Błąd jest w sterowniku głównym ale nie ujawni się on dopóki nie podłączysz tego urządzenia zewnętrznego. Czyli błąd nie jest w urządzeniu zewnętrznym ale koniec końców to podłączenie urządzenia zewnętrznego spowoduje błąd. No i chodzi mi o to czy sprawdziłeś czy błąd pojawia się już w momencie samego podłączenia tego urządzenia czy w momencie gdy to podłączone urządzenie zaczyna odpowiadać na komendy.
    Najprościej to wyjmij procesor z tego zewnętrznego urządzenia , wymuś transceiverowi tryb odbioru i podłącz to urządzenie. Dzieki temu uzyskasz połączenie elektryczne ale nie uzyskasz połączenia programowego.
    Jak dalej będzie się pierniczyło to znaczy że masz problem elektryczny, a jak nie to masz problem programowy.
  • Poziom 24  
    Długość od każdego urządzenia do kabla głównego to 2-3m. Błąd występuje po samym podłączeniu urządzenia. Ale jak złożę do kupy mój główny moduł to sprawdzę to nowe urządzenie z wyjętym prockiem. A na razie kończę lutować kondensatorki. Jestem aż mokry i na pół ślepy gdyż płytka wykonana jest w 5mils-ach :/, jedno szczęście że nie dałem położyć solder maski.
  • Poziom 42  
    Tak jak pisze atom1477, jeśli masz tak duże odległości urządzeń do magistrali to ty w zasadzie zrobiłeś topologię gwiazdy a nie magistrali, którą na obydwu końcach terminuje się dwoma rezystorami 120R. Powinno się pociągnąć jeden kabel od urządzenia do urządzenia a sam odczep jak najkrótszy nalepiej żeby był liczony w kilku , no kilkunastu cm .
  • Pomocny post
    Poziom 43  
    A jeszcze lepiej to łączyć kable we wtyczkach.
    Nie wiem jakie masz prędkości. Ale jeżeli duże to licz się z tym że masz odbicia i niezłe zniekształcenia sygnałów a więc i przekłamania przesyłanych danych.
    Jeżeli nie masz kontroli poprawności transmisji , a nie masz (wyszukiwania ramek i sprawdzania ich CRC) to program może bardzo łatwo pójść w maliny.
  • Poziom 24  
    Sieć jest jeszcze w powijakach. Mam zamiar zakupić dla celów Rs485 osobny kabel ekranowany (skrętka). Ale czy mógłbym nim puścić także zasilanie? Tzn . chcę zakupić 8 żyłową skrętkę z której dwie skręcone żyły były by dla celów RS485 a reszta do zasilania. Czy taki pomysł skończy się nerwami i posłaniem szpuli kabla do kosza?
    Co do transmisji to dane jak na razie są przesyłane i odbierane poprawnie, a prędkość jaką w tej chwili przyjęłem to 19200. Wiem że mogłem dać 9600 ale mam w module zasilacza kostkę która pracuje właśnie na 19200 a nie mam za bardzo możliwości aby to przeprogramować na 9600 (laptop w serwisie a kabel usb nie sięgnie )

    Dodano po 47 [minuty]:

    No i kaplica! Zmontowałem układ , usunąłem wszystkie zmiany w kodzie jakie ostatnio popełniłem i miałem zamiar wgrać to programem Khazama. Ale oczywiście otworzyłem okno fuse-bitów i kliknąłem write, oczywiście ustawione było protection mode 3 czyli zabezpieczyłem przed odczytem i wgrywaniem nowego kodu!!. I co teraz? próbowałem odblokować generatorkiem ale nie idzie.
  • Poziom 42  
    co teraz? skasować scalaka i wgrać wszystko od nowa co za problem? Lockibtów nie ustawia się raz na całe życie procka ;) Poza tym warto pomyśleć o "lepszym" programie do programowania fuse i lock -bitów dzięki któremu się nie wyłożysz tak łatwo na drugi raz ;)
  • Poziom 43  
    Zablokowałeś możliwość wgrywania wsadu ale nie możliwość skasowania fusebitów. Kasując fusebity skasujesz też program ale umożliwisz sobie ponowne zaprogramowanie procesora a przecież tylko o to Ci chodzi.
    Chyba że jakiś reengeneering własnego kodu planujesz ;)
  • Poziom 24  
    Mirek rozumiem to odnośnie programu :D .
    Problem właśnie z tym że nie mam połączenia z prockem.
    Patrzyłem na schematy programatora równoległego jeśli on może mi pomóc. Ale schematów jest pełno i każdy inny.Znacie jakiś prosty i sprawdzony schemat? Chyba że inaczej mogę obudzić procka? Najgorzej że jest wlutowany na pcb (tqfp100)
  • Poziom 43  
    Kurcza pewnie coś jeszcze przestwiłeś. A program chodzi?
  • Pomocny post
    Poziom 42  
    adambehnke --> a ty od razu o programatorze równoległym.

    1. jeśli zaprogramowałeś tylko ten LockBit to przecież ci podpowiadamy, że wystarczy skasować procka. Wiesz jak to się robi?

    2. Jeśli natomiast przez jeszcze większą nieuwagę źle zaprogramowałeś fusebity CKSEL to zamiast programatora równoległego szybciej sobie zrobisz podręczny albo oscylator RC albo zewn generator TTL podłączane do XTAL1.

    No chyba, że sobie takie "KUKU" zrobiłeś jak przestawienie FuseBitu RSTDISBL - no to wtedy trza kombinować albo programatorem równoległym albo z kupnem nowego procka a nie wspomnę już o dobrym programie do programwoania na przyszłość, na poważnie. Ta zakładka "Fusy uproszczone" jak się okazuje wcale się nie przydaje tylko początkującym ;) .... ja sam korzystam z niej najczęściej gdy na szybko coś muszę przestawić z taktowaniem a nie innymi fuskami żeby się właśnie nie walnąć. No ale to już wolna wola ;)
  • Poziom 24  
    No właśnie mam sobie zrobiony generatorek na atmega generujący sygnał na jednym z pinów. Ale to niestety nie działa. Program także się w procku nie wykonuje.
    Sęk w tym że tak na prawdę to nic nie ustawiałem w fuse-bitach tylko przez moją wielką durnotę i roztrzepanie jakoś otworzyłem na szybkiego okno z fusami i kliknąłem write. I nawet nie wiem co tam było ustawione.

    Kod w generatorku mam taki:

    Code:
    $regfile = "m16def.dat"
    

    $crystal = 4000000
    $hwstack = 32                                               ' default use 32 for the hardware stack
    $swstack = 32                                               ' default use 10 for the SW stack
    $framesize = 32                                             ' default use 40 for the frame space





    Dim A As Integer
    Config Porta.0 = Output


    Do


    Toggle Porta.0


    Loop
  • Poziom 42  
    Tyle że na XTAL1 można podawać albo generator TTL jak ty masz zrobione albo oscylator RC a to już co innego