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

Zaprogramowanie pamięci ROM - 27C256

18 Kwi 2011 21:22 2093 17
  • Poziom 14  
    Witam

    Posiadam dosyć nietypowy problem, mianowicie. Na projekt z układów cyfrowych na studia muszę zrobić licznik rowerowy, moja koncepcja polega na zliczeniu czasu 1 obrotu koła, i podaniu binarnie tego czasu z licznika (po przepisaniu do rejestru po obrocie) na linie adresowe pamięci ROM 27C256. W pamięci natomiast zapisałbym na stałe wartość prędkości jaka odpowiada danemu obrotowi koła.

    I teraz moje pytanie: Czy istnieje możliwość otrzymania hexa w sposób czysto cyfrowy. Utworzyć tabelę z adresami od zera do max i wpisywania tam kolejno wartości jakie to miałby by pod danym adresem się znaleźć?

    obrazowo, chodzi o to aby wprowadzić dane:
    ADRES DANA
    ...0000 FFH
    ...0001 FEH
    ...0002 3CH
    ...0003 00H
    ...0004 15C
    ...itd

    a otrzymać normalnego HEXa którego wrzucę do programatora i to zaprogramuje.

    Dla jasności... do projektu nie mogę skorzystać z uP stąd takie kombinacje :)
  • Poziom 14  
    Chyba nikt mi nie pomoże...

    Ale napisze jeszcze że próbowałem programami typu hexeditor itd, ale już zauwazyłem że plik hex intela to zwyczajnie zapisany plik tekstowy znakami ASCII które sa interpretowane przez programator, a teg typu programy wchodzą w strukture hex samego pliku i interpretują ciągi typu 41 jako A itd. bardzo by mi pomógł taki właśnie program typu hexeditor ale dla plików intel Hex...
  • Poziom 14  
    WinHexem próbowałem, ale działa identycznie jak większość tego typu programów, czyli hexa analizuje jako txt i znaki kodu odczytuje jako ASCII. Chyba nie pozostanie mi nic innego jak zrobienie sobie ręcznie HEXa (bo programu w C nie chcę mi się pisać na cel 1go projektu).
  • Pomocny post
    Poziom 29  
    a jak z ustawianiem obwodu koła?
    sporo tego między 16" a 28"
    można manipulować częstotliwością generatora, albo poświęcić kilka starszych bitów adresu na wybór odpowiedniej tabeli
    ale sporo tego między 16" a 28"
    koło 16" przy prędkości 99 km/h wykonuje obrót w czasie 0.046 sek.
    koło 28", prędkość 1km/h, czas 8.424
    przy 4kHz, dla 16" popełni się błąd około 0,5km/h
    ale na 28" doliczymy do prawie 34 tysięcy
    trzeba więc zmniejszyć częstotliwość, a tabela zmieści się tylko jedna

    czy 8 bitów z wyjścia pamięci bezpośrednio steruje dwoma 7447?

    nie sądzę by program typu HexEdytor na coś się przydał
    jak wyobrażasz sobie wydziubanie takiej ilości cyferek?
    intelhexa można zrobić choćby Excelem
    ale każdy programator przyjmie plik binarny
    a taki można załatwić kilkoma linijkami w Pascalu czy C
  • Poziom 14  
    jako że chodzi o sam projekt z układów cyfrowych założyłem sobie dla uproszczenia jeden obwód dla koła 26' dajmy na to 2m. Dodatkowe założenie to to że licznik liczy od 2 km do 79,5 z dokładnością do 0,5 km/h. W takim przypadku na 8 bitach zaprogramuje w BCDwartości:
    3bity na dziesiętne wartości prędkości, 4 bity na jedności i jeden bit informujący czy jest 0,5 czy nie (tu podłączę po prostu 7segmentowiec z układem logicznym wyświetlającym 0 albo 0,5 w zależności od wartości tego bitu, pozwierane odpowiednio segmenty i 1 negator załatwi sprawę)

    własnie zająłem się tworzeniem w excelu danych, policzyłem sobie dane jakie trzeba wpisać w Roma. Dla zainteresowanych dorzucę schemat mojego projektu (na razie bardzo ideowy bo kilka rzeczy wymaga jeszcze przemyślenia).

    Dorzucam plik xls (zmieniłem rozszerzenie z xlsx na xls bo nie chciało przyjąć. jakby komuś excel nie chciał otworzyć to dodać literkę do rozszerzenia)
    gdyby ktoś pomógł z generowaniem hexa z tych danych to będe wdzięczny :)
    1 arkusz to policzenie wartości do wpisania
    2 arkusz to próba (jeszcze nieudolna) stworzenia hexa

    Jeśli chodzi o schemat, do przepisywania miedzy licznikami a epromem, oraz epromem a driverami zastosowałem rejestry które będą uaktywniane po załapaniu impulsu z czujnika (w odpowiedniej kolejności z użyciem uniwibratora lub 2 jeśli wyniknie taka konieczność)
  • Użytkownik usunął konto  
  • Poziom 14  
    Mam na myśli plik tekstowy z zapisanymi znakowo wartościami hexadecymalnymi do zaprogramowania w programatorze romu.
  • Pomocny post
    Użytkownik usunął konto  
  • Poziom 14  
    Szczerze powiem że nie jestem dobrze zorientowany w tym względzie, ale wnioskuje tak po analizie pliku hexów które ładowałem do uP. otwierajac hexa w notatniku widziałem zapisane normalnie wartości typu:

    :1000000012C019C018C017C016C015C014C013C044
    :1000100012C011C010C00FC00EC00DC00CC00BC06C
    :100020000AC009C008C011241FBECFE5D4E0DEBF5E
    :10003000CDBF08D0E1C0E4CFAA9883E08A95F1F75C
    :10004000AA9A08958FEF81BB21E027BB84BB88E388
    :1000500082BBAA9893E0892F8A95F1F7AA9A88E043
    :1000600082BBAA98892F8A95F1F7AA9A22BBAA98EF
    :10007000E4EFF1E03197F1F785B3846285BB86E068
    :0C01F0009095BC01CD010895F894FFCF5C
    :00000001FF

    i wydaje mi się że podobny plik muszę uzyskać aby zaprogramować ROM do projektu, a takowego nie mam jak wygenerować. Jeśli się mylę to prosze o wyprowadzenie mnie z błędu.

    Dodano po 15 [minuty]:

    Ja osobiście nie posiadam tego programatora, rozmawiałem z drem z uczelni, który powiedział że pomoże mi go zaprogramować, tylko muszę przygotować odpowiedniego HEXa takiego jak sie ładuje to ROMów czy uP. chcę to zrobić teraz kiedy mam troche przerwy na uczelni, aby po weekendzie majowym pójść spróbować zaprogramować tę pamięć.
  • Użytkownik usunął konto  
  • Poziom 14  
    OK, dziękuję:)

    Jeszcze podjąłem ostatnią walkę aby utworzyć sobie odpowiednią tabelę excelem. Jeśli tak mi to nie wyjdzie to poprzepisuje wartości do winhexa.
  • Pomocny post
    Użytkownik usunął konto  
  • Poziom 14  
    może gdybym był bardziej zaawansowany w asmie czy C to juz bym miał wszystko pozamiatane, na codzień nie programuje, proste aplikacje na AVRy pisze, i w C nawet operacje na plikach są dla mnie trudnością bo musiałbym sobie to przypominać jak to sie robiło na ppk 2 lata temu :) krócej sie wymęcze w excelu i notatniku, niż przypominając sobie jak to było ;)
  • Pomocny post
    Użytkownik usunął konto  
  • Poziom 14  
    zakładając że w C napisze program który mi zrobi hexa musze:
    utworzyć tabele gdzie sobie powyliczam w pętli wartosci prędkości względem odpowiedniego czasu;
    przekonwertować to na liczby hexadecymalne, a potem do pliku wpisywać :dane adresu i dormatu, dane do wpiswania i crc do którego musiałbym napisać doadtkowe linie :) Mówie, nie mam biegłości w programowaniu, dlatego dłużej bym sobie przypominał to niż byłoby to warte :) Podrzucam plik excela w którym zrobiłem sobie tabele do utworzenia hexa.


    Tabela z wartosciami do hexa jest w 3 arkuszu. ta pozwężana. Jeszcze mam do zrobienia CRC, i linijka zakonczenia ale wydaje mi się że wygląda to dobrze.
  • Pomocny post
    Użytkownik usunął konto  
  • Poziom 14  
    No tak ale już praktycznie skończyłem w excelu :) narazie mój hex wygląda tak(brakuje po 2 znaki CRC w kazdym wierszu):
    Code:

    :1000000000000000000000000000000000000000
    :1000100000000000000000000000000000000000
    :100020000000000000000000000000000000F1ED
    :10003000EAE7E4E1D2D0CDCBC9C6C4C2C0B2B0AE
    :10004000ADABA9A7A6A4A3A1A09391908F8E8C8B
    :100050008A898887868584838281807372717170
    :100060006F6E6D6D6C6B6B6A6969686767666565
    :1000700064646363626261616060535352525151
    :1000800050504F4F4F4E4E4D4D4D4C4C4B4B4B4A
    :100090004A4A4949494848484747474646464645
    :1000A00045454444444443434343424242424141
    :1000B00041414040404040333333333332323232
    :1000C00032313131313130303030302F2F2F2F2F
    :1000D0002F2E2E2E2E2E2E2D2D2D2D2D2D2D2C2C
    :1000E0002C2C2C2C2C2B2B2B2B2B2B2B2B2A2A2A
    :1000F0002A2A2A2A2A2929292929292929282828
    :1001000028282828282827272727272727272727
    :1001100026262626262626262626262525252525
    :1001200025252525252524242424242424242424
    :1001300024242423232323232323232323232323
    :1001400023222222222222222222222222222221
    :1001500021212121212121212121212121212121
    :1001600020202020202020202020202020202020
    :1001700020201313131313131313131313131313
    :1001800013131313131312121212121212121212
    :1001900012121212121212121212121211111111
    :1001A00011111111111111111111111111111111
    :1001B00011111111111010101010101010101010
    :1001C00010101010101010101010101010101010
    :1001D000100F0F0F0F0F0F0F0F0F0F0F0F0F0F0F
    :1001E0000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F
    :1001F0000F0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E
    :100200000E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E
    :100210000E0E0E0E0E0E0D0D0D0D0D0D0D0D0D0D
    :100220000D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D
    :100230000D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D
    :100240000D0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C
    :100250000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C
    :100260000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C
    :100270000C0C0C0B0B0B0B0B0B0B0B0B0B0B0B0B
    :100280000B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B
    :100290000B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B
    :1002A0000B0B0B0B0B0B0B0B0B0B0B0B0B0B0A0A
    :1002B0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
    :1002C0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
    :1002D0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
    :1002E0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
    :1002F0000A0A0A0A0A0A09090909090909090909
    :1003000009090909090909090909090909090909
    :1003100009090909090909090909090909090909
    :1003200009090909090909090909090909090909
    :1003300009090909090909090909090909090909
    :1003400009090909090909090909090909090909
    :1003500008080808080808080808080808080808
    :1003600008080808080808080808080808080808
    :1003700008080808080808080808080808080808
    :1003800008080808080808080808080808080808
    :1003900008080808080808080808080808080808
    :1003A00008080808080808080808080808080808
    :1003B00008080808080808080808080808080808
    :1003C00008070707070707070707070707070707
    :1003D00007070707070707070707070707070707
    :1003E00007070707070707070707070707070707
    :1003F00007070707070707070707070707070707
    :1004000007070707070707070707070707070707
    :1004100007070707070707070707070707070707
    :1004200007070707070707070707070707070707
    :1004300007070707070707070707070707070707
    :1004400007070707070707070707070707070707
    :1004500007070707060606060606060606060606
    :1004600006060606060606060606060606060606
    :1004700006060606060606060606060606060606
    :1004800006060606060606060606060606060606
    :1004900006060606060606060606060606060606
    :1004A00006060606060606060606060606060606
    :1004B00006060606060606060606060606060606
    :1004C00006060606060606060606060606060606
    :1004D00006060606060606060606060606060606
    :1004E00006060606060606060606060606060606
    :1004F00006060606060606060606060606060606
    :1005000006060606060606060606060606060606
    :1005100006060606060606060606060606060505
    :1005200005050505050505050505050505050505
    :1005300005050505050505050505050505050505
    :1005400005050505050505050505050505050505
    :1005500005050505050505050505050505050505
    :1005600005050505050505050505050505050505
    :1005700005050505050505050505050505050505
    :1005800005050505050505050505050505050505
    :1005900005050505050505050505050505050505
    :1005A00005050505050505050505050505050505
    :1005B00005050505050505050505050505050505
    :1005C00005050505050505050505050505050505
    :1005D00005050505050505050505050505050505
    :1005E00005050505050505050505050505050505
    :1005F00005050505050505050505050505050505
    :1006000005050505050505050505050505050505
    :1006100005050505050505050505050505050505
    :1006200005050505050505050505050505050505
    :1006300005050505050505050505050505050505
    :1006400005040404040404040404040404040404
    :1006500004040404040404040404040404040404
    :1006600004040404040404040404040404040404
    :1006700004040404040404040404040404040404
    :1006800004040404040404040404040404040404
    :1006900004040404040404040404040404040404
    :1006A00004040404040404040404040404040404
    :1006B00004040404040404040404040404040404
    :1006C00004040404040404040404040404040404
    :1006D00004040404040404040404040404040404
    :1006E00004040404040404040404040404040404
    :1006F00004040404040404040404040404040404
    :1007000004040404040404040404040404040404
    :1007100004040404040404040404040404040404
    :1007200004040404040404040404040404040404
    :1007300004040404040404040404040404040404
    :1007400004040404040404040404040404040404
    :1007500004040404040404040404040404040404
    :1007600004040404040404040404040404040404
    :1007700004040404040404040404040404040404
    :1007800004040404040404040404040404040404
    :1007900004040404040404040404040404040404
    :1007A00004040404040404040404040404040404
    :1007B00004040404040404040404040404040404
    :1007C00004040404040404040404040404040404
    :1007D00004040404040404040404040404040404
    :1007E00004040404040404040404040404040404
    :1007F00004040404040404040404040404040404
    :00000001FF


    Dodano po 14 [minuty]:

    Teraz mam problem z obliczaniem sumy kontrolnej. W linku z wikipedii który podał arnoldziq jest napisane że jest to suma wszystkich wU2 bajtów z wiersza po :

    Jak to obliczyć jeśli wynik przekroczy mi wielkość 1 bajtu?

    Dodano po 3 [godziny] 24 [minuty]:

    Dziękuję serdecznie koledze albertb :)

    WinHex sie przydał, właśnie tego ctrl + R mi brakowało, przerzuciłem wszystkie dane z excela do winhexa, pokonwertowałem, pokonwertowałem i w końcu się udało :) mam mojego wymarzonego hexa :)

    Narazie tematu jeszcze nie zamykam na wypadek późniejszych komplikacji

    Dodano po 4 [godziny] 45 [minuty]:

    Przeczytaj wiadomość powyżej :) tamten hex był bez sumy kontrolnej bo miałem problem z jej wygenerowaniem. Aktualnie mój plik hex po przerobieniu go w winhexie (sam obliczył sumy kontrolne) wygląda następująco:
    Code:
    :200000000000000000000000000000000000000000000000000000000000000000000000E0
    
    :200020000000000000000000000000000000F1EDEAE7E4E1D2D0CDCBC9C6C4C2C0B2B0AE2D
    :20004000ADABA9A7A6A4A3A1A09391908F8E8C8B8A898887868584838281807372717170F4
    :200060006F6E6D6D6C6B6B6A69696867676665656464636362626161606053535252515125
    :2000800050504F4F4F4E4E4D4D4D4C4C4B4B4B4A4A4A494949484848474747464646464514
    :2000A000454544444444434343434242424241414141404040404033333333333232323287
    :2000C00032313131313130303030302F2F2F2F2F2F2E2E2E2E2E2E2D2D2D2D2D2D2D2C2C48
    :2000E0002C2C2C2C2C2B2B2B2B2B2B2B2B2A2A2A2A2A2A2A2A2929292929292929282828BC
    :2001000028282828282827272727272727272727262626262626262626262625252525250E
    :20012000252525252525242424242424242424242424242323232323232323232323232346
    :2001400023222222222222222222222222222221212121212121212121212121212121216F
    :20016000202020202020202020202020202020202020131313131313131313131313131335
    :2001800013131313131312121212121212121212121212121212121212121212111111111D
    :2001A00011111111111111111111111111111111111111111110101010101010101010102A
    :2001C00010101010101010101010101010101010100F0F0F0F0F0F0F0F0F0F0F0F0F0F0F2E
    :2001E0000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E2E
    :200200000E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0D0D0D0D0D0D0D0D0D0D28
    :200220000D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D1E
    :200240000D0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C1D
    :200260000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0B0B0B0B0B0B0B0B0B0B0B0B0B0B
    :200280000B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0BFE
    :2002A0000B0B0B0B0B0B0B0B0B0B0B0B0B0B0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AF0
    :2002C0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0ADE
    :2002E0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A09090909090909090909C8
    :200300000909090909090909090909090909090909090909090909090909090909090909BD
    :2003200009090909090909090909090909090909090909090909090909090909090909099D
    :2003400009090909090909090909090909090909080808080808080808080808080808088D
    :2003600008080808080808080808080808080808080808080808080808080808080808087D
    :2003800008080808080808080808080808080808080808080808080808080808080808085D
    :2003A00008080808080808080808080808080808080808080808080808080808080808083D
    :2003C00008070707070707070707070707070707070707070707070707070707070707073C
    :2003E00007070707070707070707070707070707070707070707070707070707070707071D
    :200400000707070707070707070707070707070707070707070707070707070707070707FC
    :200420000707070707070707070707070707070707070707070707070707070707070707DC
    :200440000707070707070707070707070707070707070707060606060606060606060606C8
    :200460000606060606060606060606060606060606060606060606060606060606060606BC
    :2004800006060606060606060606060606060606060606060606060606060606060606069C
    :2004A00006060606060606060606060606060606060606060606060606060606060606067C
    :2004C00006060606060606060606060606060606060606060606060606060606060606065C
    :2004E00006060606060606060606060606060606060606060606060606060606060606063C
    :2005000006060606060606060606060606060606060606060606060606060606060605051D
    :2005200005050505050505050505050505050505050505050505050505050505050505051B
    :200540000505050505050505050505050505050505050505050505050505050505050505FB
    :200560000505050505050505050505050505050505050505050505050505050505050505DB
    :200580000505050505050505050505050505050505050505050505050505050505050505BB
    :2005A00005050505050505050505050505050505050505050505050505050505050505059B
    :2005C00005050505050505050505050505050505050505050505050505050505050505057B
    :2005E00005050505050505050505050505050505050505050505050505050505050505055B
    :2006000005050505050505050505050505050505050505050505050505050505050505053A
    :2006200005050505050505050505050505050505050505050505050505050505050505051A
    :20064000050404040404040404040404040404040404040404040404040404040404040419
    :200660000404040404040404040404040404040404040404040404040404040404040404FA
    :200680000404040404040404040404040404040404040404040404040404040404040404DA
    :2006A0000404040404040404040404040404040404040404040404040404040404040404BA
    :2006C00004040404040404040404040404040404040404040404040404040404040404049A
    :2006E00004040404040404040404040404040404040404040404040404040404040404047A
    :20070000040404040404040404040404040404040404040404040404040404040404040459
    :20072000040404040404040404040404040404040404040404040404040404040404040439
    :20074000040404040404040404040404040404040404040404040404040404040404040419
    :200760000404040404040404040404040404040404040404040404040404040404040404F9
    :200780000404040404040404040404040404040404040404040404040404040404040404D9
    :2007A0000404040404040404040404040404040404040404040404040404040404040404B9
    :2007C000040404040404040404040404040404040404040404040404040404040404040499
    :2007E0000404040404040404040404040404040404040404040000000000000000000000A5
    :00000001FF