Zobacz sobie pdf jakiegoś AVRa, który ma interfejs pamięci zewnętrznej (ATMega64,128 itd). Tam znajdziesz wykresy pokazujące zależności czasowe na tym interfejsie. Na ATMega8 łączysz wszystko identycznie, z tym, że zależności będziesz musiał wygenerować programowo, bo ten procesor nie ma interfejsu do pamięci.
dobra. obszedłem temat, uzywając do porównania funkcji strncmp i podając ilość porównywanych znakow. Czyli tak, jak Ci napisałem kilka postów wyżej ;) Chyba temat można już zamknąć? Pozdrawiam, Dr.Vee
Eee znów opacznie interpretujesz parametry... czy ma dla ciebie znaczenie czy temperatura min pracy układu jest -40stC czy 0 stC, przecież to sa dla ciebie zupełnie nieistotne parametry nie wiem dlaczego to tak cie zastanawia :) apropo prędkości to nic się nie zmienia napięcia nie podnosisz Atmega dziła dalej na 5 V lub jezeli chcesz wersję na 3,3 V...
Witam Siedzę sobie i walczę o uruchomienie zegara RTC PCF8563 z XMEGĄ 64A3. Pogooglalem trochę i napisałem kawałek softu do obsługi TWI. Nie wiem co jest z nim nie tak, bo dopiero przesiadam się z ATMEGA na ATXMEGA, a w ATMEGA obsługa TWI wyglądała nieco inaczej. Układ PCF 8563 z adresem 0xA0, zasilanie 3.3V, PullUpy 4k7 - wszystko zmontowane na płytce...
Witam. Dopiero zaczynam przygodę z mikrokontrolerami(konkretnie ATmega8), więc problemy na moim stopniu zaawansowania to pewnie normalka :) Problemem jest to, że ze zdefiniowanych portów(PB1, PB2 i wszystkie PD) działają tylko PB1 i 2. Na zdjęciach podpiety jest tylko PB2, ale to nie ma znaczenia. Poniżej zdjęcia mojej płytki stykowej i kod programu(w...
Witam, Bawię się w programowanie uC i wszystko szło dobrze póki nie wpadłem by przetestować jak działa procesor z innymi ustawieniami zegara. Mowa konkretnie o ATMega 8, fabrycznie taktowana wewnętrznym 1MHz. Chciałem zmienić na dalej wewnętrzny tylko 8 MHz (podobno jest niezbyt dokładny, ale nie potrzeba mi dokładności do testów). Otworzyłem więc datasheet'a...
No jak masz tyle danych w SRAM to nie dziw, że nie działa. ATmega8 ma tylko 1k pamięci SRAM. Proponuję przenieść je do FLASH. Poza tym w kodzie masz wewnątrz funkcji 'main' kod innych funkcji (IntToString, its). Kod tych funkcji musisz przenieść poza funkcję 'main'. To tak na początek :)
Aby zapisywać i odczytywać zmienne z wbudowanej pamięci EEPROM musisz zadeklarować jakąś zmienną w tej pamięci http://avr.elektroda.eu/node/3 W tej chwili zapisujesz i odczytujesz jakąś przypadkową zmienną w pamięci SRAM
Akurat w ATMega8 rejestr SP jest sprzętowo bezsensownie inicjalizowany na 0, więc istotnie należy go inicjalizować. W nowszych AVRach SP po resecie wskazuje na koniec SRAM, więc można sobie jego inicjalizację odpuścić.
Po kompilacji zajmuje 21% SRAM.
ATMega8 ma 1KB SRAM.
Problem w tym, ze zapewne tablica fontow siedzi we FLASH (chociaz z zalaczonego programu wcale to nie wynika). A skoro jest we FLASH to nie mozesz odwolywac sie do tych danych poprzez zwykla dereferencje wskaznika, bo AVRy maja architekture Harvardzka i rozlaczne przestrzenie adresowe. W efekcie do danych we FLASH musisz sie odwolywac poprzez specjalne...
Witam, chodzi mi o to że po pobraniu każdej danej ustawiałbym sobie uC w tryb idle/sleep (nie wiem jeszcze) a gdy w pamięci będę miał już wymagane 10 danych to budziłbym sobie ponownie układzik i wysyłał wszystko - dlatego nie wiem czy SRAM jest w jakiś sposób zachowany w tych trybach. Dodatkowo chciałem się dowiedzieć czy poprawnie umieszczam te dane...
Pierwsze 60 bajtów SRAM w ATmega8 to przestrzeń I/O i można ją też adresować za pomocą STS dodając 0x20... ;)
Nie? A czytałeś to co ci napisałem? Chyba nie. Chcesz powiedzieć, że zużyłeś cały 1kB SRAM w ATMega8? Jak rozumiem poprzez zadeklarowanie zmiennych globalnych/statycznych o mniej więcej takim rozmiarze?
Witam ponownie, dokonałem dzisiaj długich i żmudnych testów odnośnie prędkości i ilości wysyłanych danych pod kątem błędów transmisji. testy robiłem transmitując z procka do PC 800 bajtów z pamięci SRAM ATmega8 9600 - bez najmniejszych problemów 19200 - bez najmniejszych problemów 38400 - bez najmniejszych problemów 57600 - raz na kilka transmisji zgubiny...
Mape pamieci masz w datascheecie uzywanego przez ciebie ukladu. Poczatek SRAM zalezy od procesora, najczesciej zaczyna sie od adresu 0x60, natomiast rejestry sa mapowane pod adresy 0-0x1F. Przy czym piszac w C nie powinno cie to interesowac. Zauwaz, ze skoro masz zajete 92% SRAM to do dyspozycji zostaje ci zaledwie ok. 81 bajtow, niewiele biorac pod...
O pamięci SRAM. Np. Atmega8 ma jej aż* 1024B a więc na np. 128 zmiennych typu long int. * z Twojego punktu widzenia "aż" :D
No to ja wiem że nie zrobię dbrego oscyl. na Atmedze... Może jakiś oddzielny A/D ? i jak się stosuje ten SRAM ? ma ktoś jakieś rady ?
Ale te wszystkie funkcje dtostrf itd. korzystają z funkcji zmiennopozycyjnych. Stringi we FLASH nie zwiększą zajmowanego miejsca, gdyż już się tam znajdują, a niepotrzebnie są kopiowane do SRAM, gdzie zajmują cenne miejsce.
ok zrobiłem pomiar i obliczenia co 2 minuty bo co 1 min wywalało mi "out of SRAM memory" :) Bardzo dziekuje za pomoc - pozdrawiam!
Wybrać cokolwiek współczesnego, a nie drogi, mało wydajny i kłopotliwy w programowaniu zabytek. Patrz tutaj: http://www.elektroda.pl/rtvforum/viewtop... Mam wrażenie, że porównujesz 8- i 32-bitowce mając świeżą wiedzę o 32-bitowcach i informacje tak sprzed 10 lat o 8-bitowcach. Z argumentów, które podałeś w tamtym wątku na dzień dzisiejszy...
do wyświetlenia tekstu z pamięcie EEPROM wewnętrznej wystarczy przerobić procedure z lcd.lib, np. // write the string str located in SRAM to the LCD void lcd_puts(char *str) { char k; while (k=*str++) lcd_putchar(k); } na void lcd_puts_ee(char eeprom *str) { char k; while (k=*str++) lcd_putchar(k);...
Generalnie sie da i wcale nie zajmie całego czasu procesora około 40% z tym ze procedura obsługi napsiana w asemblerze. Najlepsze wyniki sterowania takich wyswietlaczy przy zastosowaniu Atmegi162 z zewnetrzną pamiecia SRAM
Mam male pytanie. Czy da sie w Atmega8 zaladowac podprogram z karty sd? "System" zapisany by byl w pamieci uC. Da się, ale z ograniczeniami. Twój "system" musiałby być po prostu bootloaderem, który odczytuje SD i ładuje zawarty tam program do pamięci FLASH, skąd mikrokontroler mógłby go wykonać. Takie podejście ma pewne wady: 1. Czas uploadowania programu...
NIE wolno robić czegoś takiego żeby zmienna co chwile była zapisywana do EEPROM-u dlatego że on ma określoną ilość zapisów minimum 100.000 / + . Ja bym si polecił jakiś SRam na i2C albo SPI z podtrzymaniem bateryjnym może być nawet zegar RTC PCF8583 . Co do karty i komunikacji z PC tu [url=http://www.dharmanitech.com/2009/01...
$regfile = "m8def.dat" $baud = 9600 $crystal = 1000000 Dim X As String * 160 At $300 'uzywa adresu 300 w SRAM Dim A(160) As Byte At $300 Overlay 'tablica 160 bajtow zapisana w tym samym miejscu Dim Z As Byte Print "podaj X" Input X For Z = 1 To 160 Print Chr(a(z)) Next Z 'lub bardziej przejzyscie For Z =...
W dodatku w można enrgooszczędnie oczekiwać na reset nie tracąc zawartości SRAM, czego nie można powiedzieć o włączeniu i wyłączeniu.
(at)BlueDraco Ee, jakieś mity powtarzasz. Dlaczego program w C++ miałby być dłuższy niż w C? Ja tam piszę w C++ i nie zauważyłem, żeby kod był mniej efektywny. Na AVR jedyny problem jaki jest z C++ to to, że avr-gcc umieszcza VTABLES w SRAM, co powoduje, że jeśli korzystamy intensywnie z metod wirtualnych to sporo SRAM marnuje się na kopie VTABLES.
Korzystam z ATMega8. Niestety nie mam pojęcia jak zrealizować dzielenie z resztą.
Trochę kiepsko bo żadnego z powyższych nie posiadam ;/ no cóż, poleży aż zdobędę trochę czasu na odratowanie. Programator HVPP mozna poskladac sobie na szybko z paru elementow i byle procka. Kiedys na szybko potrzebowalem i takie cudo wymacilem ;) Choc za zwyczaj pomaga generator bo po SPI o ile pamietam oficjalnie nie da sie wylaczyc SPI... choc mi...
Witam Gdzieś w EdW rocznik '96, '97 widziałem taki układ jak Cię interesuje, 8 kanałowy zrobiony on był na pamięciach SRAM 6116 (2kB) ale można większy użyć.
A w celu edukacyjnym żeby czegoś się nauczyć i dla własnej satysfakcji. Zresztą procesorki są, chęci są tylko potrzebuje trochę pomocy. Przeglądając różne wersje Arduino wyprowadzenia pinów są różne czyli opracowując swojego klona nie muszę się trzymać ściśle tego co jest w oryginale, poza portem zasilania. Podstawowe założenia: - Port micro usb. -...
atmega8 ma: 3 kanaly pwm 18 przerwan w tym 2 zewn 1 timer 16b 2 timery 8b rtc komparator analogowy sprzetowy modul mnozenia 8 kb flash 512b eeprom 1kb sram twi=i2c spi 8 przetwornikow a/c 10bitowych czy jeszcze jakies info ci jest potrzebne??
1024x1024B min256x256B Czyli inaczej pisząc jest to min 64 kB a max 1024kB = 1MB (słownie megabajt). To bardzo dużo. Powiem więcej- to za dużo jak na bezpośrednie adresowanie. Dla przykładu ATMEGA8 ma 1kB pamięci SRAM, gdybyś to nawet w całości wykorzystał na zmienne to i tak będzie nawet 1000 razy za mało... Takie ilości danych mozna obsługiwać, ale...
atmega8 tanie? Tanie, tanie. Jak na procek z 8kB FLASH i 1kB SRAM + dużo peryferii w cenie ok. 4zł to jest tani. Moim zdaniem atmega8 to za dużo jak na taki projekt, choć wtedy zawsze masz zapas pamięci FLASH. Jeśli atiny13 będzie zbyt ubogi w piny to lepiej kupić atmega8 za 4zł niż uboższy attiny2313 za 6zł. A tym że procek będzie pracować na ułamek...
ATmega48 ma o polowe mniejsza pamiec SRAM, FLASH i EEPROM, 48 obsluguje do 5 przerwan zewnetrznych a 8 do 2. ATmega8 ma max czestotliwosc 16MHz a ATmega48 do 20MHz, co jeszcze... ATmega48 obsluguje DebugWire co jest na prawde fajnym bajerem bo do programowania potrzebny ci jest tylko pin RESET ale tez taki programator kosztuje swoje;) okolo 1500zl.
do tego nada się jakikolwiek SRAM te układy są tanie i mają spore pojemności dla przykładu IS62LV256AL 256kb kosztuje ok 7zł a 23A640 64kb ok 4zł
Mam pytanie jak w asemblerze avr zadeklarowac w segmencie danych tablice slow, o wielkosci np. 5. Można jedynie zarezerwować stały dany obszar pamięci .dseg tBuffer: .byte 0x05 Powyższe rezerwuje 5 bajtów w SRAM pod etykietą tBuffer . Można używać ten obszar w róznych nie kolidujacych ze soba procedurach. A tak mozna się odwołać do 3 bajtu : sts...
dorzucam wspomniany schemat http://obrazki.elektroda.net/10_11659042... kolego mirekk36 miabym prośbe - mianowicie czy mogl bys dodac komentarze do przykladowej procedurki ktorą napisałes ? i jescze - czy dane o stanie poszczegolnych bitow nie mogą byc przepisywane z flasha do rejestrow, czy wpierw nalezy je umiescic w pamieci SRAM ? czy wszystkie...
Witam Jaką pamięć zewnętrzną zastosować dla mikrokontrolera (Atmega8 lub Atmega 644)? wymagania mam takie: - szybki zapis - 1 bajt co 10 us (100kHz) lub 1000 bajtów co 10 ms - pojemność minimum 16kB im więcej tym lepiej - rozsądna cena -pamięć może być ulotna co wybrac? -EEProm (chyba zbyt powolny) -FRam -flash -sd/mmc -zewnętrzny SRAM (jak sie podłącza...
Jeśli chodzi o niedostatek pamięci FLASH - to może Atmega168 - 16k FLASH, 1k SRAM, 512B EEPROM. Jest dostępna w "wąskim" DIP28, np. w TME.
Praktycznie każdy AVR się różni na tyle, że binarny wsad jakiegokolwiek bardziej skomplikowanego programu niż while(1) nie da się wgrać do innego procesora. Ale jeśli masz źródła to żaden problem, wystarczy przekompilować. Program nawet jeśli nie na rejestrach to wysypie się na inicjalizacji stosu - różne ilośći SRAM itd.
Jak w C albo Assemblerze [AVR Studio] zrobić, żeby we flashu znajdowaly się zmienne z zapisem np. napisów do LCD. Chodzi o to, że mam dużo napisów, informacji, ale potrzebuję też trochę RAM do obliczeń. Standardowe deklaracje umieszczają mi zmienne w pamięci SRAM, a chciałbym żeby "głupie" napisy znajdowały się we flash i stamtąd były pobierane w odpowiedniej...
Wystarczajaca ilosc SRAM ma juz ATMega16 (1kB), czyli jeden sektor + dodatki. Chyba, ze implementacja SD w Bascomie jest tak skopana, ze wymaga wiecej, wtedy ATMega32 (2kB) A moze zrezygnowac ze struktury FAT i pisac po sektorach, wtedy nie potrzebujesz bufora SRAM. Albo jeszcze inaczej - spreparowac karte SD z FAT i nagranym jednym ogromniastym plikiem...
RAMEND ustawiasz na koniec pamięci SRAM, bo stos jest realizowany z dekrementacją, a PAGESIZE jest chyba potrzebny do prawidłowego zaprogramowania układu i/lub BOOT-LOAD'era ... PAGESIZE znajdziesz w dokumentacji ATmega8 ;)
One mają trochę różnic. M.in. różnią się pamięcią Flash, EEPROM, SRAM czy ilością zewnętrznych przerwań. Szczegółów szukaj w dokumentacjach producenta. Raczej mało prawdopodobne że będziesz mógł bez przeszkód zamienić te dwa µC.
Zawartość wczytujesz rozkazem in r17,high(pwm) o ile jest to możliwe czyli adres jest odpowiednio nisko (chyba pierwsze 32 rejestry ale nie pamiętam dokładnie - sprawdź w datasheet). IN odnosi się stricte do obszaru I/O i adresowanie w ten sposób pamięci SRAM mija się z celem.
a) .def temp =R16 ;... .def timerH =R16 b) ;... reset: ;ldi temp,low(RAMEND) ;Initialize stackpointer ;out SPL,temp ;ldi temp,high(RAMEND) ; Commented out since 1200 does not hae SRAM ;out SPH,temp Tu widzę błędy.Znajdź je i popraw.
czyli wg Atmela ATmega8 standardowa taka jak np. ATMEGA8-16PI DIL28 ma parametry: Flash (Kbytes) 8 EEPROM (Kbytes) 0.5 SRAM (Bytes) 1024 Max I/O Pins 23 F.max (MHz) 16 Vcc (V) 2.7-5.5 czyli na 3,3V powinien ten mikrokontroler działać teraz pytanie co do kwarca - muszę poczytać jaki - pewnie 16 MHz musi to być rezonator kwarcowy specjalnie do tego mikrokontrolera...
Witam! Polecam ATmega8: Features: • High-performance, Low-power AVR® 8-bit Microcontroller • Advanced RISC Architecture – 130 Powerful Instructions – Most Single-clock Cycle Execution – 32 x 8 General Purpose Working Registers – Fully Static Operation – Up to 16 MIPS Throughput at 16 MHz – On-chip...
Dobra juz sobie poradziłem z tym wysyłaniem po uarcie i ładnie to smiga teraz mam problem jak gromadzic i odczytywac programy napisane dla urządzeń DMX. Chyba najlepiej mieć programy w Epromie jako tabela liczb hex następnie pobierać cześć tabeli wysyłać do SRAM i przypisywać do zmiennej jaka będzie wysyłana. Dobrze myślę czy ktoś ma inny pomysł?
To zaczekaj do niedzieli, gdy opublikuję taką płytkę dla ATmega8 (wraz z plikami do wydruku): http://obrazki.elektroda.pl/2277894400_1... a dzisiaj opublikowany będzie artykuł z jej schematem. Zawiera miejsce na: - Atmega8 + kwarc, - odbiornik podczerwieni np. pilota RC-5, - regulator LDO, - oraz miejsce na dodatkową pamięć EEPROM, SRAM...
bascom atmega8 srać backup srać kondensator srać
rejestrator restartuje wymiana grzałki mikrowłącznik naprawa
spawarka majster spawarka majster
Wężyk paliwowy w traktorze-kosiarce rider - diagnoza i naprawa Kod usterki P14147 w Peugeot 508 - diagnostyka i rozwiązania