Osobiście się nie bawiłem połączeniem AT45DB do avr-ka. Tu masz pliki za ATMEL-a - przeglądnij bo tam jest używany dataflash na SPI. Jest tam kod initializacyjny dla SPI może coś ci to pomoże. Przeglądnij jeszcze to: http://www.codeforge.com/read/19762/AT45...
kotlar: trochę więcej wiary w siebie, całkiem nieźle Ci idzie, a błędy przecież popełnia każdy, nie tłumacz się więc na każdym kroku. Konkrety: SSEL - to jest wejście , dzięki któremu procek, jako SPI SLAVE wie, że dane są dla niego, a nie kogo innego, więc należy go prawidłowo zainicjować (wybrać jako funkcję alternatywną pinu i odpowiednio sterować)...
Bez sensu z blokadami,zwarciami itp To nie "blokady' tylko nieudolne i złe ustawienia statusów SPI Post do skasowania
Witam, Mam problem i brak mi już pomysłów żeby go rozwiązać. Otóż, mam do Atmegi128 podłączoną pamięć DataFlash AT45DB041D, któa jest połączona w taki sposób (układ MMnet01): http://obrazki.elektroda.net/19_12767798... SPI inicjalizuję w taki sposób: void spi_init(void) { DDRB |= ( 1 << PB1 ); //SCK DDRB |= ( 1 <<...
https://fex.net/uk/s/xzycr7e Poprawiłem twoje. Nie zapomnij o rejestrze statusu Dodano po 5 Jeśli po włączeniu pierwsze cztery kilobajty znów będą FF, to status SPI 25Q40 nie jest ustawiony poprawnie.
Tyż prawda :please: Można podwoić prędkość sygnału SCKL bitem SPI2X w rejestrze SPSR tzn. rejestrze statusów SPI.
How about sending a single nop (0xff) instead of the whole status register read procedure?
tmf , jak zwykle Masz rację, za co Cię szanuję, lecz nie do końca ( Masz rację). bo niewykluczone, że w pewnych sytuacjach go nie kasujesz Nie trzeba kasować bitu 7 bitu rejestru STATUS - SPI Strona 233. Ja robię to następująco: [syntax=asm]Gotowosc_spi: Lds R18,SPID_STATUS Sbrs R18,7 Rjmp Gotowosc_spi [/syntax] Pozdrawiam
LTC2442, obojetnie co mu wysle, zawsze bedzie robil przetwarzanie i czy 0000 wysle czy cos innego to jedynie parametry zmienie. Komenda sterujaca ma niecale 16b, reszta idzie jako zera by wyzwolic zegar dla spi. Jak pisalem na oscyloskopie mam ciagle 32b zegara i danych. To mikroprocesor nie odbiera tego drugiego slowa (ustawia bit OVR w rejestrze statusu...
Klucz wyciągnięty problem mam natomiast z odblokowaniem Flasha, wedlug poradnika przeciolem sciezke i rezystorem 10 Ohm do masy tylko ze nic sie nie dzialo wiec odlaczylem naped i nagle wskoczyl komunikat ze odblokowano teraz niby w Jungle Flasher pokazuje ze mam status 0x00 , ale jak wezme ctrl shift f11 to pokazuje status SPI 0x80, nie moge zablokowac...
Nigdy jeszcze nie korzystałem z karty SD w żadnym projekcie i bibliotek HAL. Ostatnio zaszła taka potrzeba, skonfigurowałem w CubeMX SPI w następujący sposób( SPI_FullDuplex, SPI_Mode_Master, SPI_8b, SPI_CPOL_High, SPI_CPHA_2Edge, SPI_NSS_Soft, SPI_FirtstBit_MSB), dodałem Fatfs w CubeMX. Mam podłączoną kartę 2GB, SD(!SDHC) za pomocą adaptera z allegro...
Mplab zinterpretował C jako adres zerowy, jedyna mu znana nazwa C, to bit carry w statusie, jak zajrzysz to pliku p16f877a.inc to wszystko stanie się jasne.
Dzięki, poradziłem sobie sam.
Owszem jeśli chcesz mieć więcej enkoderów to bardziej opłacalne będzie SPI. Wtedy FPGA może obsługiwać wszystkie enkodery i przyciski. Można by tak jak mówisz wyprowadzić linię IRQ a statusy przycisków/enkoderów wyprowadzić po SPI jako bity. [syntax=c]//____________________________... //| 0 | 1 | 2 | 3...
cześć napisze co wiem na ten temat a jest to wiedza czysto teoretyczna:) wiec: rejestr S0SPSR jest rejestrem tylko do odczytu i zawiera informacje na temat statusu kontrolera SPI. wydaje mi się ze instrukcja while(S0SPSR & 0x80); jest bledną a prawidłowo powinna wyglądać tak: while(S0SPSR & 0x10); gdyż wtedy sprawdzana jest flaga BSY której ustawienie...
Zastanów się jak działa ten program. Na początku status==0, więc to co masz po if nigdy się nie wykona. Dlaczego? Bo z logicznej analizy tego kodu wynika, że status zawsze będzie równy zero! W efekcie optymalizator wywala całą tą sekwencję. Kompilator nic nie wie o tym, że status zmieniasz w przerwaniu, bo mu o tym nie powiedziałeś. Magiczne zaklęcie:...
Zaraz obejrzę RX i TX. A, takie pytanie. Masz fotkę tych modułów? Może to wcale nie są NRFy ? Coś takiego raczej. Ja używam tylko automatycznej długości pakietu więc mogą być błędy. [syntax=c]void Receive_Packet(void) { UINT8 len=1, fifo_sta, sta; sta=SPI_Read_Reg(STATUS);//fifo if( (STATUS_RX_DR & sta)== 0x40) { do { SPI_Read_Buf(RD_RX_PLOAD,rx_buf,len);//....
Nie zapomnij o rejestrze statusu. Ponieważ pierwsze 4 kbt znów staną się FF
Witam.. Mam problem z uruchomieniem komunikacji SPI w trybie Master. Niby nic, a jednak. uC skonfigurowałem w następujący sposób: #include <p18f4620.inc> ;***************************************... ;Konfiguracja sterownika CONFIG OSC = HSPLL ;REZONATOR KWARCOWY X4 CONFIG MCLRE = ON ;ZALACZONY PIN MCLRE CONFIG LVP = OFF ;WYLACZONY LOW VOLTAGE CONFIG...
Na moje oko niczego tu nie brakuje... A jesteś pewien, że to przerwanie nie jest wykonywane choćby 1 raz na początku? Spróbuj skompilować program z biblioteką, którą załączyłem: #include "interrupt_utils.h" zmieniając nieco procedurę przerwania: void NACKEDFUNC int_TXEMPTY(void) { volatile int isr; ISR_ENTRY(); isr = BASE_SPI->SPI_SR;...
Zaprogramowałem nową pamięć SPI IC1604 25Q40 plikiem "відновлена.bin", z ustawieniem statusów: StatusReg 1 88 StatusReg 2 42
Dzięki za kod, ten i mój działa identycznie. Status zawsze 0. Oba programy przetestowałem w prosty sposób. Odpiąłem moduł i przez rezystor (do VCC) podpinałem rezystor do wejścia SPI. Wtedy odczytywany status to same 111 czyli OK. Jak odpinałem to same 0. Mój program jak i Twój. Więc wydaje mi się że że soft jest OK. Tylko czemu to nie działa? :/
Witam! Mam pytanie: czy udało się dokończyć projekt? Mam problem właśnie z tym scalakiem, mianowicie przy obciążeniu żarówką 25W (prąd rzędu 0,1A) i przy 2000 cykli przy kalibracji otrzymuję zliczone aż! 130000 jednostek w LAENERGY. Co w stosunku do przykładu zawartego w dokumentacji tego scalaka jest liczbą olbrzymią i praktycznie nie da się policzyć...
Swego czasu walczyłem z SPI w STM32F051 i bardzo się przejechałem na fladze RXNE. Moim zdaniem albo mam coś nie tak z moim mikroprockiem albo ta flaga jest pomyłką ST. Może spróbuj czytać SPI tak: [syntax=c]while (!(SPI1->SR & SPI_SR_TXE)); SPI1->DR = word; while (!(SPI1->SR & SPI_SR_TXE)); status = SPI1->DR;[/syntax]
Wybacz, ale z filmu nie bardzo widzę o co Ci chodzi. Wygląda jakbyś dodawał jedną linie i to psuje wyświetlanie. Jak już chcesz pokazywać na filmie, to odpal na kompie nagrywanie ekranu, bo tak nic się nie da przeczytać. Hmm tak sobie drugi raz popatrzyłem, czy ty chcesz przejść z programowego SPI na sprzętowe? Bo to, co działa, to jest ustawianie dwóch...
Witam, od kilku dni walcze z modulem nrf24 do ktorego chce sam napisac biblioteke (uzywam atmega328P) Jestem na etapie odczytywania wartosci wpisanej do danego rejestru. Ustawianie bitow w rejestrach dziala dobrze, sprawdzam to za pomoca amperomierza (przy ustawieniu odpowiednich wartosci w rejestrze CONFIG zmienia sie odpowiednio prad zgodnie wartosciami...
No tak.... Zasugerowałem się pierwszym postem piotrva i nawet nie patrzyłem na program. Co robisz w programie po ustawieniu zegara i włączeniu SPI? Nic nie wysyłasz, odczytujesz status SPI i migasz diodą. A czy gdziekolwiek kasujesz flagę w rejestrze statusowym? Nie. Flagę możesz skasować na 2 sposoby: albo zezwalając na przerwanie w momencie rozpoczęcia...
załączyłem cały projekt, przepraszam że nie od razu jest sporo komentarzy, więc nie powinno być problemu ze zrozumieniem moich intencji Załączaj nie cały projekt tylko wszystkie piliki .h .c. skrypt linkera i makefile a reszta to zbędny balast. Po drugie jak wysyłasz coś w oczekiwaniu na pomoc to usuń punkty, nikt nie bedzie dawał ci punktów za to...
Ostatnia rzecz jaka przychodzi mi do głowy, to zabezpieczenie pamięci przed zapisem. Do odbezpieczenia może być konieczne ustawienie pinu WP w stan wysoki, po czym zapisanie do rejestru statusu (instrukcja WRSR) wartości 0x00 (cała pamięć odbezpieczona, brak zabezpieczenia rejestru statusu pinem WP) [zapis musi być poprzedzony przez WREN]. Innych firmwareowych...
Moduł WB3S (...) Sflashowałem wersję QIO oprogramowania układowego WB3S wymaga wersji UA, QIO jest dla modułów opartych na BK7231N, a nie T. Wreszcie rozwiązałem problem. Prawdopodobnie mój bootloader był uszkodzony i znalazłem rozwiązanie, aby przepisać go na BK7231T Prawidłowym sposobem jest przepisanie firmware QIO (bootloader + dane użytkownika)...
O to moje dywagacje teoretyczne . http://obrazki.elektroda.pl/3503754300_1... Taktujemy CPLD na 100 MHz. Pamięć o dostępie mniejszym niż 10 ns. W jednym cyklu następuje odczyta i później zatrzask, dostajemy 3 cykle na różne działania w tle. Zapis i odczyt można zrobić w dwóch cyklach. Prosty rejestr po SPI + FSM do ładowania adresu i...
działa i nie działa: avr-dude: AVR device initialized and ready to accept instructions Reading | ########################################... | 100% 0.00s avr-dude: Device signature = 0x1e9101 avr-dude: Expected signature for ATMEGA8 is 1E 93 07 avr-dude: reading signature memory: Reading | ########################################...
Wysyłam komendę CMD0 (GO_IDLE_STATE) do karty microSD 1 GB (przez adapter SD) i na oscyloskopie obserwuję taką odpowiedź: http://obrazki.elektroda.pl/1202815100_1... Odpowiedzią na komendę CMD0 (GO_IDLE_STATE) jest odpowiedź typu R1 - czyli jedno bajtowa z logicznym "0" na pozycji bitu najstarszego LSb. Z przebiegu widocznego na zdjęciu...
Witam ponownie, problem powrócił i postanowiłem spróbować napisać taki kod. Czy mógłby mi ktoś powiedzieć na podstawie tego co stworzyłem do tej pory czy idea tego jest dobra. Podstawą na której się opieram jest wypowiedź Pana tmf: "Możliwe. Dlatego trzeba to max uprościć. Z priorytetów bym zrezygnował bo przy szybkości SPI raczej są niepotrzebne. Transakcja...
Wbrew powszechnej opinii, funkcje obsługujące transfer po SPI mogą być dedykowane do nadawania i odbioru, szczególnie przy wysyłaniu pakietów. Przykład 1: Wysyłanie pakietu do modułu radiowego: [syntax=c]void radioBufferWrite(uint8_t reg, uint8_t nData, uint8_t* pData) { volatile uint8_t bDummy; // NCS activate RADIO_NCS_GPIO->BRR = RADIO_NCS_bm; //...
Ja na Twoim miejscu najpierw sprawdził bym komunikacje po SPI. Odczytaj status (opcode = 57H) i sprawdź czy odpowie prawidłowo: - bity 2,3,4,5 = 1 1 0 1 Coś mi się wydaje, że masz ustawiony tryb 0 SPI (CPOL = 0 i CPHA = 0) i dobierasz do niego błędne opcody z "SCK Mode" dla odczytu. Czyli: #define BUFFER_1_READ 0xD4 a dla statusu 0xD7 Daj znać czy dałeś...
Offset jest w rejestrze status (rozkaz 0x0), 11-15 bit
Witam, Mam problem z obsługą SPI pod Xmega. Chcę tym sterować układ MCP4922. Program zatrzymuje mi się na oczekiwaniu na zwolnienie flagi. Taki mam kod: [syntax=c] uint8_t d; int main(void) { SPIE.CTRL |= SPI_ENABLE_bm | SPI_MASTER_bm | SPI_MODE_0_gc | SPI_PRESCALER_DIV128_gc ; SPIE.INTCTRL = 0x03; PMIC.CTRL = 0x04; sei(); while(1) { d++; if(d>4095)...
Mam dziwny problem a mianowicie jeśli zrobię coś takiego: [syntax=c]while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);[/syntax] To wszystko działa pięknie, nic się nie sypie. Ale gdy zamienię to na [syntax=c]while ((SPI1->SR & SPI_I2S_FLAG_RXNE) == RESET);[/syntax] To nie jestem w stanie odczytać ani jednego pliku. O co w tym chodzi?...
1. Nie prościej wpisy do jednego rejestru zgrupować w jedno polecenie ? 2. Wrzucanie jak leci danych do SPI1->DR, bez sprawdzania statusu pracy, nie jest najlepszym pomysłem.
Witam, chciałbym stworzyć najprostszy Dataloger zapisujący na kartę SD do pliku tekstowego pomiar V, A i może temperaturę na 328p. Pobrałem i dołączyłem biblioteki od elm-chan.org. Niestety mam jak na razie pewne problemy. W starej wersji był plik konfiguracji mmc.c portów pod SPI, MIO, MOSI, CLK i CS. W obecni wersji nie mogę znaleźć miejsca by to...
98% tego kodu stanowi obsługa wodotrysków na ekranie LCD a gdzie obsługa karty poza inicjacją SPI oraz sprawdzeniem jej statusu? Jeśli to rzeczywiście M2 to nie będzie działać jako SD. A gdzie schemat podłączenia?
Dziękuję za odpowiedź. Sprawdziłem jeszcze obie sekwencje, niestety bez skutku. Tak samo nic się nie pojawia gdy po ustawieni SPI, obu strumieni ustawiam RXDMAEN i TXDMAEN a potem SPE, jak również w innej kolejności zakończenia czyli najpierw SPE a potem RXDMAEN i TXDMAEN. Testowałem też rozbijanie ustawiania SPI, czyli najpierw RXDMAEN , potem strumień...
Pozwolę sobie skonsultować poprawność konfiguracji SPI: [syntax=c]#define LAT PIN3_bm #define MOSI PIN5_bm #define SCK PIN7_bm #define SS PIN4_bm #define LAT_ON PORTC.OUTSET = LAT; #define LAT_OFF PORTC.OUTCLR = LAT; void SPI_init() { PORTC.DIRSET = LAT | MOSI | SCK | SS; //wszystko na OUT PORTC.OUTCLR = LAT | MOSI | SCK; //wszystko na OUT LOW PORTC.OUTSET...
(at)linuxtorpeda - Dziękuję za cenne wskazówki. Generalnie w konsoli wszystko jest zablokowane. Niestety komendy U-boot/MBoot i zmienne konfigurujące bootloader są, bo widać, że dochodzi do ich wywołania w trakcie np. aktualizacji firmware. Jednak po zabootowaniu jest to blokowane. Spróbuję z tym jeszcze powalczyć. Zastanawiające jest coś takiego w...
Dzięki za kod. Akurat te przykłady śnia mi się po nocach więc znam je na pamięć :wink:. Oczywiście jak wkleję cały kod to działa, natomiast jak wykasuje komendy dt. odczytania danych z SPI to już wysyłanie się nie wyrabia i dane się nakładają. Poprostu komendy /* Wait to receive a byte */ while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE)...
Dlaczego? Ponieważ nie chcemy zmieniać uC i wolimy dodać osobny układ z USART, który potrzebuje SPI, ma status EoL i kosztuje tyle samo co uC dostarczający wszystkie funkcje ARM mają po 6 czasem 8 usart. Robiłem swego czasu obsługę 9 usart. I co mam zrobić jak znów będzie taka potrzeba? Musze dac zewnętrzny usart czyli problem i na ARM może sie pojawić.
RT809F też czyta i przy zapisie do folderu zapisuje Status RegVal tak ma być.
Tak, już te artykuły przerabiałem i wiele innych: https://github.com/NoobieDog/TPM-Sniffin... robią to przy użyciu iCE40 sticka, inni przy użyciu Raspberry Pico, albo przy pomocy tego analizatora DSLogic. Nie jestem pewien tylko, czy to zależy od tego, czy ten układ to SPI, czy LPC. W każdym razie ten mój to chyba jest SPI, ale nie wiem, jak...
Flaga BSY jest bez sensu. Nie udało mi się rozgryźć co ona właściwie robi :) Najłatwiej wg mnie zapanować nad SPI - w ogóle go nie włączać. Transmisję wykonać na piechotę programowo. Tak komunikuję się w moim projekcie z wyświetlaczem i FLASH na SPI. Tak jak pisałem: ze stanu rejestru statusu nie da się wywnioskować, że nadajnik jest faktycznie zajęty.
Od dwóch dni męczę się z ustawieniem sprzętowego SPI w tym procesorze i nic kompletnie mi nie działa:/ Na elce znalazłem podobny temat, ale on niestety nie rozwiązał moich problemów (Tam kolega zapomniał podpiąć zegara pod SPI). Ja potrzebuje obsłużyć kartę MMC, a problemy zaczynają się od samego początku :/ (troszkę zniechęcające). Mam tak: To dotyczy...
SurpLife (Zengge) Symphony Controller USB SPI. Bardzo mały. https://obrazki.elektroda.pl/7113510300_... https://obrazki.elektroda.pl/5302174100_... https://obrazki.elektroda.pl/2046699700_... . Dołączono kopię zapasową oprogramowania układowego BKFIL i Easy Flasher. Coeff na tym urządzeniu to 84f37800...
Witam Próbowałem odczytywać po przerwaniu IRQ ale niestety problem w tym, że XPT w ogóle nie zmienia stanu na pinie PENIRQ, po dotknięciu (cały czas stan wysoki). Próbowałem zmieniac CPOL i CPHA, niestety bez rezultatu. Odczyt 12b, Zarówno kiedy PD1=1, PD0=1 mam takie nieciekawe dane jak i przy PD1=0, PD0=0. To może powróżę z fusów... pewnie masz błąd...
Witam. Właśnie jestem na etapie wyboru rodziny procesorów ARM. Do tej pory miałem do czynienia z mikrokontrolerami AVR. Teraz jednak możliwości AVR-a z typowo harwardzką architekturą się wyczerpały. Potrzebuje uC który umożliwi wykonanie kodu z pamięci ram, będzie miał co najmniej 65 linii I/O z czego 56 5V tolerant , USB device, oraz bogaty zestaw...
Witam, próbuję uruchomić akcelerometr LIS3DHH ( https://www.st.com/en/mems-and-sensors/l... ) na zestawie Nucleo F411RE ( https://www.st.com/en/evaluation-tools/n... ). Czujnik mam w postaci adaptera STEVAL-MKI180V1 ( https://www.st.com/en/evaluation-tools/s... ). Konfigurację dla mikrokontrolera generuję za pomocą CubeMX...
Tutaj masz do RFM01/02: Nadajnik RFM02: [syntax=c]static void RFM_Init(void) { RFXX_WRT_CMD(0xCC00); //Status Register Read Command RFXX_WRT_CMD(0x9761); //868BAND,+/-90kHz, CLK = 10MHz RFXX_WRT_CMD(0xA640); //868MHz RFXX_WRT_CMD(0xD040); //RATE/2 RFXX_WRT_CMD(0xC823); //4.8kbps RFXX_WRT_CMD(0xC210); //DISABLE BIT SYNC RFXX_WRT_CMD(0xC038); //A0,A1...
Czy uwzględniasz to, że status karty zwracany dla niektórych komend odnosi się do komend poprzednich?
Witam. Pytanie jak w temacie - krótkie i treściwe. Otóż próbuję obsłużyć tą pamięć przy użyciu ATmega128, niestety bez skutków. Niestety pierwszy raz korzystam z SPI i nie jestem pewien czy źle obsługuję SPI czy może samą pamięć. Po wysłaniu "Write Enable" i "Read Status Register" dostaję albo 0xff albo 0x00. Słyszałem że SPI w niektórych układach różni...
Tutaj moja ustawienia - działa na STM32F0Discovery funkcje konfiguracji GPIO od Freddiego Chopina [syntax=c]RCC->APB2ENR |= RCC_APB2ENR_SPI1EN; RCC->AHBENR |= RCC_AHBENR_GPIOBEN; gpio_pin_cfg(RF_PORT,MOSI,GPIO_AF0_PP_10... gpio_pin_cfg(RF_PORT,MISO,GPIO_AF0_PP_10... gpio_pin_cfg(RF_PORT,SCK,GPIO_AF0_PP_10M... gpio_pin_cfg(RF_PORT,CS,GPIO_OUT_PP_10MH...
Podczas programowania nie ma problemu... chodziło mi raczej czy jak będę korzystał z pamięci to programator nie zgłupieje i np. nie zapisze mi czegoś do flash'a(mikrokontrolera) niepotrzebnie... W takim razie czekam dalej na pomoc w używaniu tej pamięci... //Może kostka jest walnięta ... mógłby ktoś sprawdzić dla mnie kod z pliku poniżej? Podłączenie...
dotyczące kamery i OTA Z OpenBK7252_QIO__7231u_t_c1b0ac146bf0.bin w połączeniu z OpenBK7252__7231u_t_c1b0ac146bf0.rbl od 0x132000 i sflashowany jako jeden plik od 0x0 widzimy proces OTA przy pierwszym uruchomieniu [syntax=text]BK7251_1.0.13 REG:cpsr spsr r13 r14 SVC:0x000000D3 0xE210DFAC 0xFFBCF73E IRQ:0x000000D2 0x00000010 0xC4D15E2C 0x72903C46 FIR:0x000000D1...
Do tej pory zidentyfikowałem wiele procedur, bootloader do uruchamiania aplikacji, aktualizowanie obszaru aplikacji, kontrolowanie kolejności rozruchu / trybów awarii. Pamięć flash SPI jest używana przez program aplikacji do przechowywania aktualizacji dla układu benken, a także kopii programu aplikacji i kontroli crc Aktualizacje MCU mogą być wykonywane...
na podstawie tego że led w momencie przerwania się nie zapala, a w pętli głównej widać tylko mruganie o bardzo dużej częstotliwości oto pętla główna, while(1) { SPI_write_buffer(0xA0,TxPayload,16... CONFIG_PIN_CE = 1; //CONFIG_PIN_LED = 1; status = SPI_read_reg(0x07); if (status&0x20) { CONFIG_PIN_LED = 1;...
Witam. Mam problem ze startem pamięci at45db081d. Poniżej schemat. http://obrazki.elektroda.pl/1957945200_1... Właściwie jest taki sam jak w znanym MMnet01 propoxa. Po podaniu zasilania na płytkę atmega odczytuje cały czas FF dopiero chwilowe zwarcie wspólnego połączenia linii RST,WP,VCC do masy powoduje prawidłowy odczyt statusu z pamięci....
Według mnie to przy przełączaniu na TX zbędne jest to: value=SPI_Read_Reg(STATUS);// read register STATUS's value SPI_Write_Reg(WRITE_REG,STATUS,value);// clear RX_DR or TX_DS or MAX_RT interrupt flag Pamiętaj że jak coś wysyłasz i chcesz przejść na odbiór to musisz dać po wysłaniu czas na zakończenie wysyłania wstawiając np. delay(50) i dopiero wtedy...
ps. Pamiętaj, że "wychodząc" z zapisem poza stronę musisz zakończyć zapis i rozpocząć z nowym adresem. Czyli rozumiem, że: - wychodzę poprzez ustawienie CS na jeden - sprawdzam status - rozpoczynam całą procedurę zapisu na nowo ?
Tu masz działający kod, tylko musisz poustawiać pod swój hardware sekcje configuration. Na końcu masz funkcję main tam masz 3 tryby pracy. Musisz jedną z nich odhaszować. Możesz zrobić kilka konfiguracji. Powinieneś zacząć od (1), tylko wysyłanie pakietów w "eter". Powinna Ci migać dioda od nadawania. Potem jeśli masz dwa zestawy uC i RFM12, to możesz...
Dzięki tmf za nakierowanie. ponieważ na razie używam USARTA jak zwykłego SPI z ATMEG bez przerwań, wystarczyło ręcznie skasować flagę końca transmisji i zaczęło działać :) Pozdrawiam, także dla -rafal- jeszcze ostateczny kod wysłania bajtu :P [syntax=c] LCD_SPI.DATA = D; while (!(LCD_SPI.STATUS & USART_TXCIF_bm)); LCD_SPI.STATUS = USART_TXCIF_bm; return...
nadajnik: [syntax=basic4gl]$regfile = "M8def.dat" $crystal = 16000000 $baud = 19200 $hwstack = 40 $swstack = 20 $framesize = 40 '=== Declare sub routines Declare Sub R_register(byval Command As Byte , Byval C_bytes As Byte) Declare Sub W_register(byval C_bytes As Byte) '=== Constante === 'Define nRF24L01 interrupt flag's Const Idle_int = &H00 'Idle,...
1. Indeks reguł - czy odpowiada aktywnemu połączeniu (u mnie status - device info)? 2. Firewall - czy wyłączone SPI? 3. DMZ - nie może być aktywny. A może masz Neo z usługą bezpieczeństwa lub jakoś podobnie? Nie wiem, czy teraz to jest, ale polegało to m.in. na zablokowaniu portów przez TPSA. Poprawka do 1. - nie indeks reguł tylko z poprzedniego ekranu...
Cześć, mam problem z modułem radiowym NRF24L01, a dokładniej nie mogę nawiązać z nim połączenia po SPI. Próba odczytania rejestru np. STATUS kończy się niepowodzeniem. Mikrokontroler to Atmega 32A. Proszę o pomoc w rozwiązaniu mojego problemu. Pozdrawiam. [/code][syntax=c] #include <avr/io.h> #include <stdio.h> #include <util/delay.h>...
witam, właśnie jestem w trakcie 'przerabiania' komunikacji z kartą uSD z m16 na m88 http://mikrokontrolery.blogspot.com/2011... natrafiłem na kuriozalną, moi zdaniem, sytuację w funkcji init_spi() jeżeli kolejność instrukcji w tejże jest : [syntax=c] void init_spi(void) { //załącz SPI, układ Master, MSB first, SCK fosc...
inicjalizuje UARTA w tryb spi: https://obrazki.elektroda.pl/8002988700_... Wysyłanie bajta: [syntax=c]void SPI_send( uint8_t byte ) { USARTC1.DATA=byte; while(!(USARTC1.STATUS & USART_DREIF_bm)); }[/syntax] Odbieranie bajta: [syntax=c]uint8_t SPI_receive( void ) { while(!(USARTC1.STATUS & USART_RXCIF_bm)); return USARTC1.DATA;...
Dziękuję Ci jeszcze raz za pomoc ale niestety nadal mam to samo. Ale wykryłem jeszcze jedną ciekawą rzecz: Jeśli odczytuję 7 razy ten sam Rejestr to otrzymuję zawsze dobrą wartość oprócz 2 razu. Ale jeśli zmienię na auto-inkremętację adresu (po prostu (MSB-1) ustawiam na 1) to oczekiwana wartość jest dopiero na 3 miejscu. Czy jest możliwość że mam jakiś...
Witam Poszukuje układu dedykowanego do zewnętrznych przerwań (zmiana stanu pinu) do AVR/Xmega Początkowo myślę nad układem expandera (SPI/TWI) z podłączeniem INx expandera do uC i odczytu zmiany statusu pinów expandera ,ale czy to jedyne rozwiązanie ? Potrzebuje ok 14 lini do monitorowania zmiany statusu .
W RAM są błędy sporadyczne (nie występujące ciągle), jeśli błąd będzie występował dostatecznie długo zostanie "zwalidowany" i trafi do EEPROM, jeśli trafi do EEPROM to tam zostanie przez najbliższych (chyba) 7 cykli pracy silnika, nawet jeśli więcej nie wystąpi. Błędy mogą mieć więc status: - obecny, sporadyczny (RAM) - obecny, ciągły (RAM & EEPROM)...
Cześć wszystkim :) Pracuję nad przeniesieniem kodu pewnej biblioteki do nrf24l01 z atmegi na xmegę (atmega32 -> xmega 128a3). Czytając bibliotekę wybrałem fragmenty z elementami charakterystycznymi dla danego typu procesora, czyli pozmieniałem części kodu związane z rejestrami i przerwaniami. "Zakomentarzowałem" nietknięty oryginał. To, co wstawiłem...
SPI Tool V1.2 New functions in tool (options to read and edit system register in EEPROM SPI): - Read Status Register - Protect EEPROM Area - Unprotect EEPROM Area Download; http://martech.pl/support/Clip%20applica... Martech Team www.martech.pl Dodano po 1 RCDPRO RNS315 V1.2 - models from 2011 supported 2011-05-16 http://martech.pl/download/PINOUTS/rns31...
Witam :) Potrzebuję opis poszczególnych bloków tych dwóch mikrokontrolerów: - AT89S8252 - AT90S2313 Poniżej umieszczam schematy blokowe. W AT89S8252 zależy mi na: RAM ADDR. REGISTER ACCB REGISTER TMP2, TMP1 PSW INSTRUCTION REGISTER TIMING AND CONTROL WATCH DOG INTERRUPT, SERIAL PORT, AND TIMER BLOCKS PROGRAM ADDRESS REGISTER BUFFER PC INCREMENTER PROGRAM...
wedle zyczenia: // zwraca zawartosc rejsetru statusowego // bit7 = ready/busy // bit6 = wynik ostatniego porownania pamieci z buforem // bit5,4,3,2 = zakodowana pojemnosc pamieci (dla kompatybilnosci wstecz) // bit1 = status ochrony sektorow przed zapisem // bit0 = 0=strona standartowa (zmiana na "power of 2" nie moze byc cofnieta...
Analizując oba wsady różnice są tylko w kilku kluczowych miejscach między innymi odnoszących się do: cpldinfo offset https://obrazki.elektroda.pl/8028853900_... bootparam offset envinfo offset https://obrazki.elektroda.pl/1324582800_... Wykasowałem trzy partycje w pamięci NAND Flash i wgrałem aktualizację. 0x000000200000-0x000006200000...
Panowie wrgałem po kolei Arduono 2.11 - ostatnie które działa z Win7 64b - tak wyczytałem Do tego zainstalowałem ESP-IDF Oraz płytkę ESP-S3 3.11 w manager boards w Arduino Po próbie skompilowania ostatniej wersji 3.14 otrzymuję taki log In file included from C:\Users\HD\Documents\Arduino\libraries\... C:\Users\HD\Documents\Arduino\libraries\...
Poszukuję funkcji do obsługi data flash AT45DB321 dla SAM7. Napisałem coś ale nie dokońca mi to działa - odbieram tylko jeden bajt (np status) , ale jak odpowiedź flasha jest dłuższa do dostaję albo same ffff albo kropki.
https://obrazki.elektroda.pl/7245713600_... BK7231 zazwyczaj programujemy przez UART - pozwala na to wgrany przez producenta bootloader. W wyjątkowych sytuacjach jednak możemy niechcący ten bootloader nadpisać - wtedy musimy użyć trybu programowania SPI by odratować zablokowany układ. Tutaj opiszę, jak działa tryb SPI w BK7231 oraz...
Musi być inaczej. Trzeba rozdielić sterowanie linią cs i oddzielnie wysyłanie. Chodzi o to żeby dane wyszły przy tym samym ściągnieciu cs do masy - inaczej każde opadajace zbocze zresetuje ci wewnętrzny licznik. Tak działaja wsyzstkie mi znane ukłądy na spi i i2c (bo bardzo podobne). I tak tutaj trzeba zrobić. W avr jest od tego odpowiedni status więc...
Nie rozumiem, dlaczego w tym fragmencie zerujesz linię CS na 1us następnie znowu ustawiasz na 10ms, potem znowu zerujesz i natychmiast po wyzerowaniu ustawiasz ponownie. Taka operacja miałaby sens, gdybyś odczytywał status READY/BUSY z pinu DO układu slave, ale to raczej nie będzie koniczne, jeśli odczekasz odpowiednią ilość czasu. Myślę, że wystarczyłoby...
Witam, Stanąłem przed koniecznością użycia w moim projekcie pamięci zewnętrznej AT45DB321D. W pamięci tej przechowywane mają być wyniki odczytu z przetwornika AD czyli zmienne 12 bitowe. Razem około 8 tysięcy odczytów. (?) Z pomocą przykładów znalezionych w sieci uruchomiłem obsługę w/w pamięci przez sprzętowy SPI. Mogę odczytać status pamięci, zapisać...
- czekały po zapisie bajtu 4 czy 10ms - czekały po zapisie bloku 4 czy 10ms Jeżeli dobrze rozumiem nie bedzie to problemem, bo jak wcześniej napisałem chciałem zapisywać dane co 1 sekunde. Chcesz zapisywać 10..20 zmiennych int. Łącznie 40..80 bajtów. Trafisz na durną bibliotekę, czekającą 10ms i zapis 80 bajtów będzie trwał 0,8 sekundy! Chcesz zapisywać...
Remzibi dziękuję bardzo. Już trafiłem. Ale teraz mam tylko raspberryPi i staram się nagrać to na kość. Ale mam problem z ustawieniem CMP na 1 i nie mogę tego obejść. Jak by to ładnie ująć w słowa, tak żeby i nie obrazić i nie zniechęcić. Polecam kupić/zdobyć/pożyczyć/wynająć/zlecić/oga... programator do kości SPI i nie zawracać du.y. Niestety, dzisiejsza...
Jest sygnal na SCK, SDO mastera. Niewolnik nic nie nadaje, nie wyswietla tez nic na diodach. Podaje jeszcze sygnal niewolnika: LIST P=16f818 ; list directive to define processor #INCLUDE <P16F818.INC> ; processor specific variable definitions __CONFIG _CP_OFF & _CPD_OFF & _WDT_OFF & _PWRTE_ON ;***************************************...
Złapałem ten tani dzwonek do drzwi Tuya z Ali Express, zastanawiając się, czy będzie on wyposażony w BK7252. https://obrazki.elektroda.pl/9324523600_... . I chociaż wiem, że OpenBeken nie obsługuje BK7252 ani nie ma sterownika / opakowania kamery, nadal będzie interesujące zobaczyć, co jest w środku, sprawdzić wyjście dziennika rozruchu...
Opcje komunikacji między ESP32 a Raspberry Pi Pico W: 1. Wi-Fi / MQTT (zalecane) ESP32 i Pi Pico W obsługują Wi-Fi, więc można użyć protokołu MQTT (np. z brokerem Mosquitto). Pico W wysyła komendy (np. „włącz czujnik 1”) do ESP32. ESP32 publikuje status czujników, a Pico W je odczytuje i wyświetla na ekranie. UART (komunikacja szeregowa) Można połączyć...
Witam ponownie. Chce wymienić wyświetlacz 2,8 ILI9341 na 3,5 ILI9488. W programie dołączyłem bibliotekę z tej strony https://github.com/jaretburkett/ILI9488 Także zamieniłem w programie tam gdzie było napisane 9341 i zapisałem 9844-ç. Teraz próbuje go wgrać i takie błędy mi wyskakują: C:\ENIO\decoder_11\display.cpp:5:10: fatal error: Adafruit_ILI9844.h:...
Witam, Mam 2 płytki Stellaris LaunchPad z procesorem LM4F120XL na pokładzie, po podłączeniu do nich modułu nrf24l01 bez ustanawiam komunikację między płytkami i steruje np: serwem, diodami. Program do Stellarisów napisałem w IDE o nazwie Energia, który jest klonem IDE do Arduino (dostosowanym pod płytki Texas Instruments). Teraz ta ciekawsze część,...
Szanowni koledzy, proszę o drobną pomoc z uruchomieniem modułów komunikacji nRF24L01 - próbowałem już niemal wszystkiego i nie chce mi to działać , sądzę że problem leży po stronie "odbiornika" ale ślęczę nad tym już tak długo , że nie widzę już żadnej przyczyny dla której odbiornik nie wychwytuje żadnych danych. Otóż mam 2 układy na atmega8 (zeg.int.1MHz)-...
Witam ponownie Na początek sugerowałbym przetestować samą poprawność działania SPI, można np. zapętlić MISO z MOSI. Albo odczytywać z peryferiala rejestr ID. Dopiero w następnym etapie uruchamiać obsługę właściwą. Nie analizowałem Twojego programu ale podeślę mój 'bliźniaczy' i działający na STM32F429_DISCO, odczytuje on i wyświetla rejestry GYRO L3GD20....
Ale i w C trochę cykli by to musiało zająć. Zysk w stosunku do BASCOMa był by raczej symboliczny. Same operacje na zmiennych (pobranie z pamięci) zajmą z 16 cykli a to drugie tyle co zajmie transfer po SPI. Nie zgodzę się z tym. Oto jak wygląda wysyłka danych w C: Miałem na myśli operacje na wszystkich zmiennych. Czyli razem ze zmienną 16-bitową z...
To mi się nie podoba: while(!(SPSR & (1 << SPIF))); SPSR &= ~(1 << SPIF); return SPDR; • Bit 7 – SPIF: SPI Interrupt Flag When a serial transfer is complete, the SPIF Flag is set. An interrupt is generated if SPIE in SPCR is set and global interrupts are enabled. If SS is an input and is...
Bardzo ważna jest zawartość pliku m8def.dat, musi posiadać wszystkie wymagane wpisy dla obsługi SPI. Moim zdaniem kod Slava powinien wyglądać tak (opieram to oficjalnym przykładzie dołączonym do kompilatora): [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 1000000 Dim Zmienna As Byte , Dane_mastera As Byte , Rbit As Bit Zmienna = 123 Config Spi =...
Awaria czujnika magnetycznego to standard w 740/1. Jeśli masz cierpliwość, odłącz krańcówkę, zewrzyj wszystkie 3 piny jej gniazdka na płycie i pobaw się pilotem (tylko nie dojeżdżaj do krańców ruchu bo krańcówki - co oczywiste - nie zadziałają). Jeśli napęd zacznie zachowywać się przewidywalnie (tzn nie będzie skakał po różnych statusach i będzie grzecznie...
synology status status bramy mruga status
uszkodzony diseqc licznik energia zdalny telewizor samsung standby
spalona przetwornica aktywna piana
Sony CFD-S07CP nie uruchamia się, tryb standby Usunięcie hasła BIOS w Lenovo T450 - porady