Sporo się namęczyłem, zanim ruszył mi slave transmitter w STM32F103. W 107 będzie tak samo. Po pierwsze zobacz do errat - tam między innymi napisali, że przerwanie i2c musi mieć najwyższy priorytet, bo inaczej się wiesza. Poza tym przykłady nie zadziałały mi od razu, a problemy mają też inni, o czym możesz poczytać na main.c // main.c main()...
to przerwanie układu TWI, które wyzwolone zostanie po każdej akcji realizowanej przez TWI. przeczytaj obis tego bitu w dokumentacji procesora
LCD. Myślę, że dobrze. ATmega zostaje zaadresowana w trybie odczytu SLA+R (Slave Transmitter Mode, bo bit-0 będzie ustawiony), wystąpi przerwanie TWI a w rejestrze TWSR będzie wartość 0xA8 (Own SLA+R has been received; ACK has been returned). Teraz aplikacja powinna wczytać bajt do TWDR i go wysłać, bo to sugeruje adres w trybie odczytu...a tutaj Master...
Pamiętaj że pilota Slave nie dopiszesz do odbiornika (może on tylko przejąć kod od Mastera) czyli do odbiornika zostaw chociaż jednego pilota Master CONVERTING A TX FROM MASTER TO SLAVE Procedure for converting a master transmitter into a slave transmitter: simultaneously press push-buttons P1 and P2 of the master TX and release them when the LED flashes...
Tak, ten kod nie ma sensu. Jest po to by pokazać problem. Owszem, nie odczytuje flag statusu. Robiłem to, w przerwaniu, ale zredukowałem ilość kodu, bo to nic nie zmienia z tego co rozumiem. Z In Transmit mode, TWDR contains the next byte to be transmitted. In receive mode, the TWDR contains the last byte received. It is writable while the TWI is not...
Witam, jesli mam miec bit R za adresem (logiczna 1) to w odbiorniku musze odbierac ze statusem 0xa8 a nie ze statusem 0x60 jak robiłem to dotychczas, ale co ciekawe jak odbieram to z 0xa8 to tez nie wysyła ACK <wnerw> Nota aplikacyjna ATmega8, strona 177. TWI działa w jednym z 4 trybów. Master zawsze podaje adres slave i kontroluje zegar. * MT...
Witam, próbuję zmusić STM'a do działania jako monitor I2C pomiędzy jakimś master a jakimś slave. W pakiecie, pomiędzy start a stop transmitowane jest adres i 163 bajty danych, po każdym bajcie slave ładnie ustawia ACK do niskiego poziomu. Skonfigurowałem STM'a: [syntax=c] RCC->APB1ENR |= RCC_APB1ENR_I2C2EN; RCC->APB2ENR |= RCC_APB2ENR_AFIOEN; RCC->APB2ENR...
Cześć, Kilka dni próbuję coś zapisać jak i odczytać z eeprom at24c256. Problem polega na tym że program zatrzymuję się na [syntax=c]while (!(I2C1->SR1 &(SR1_ADDR))){}[/syntax] w funkcji i2c1_burst_write. Sprawdzałem rejestr DR i adres jest dobry. Pamięć eeprom ma adres 0x50 sprawdzałem skanerem i2c. Dodałem nawet przerwy czasowe pomiędzy inicjalizacja,...
Stary temat ale podepnę się bo mam podobny problem. Próbuję skomunikować STM32F429 (płytka discovery disco) z Atmegą8 (nie 88). STM Master Reviever <<>> Atmega Slave Transmiter. Wzorowałem sie trochę na kodzie kolegi i trochę na tym tutorialu: http://eliaselectronics.com/stm32f4-tuto... Problem kolegi kolegi...
Borykam się z problemem odpowiedzi procka w trybie slave w usarcie synchronicznym. https://obrazki.elektroda.pl/5841060300_... RM mówi o podobieństwu tego trybu do SPI oraz o możliwości zastosowania SPI u slave'ów a USART w trybie synchronicznym u mastera - podobno działa, nie testowałem bo... Problem polega na tym, że SPI użyć nie...
Witam, Próbuję zrealizować nadawanie i odbiór po magistrali I2C - STM32F01RET6 z okładem BNO055. Program zawiesza się na pętlach sprawdzających stan zajętości magistrali lub wygenerowanie START. Jak nie zawiesi się na pętlach to odczytuje jakieś dane ale tylko dla odczytów po 1 bajcie. W przypadku odczytu ilości bajtów > 1 to odczytuje tylko jeden...
Mam problem z połączeniem dwóch ATmeg8 za pomocą sprzętowego TWI. Otóż chciałbym połączyć dwie ATmegi, z których pierwsza - SLAVE TRANSMITTER - obsługuje akcelerometr poprzez ADC i przekazuje dane drugiej - MASTER RECEIVER - która to z kolei wyświetla dane na wyświetlaczu LCD. Przewertowałem elektrodę, google, datasheeta ATmegi i znalazłem wydawałoby...
O coś takiego chodziło? HAL_UART_IRQHandler(&huart3); HAL_UART_TxCpltCallback
REPEATED START Nie służy do ponawiania transmisji pomimo mylacej nazwy. Ma on na celu zachowanie kontroli nad magistrala po zakonczeniu poprzedniej opeacji ( z reguly w innym trybie) np. wysyłasz komende do ukladu i chcesz odpowiedz . Jezeli uklad nie potwierdził nalezy zakonczyc transakcje sygnalem STOP zwalniając magistrale. Proponowałbym następnym...
witam, próbuję osbłużyć akcelerometr ADXL345 po i2c, ale komunikacja zawiesza się po pierwszej komendzie i w ogóle program nie wchodzi do pętli while(1). jak zakomentuje linijkę: i2cTransmit(ADXL345, POWER_CTL, 0) w mainie; to ATmega wysyła po USARCIE dane bez problemu, w przeciwnym razie zawiesza się. o to listing programu: ATmega168 + 20 MHz, na samym...
No dobra, o tych podstawach już przeczytałem wcześniej. Bardziej chodzi mi o konkretną implementację tej magistrali. W chwili obecnej mam kod, który inicjalizuje magistralę. Próbuję połączyć się z akcelerometrem na płytce STM32f4. Przy debugowaniu, zatrzymuje się na fladze BUSY, czyli zajętej magistrali. Dodatkowo wyświetlany jest warning o tym, że...
Dzięki m.ki za odpowiedz. Właśnie się tak spodziewałem że tak jest. Oznacza to że w komendzie : http://obrazki.elektroda.pl/6639481800_1... SDA do pinu PB7, SCL do pinu PB6. I cały kod z definicjami i resztą.
Niestety zamiana też nic nie pomogła. Poniżej zamieszczam wycinek z dokumentacji odnośnie jak ma wyglądać komunikacja. http://obrazki.elektroda.pl/2623028600_1... Jest powiedziane też że oznaczenie W to jest Write = 0 oraz R jako Read = 1. I tutaj jest wycinek pliku stm32f4xx_i2c.c: [syntax=c] /** * (at)brief Transmits the address byte...
Witam, Mam problem z odbieraniem danych po RS485 (a w zasadzie to chyba raczej z RS232). Mam dwa procesory. Jeden master, drugi slave master.c: #include <avr/io.h> #include <avr/interrupt.h> #include "lcd.h" #include <util/delay.h> unsigned char z,licznik; char bufor[10]; /*****************************Inicjaliza...
Pytanie tylko czy I2S potrafi dzialac w trybie "full duplex",... Simplex communication (only transmitter or receiver) wtedy zadne CS nie sa potrzebne a ja moglbym uzyc tylko jednego ISP a drugiego do karty SD :) Do karty możesz użyć SDIO.
Edit: DMA nie działało bowłączałem DMA2 a nie DMA1. Napiszę jak dalej pójdzie :] Cześć, mam pewne problemy z I2C, bazowałem na zmodyfikowanym kodzie od ST (jak mnie pamięć nie myli) najpierw używałem samych przerwań na najwyższym priorytecie jak ST przykazało, niestety od czasu do czasu zdarzało się że RTOS wyłączał wszystkie przerwania i przy odbiorze...
Hmm, a może Ty byś pokazał kawałek kodu, który napisałeś? Nie wiem czy korzystasz z rejestrów czy SPL'a, ale wrzucam kawałek kodu dla SPL - sprawdzony w realu. [syntax=c] /** ****************************************... * (at)file Project/STM32F4xx_StdPeriph_Templates/ma... * (at)author MCD Application Team * (at)version...
Witajcie, widzę, że dawno tu nikt nic nie naskrobał ;) Znalazłem się w dość nieciekawej sytuacji i czas ucieka mi między palcami jak nie powiem co. Mój problem rysuje się podobnie jak kolegom na wstępie. Naskrobałem kod do obsługi Master Transmitter AtMegi32 , lecz ciężko mi coś spłodzić w części Slave Receiver AtMegi168p . Bo chodzi mi o przesłanie...
No dobrze, nie byłem zbyt precyzyjny, mea culpa. SS tak, bo w masterze SS nie jest de facto obsługiwane przez sprzęt. Tak, mogłem o tym napisać. Jeżeli chodzi o USART, to jednak nie masz racji: • TXD – Port D, Bit 1 TXD, Transmit Data (Data output pin for the USART). When the USART Transmitter is enabled, this pin is configured as an output...
Witam. Tutaj powinno coś być : EFEKTY DYSKOTEKOWE DMX lighting and special effects --> http://home.att.net/~northlightsystems/a... 6 Channel Auto Reverse Sequential Disco Running Lights --> http://www.electronics-lab.com/projects/... Light chaser --> http://www.geocities.com/lemagicien_2000...
Sformatowałem ten pierwszy listing. Tak, senBufferLPS to jest to co zakomentowane, dodałem sobie tak, żeby nie przewijać ciągle na górę. Mam dużo kodu, więc tak wygodniej. Biblioteka atmela wysyła rozkazy z bufora, stąd ta tablica. Dodano po 29 Tak wg DS czujnika powinna wyglądać ramka: http://obrazki.elektroda.pl/1781781100_1... A tak...
Cytat z noty katalogowej: USART The Universal Synchronous and Asynchronous serial Receiver and Transmitter (USART) is a highly-flexible serial communication device. The main features are: • Full Duplex Operation (Independent Serial Receive and Transmit Registers) • Asynchronous or Synchronous Operation • Master or Slave Clocked Synchronous...
Witam, ostatnio próbuje doprowadzić do komunikacji między dwoma atmegami 8 ( pierwsza jako master transmiter druga jako slave receiver) slave receiver ma podłączoną diode do PB0 obie atmegi taktowane są 8Mhz , rezystory pull-up : 1kΩ Posługując się dokumentacją atmela stworzyłem oto taki kod który niestety nie działa (dioda się nie zapala) Prosiłbym...
Wrzucam pliki *.h i *.cpp, które są umieszczone w katalogu "libraries" biblioteki. c:\Program Files(x86)\Arduino\hadware\arduino\avr\l... -Wire.h -Wire.cpp Kod w pliku Wire.h Kod w pliku Wire.cpp Kod w pliku PCF8574.h Kod w pliku PCF8574.cpp [syntax=c]// // FILE: PCF8574.cpp // AUTHOR: Rob Tillaart // DATE: 02-febr-2013 // VERSION: 0.1.02...
Witam. Natrafiłem na pewien uciążliwy problem... W swoim projekcie realizuję transmisję przez TWI między AVRem a zegarem czasu rzeczywistego DS1307. Wykorzystuję sprzętową obsługę TWI. Transmisję w obie strony, czyli zapis czasu do DS1307 oraz późniejsze jego odczytywanie, udało mi się zrealizować i jako tako to działało. Tylko że wszystko działo się...
Mam taki plik nagłówkowy [syntax=c]/*============================... * Project: Board Support Package (BSP) * Developed using: * Function: Standard definitions for PHILIPS ARM7TDMI-S controller LPC213x * * Copyright HighTec EDV-Systeme GmbH 1982-2007 *=======================================...
Witam! Mam problem z popranym odbiorem danych. Kod wygenerowany przez kreatora jest przedstawiony na listingu. I teraz pytanie. Mam odebrać z odbiornika widomość o długości 154 bajtów. Wiadomość ta przychodzi co 1 sekundę i zaczyna się zawsze czterama takimi samymi znakami : (at)(at)Ha Próbowałem już robić to z pętlą, by odbierać 154 znaki, i potem...
(at)Markosik20 Dziękuję za zainteresowanie! :-D Nie zrozumieliśmy się. Nie chcę transmitować znaków w czasie rzeczywistym. Druga sprawa - w RS485 masz wiele nadajników, jeden master reszta slave - nie można sobie tak śmiecić na linii (po znaku), to nie buforowany RS232! Inna sprawa, że docelowo przesył będzie w trybie ASCII (później rozszerzę soft o...
Witam serdecznie Szanownych forumowiczów. Po raz pierwszy umieszczam post na tym forum co wynika z problemów jakie napotkałem w czasie próby skomunikowania się uC LPC2148 z kamerą podczerwoną poprzez interfejs I2C. Mam nadzieję, że nie powtarzam żadnego tematu. Przeczytałem wątki o podobnym charakterze i uznałem, że spokojnie mogę założyć nowy temat....
Witam, Napisałem program obslugi korzystająć z dokumentacji czujnika oraz kursu dla Arduino (dostosowałem go do `51). Problem polega na tym, ze żadna z danych kalibracyjnych odczytana z EEPROMU nie może mieć wartości 0x00 lub 0xff, moje wyniki są następujące: BMP085 inicialization OK! msb=1d lsb=cc ac1=7628 msb=fc lsb=a4 ac2=-860 msb=c7 lsb=ff ac3=-14337...
Ok, po pierwsze czy sam pisałeś obsługę I2C ? Czy są to jakieś gotowce? Dorzuć deklaracje nazw pinów zegar dane itd (tak na wszelki wypadek). W procedurze "zapis" masz oczekiwanie na potwierdzenie od odbiornika: clr zegar djnz r1,czolem setb dane acall del jb dane,$ ;<---------- setb zegar Z tego co rozumiem dokumentację,powinieneś czekać przy wysokiem...
Mam problem z napisaniem programu do obsługi i2c w trybie slave w w/w klocku. Chciałbym aby slave odpowiadał conajmniej czterema bajtami danych, niestety korzytajac z tego co już mam nie moge wysyłać więcej niż 2 bajty ze slave do mastera ponieważ klocek przestaje odpowiadać. Aby wysyłać wiekszą ilość danych dopisywałem kolejne funkcje I2C_SendData();...
Czesć czy wiecie może czemu mi ten kod niedziała prosze o pomoc w znalezieniu błędu [syntax=objc] #include<avr/io.h> #include<util/delay.h> //Deklaracje funkcji void send_start(void); void send_stop(void); void send_byte(uint8_t byte); uint8_t read_byte(uint8_t byte); void send_buffer(uint8_t Slave_Address,uint8_t address,uint8_t *buffer,uint8_t...
Cześć, Pracuję nad pewnym projektem wykorzystującym układy IMU (zastanawiam się nad MPU-9250/BMA220/FXAS21002C) w oparciu o Arduino Pro Mini 3.3V, głównym kandydatem do zastosowania jako IMU jest [url=MPU-9250]https://botland.com.pl/czu... Problem z jakim się...
nie chcialem wklejac calego kodu dla uC :), wybralem tylko ta czesc co mi nie dziala oto calosc uC: #include <avr/io.h> #include <avr/signal.h> #include "uart.h" #include "SPI.c" #include "twiradzio.c" #define MUX_ON PORTB |= 0x02//ustawia 1 na pinie #define MUX_OFF PORTB &= 0xFD//ustawia 0 na pinie #define...
Mecze sie z poprawnym uruchomieniem sprzetowego twi miedzy mega88 i mega128. Wyglada to tak ze mam procek mega128 - MASTER RECEIVER i mega88 - SLAVE TRANSMITTER. Uruchamiam oba procki wysylam start, adres+r czytam 3 paczki po 8 bitow - jest ok. Problem pojawia sie kiedy po tych 3 paczkach wysylam Repeted Start i chce odebrac kolejna paczke. MASTER lcd...
Jak juz wspomnialem poszukuje koncepcji schematic, przy uzytku prostych bramek, z vhdl nie mam doswiadczenia... Wykorzystujac FPGA(slave) ktore ma odbierac inforamcje i przesylac je dalej w obu kierunkach, chcialbym zastowsotwac receiver/transmitter odrebnie dla kazdego kierunku przesylania danych. Majac zatem dwa urzadzenia w FPGA chcialbym na pozcatek...
Napisałem obsługę I2C na przerwaniach. Niestety program wchodzi mi w UsageFault_Handler(). Prawdę mówiąc nie wiem, co to oznacza. Zamieszczę przy okazji kod, ale z tego co zaobserwowałem w debugu, program wywala się przy funkcji I2C_EV_init() : [syntax=c]void I2C_EV_init(void) { NVIC_InitTypeDef NVIC_InitStructure; NVIC_InitStructure.NVIC_IRQChannel...
A oto fragment kodu odpowiedzialny za obsluge TWI: //I2C void I2C_init( unsigned int adres) { TWBR=0x20; TWAR = adres ; // rejestr z adresem slave TWCR=0x45; TWSR=0x00; } //************* //********************** SIGNAL (SIG_2WIRE_SERIAL) { Status_I2C = TWSR&0xFC; switch(Status_I2C) { //TRANSMITTER case 0xA8://odebrano bit startu i bajt adresu do odczytu...
Hej Mam taki problem: gdy transmituję bajt który kończy się 1 nie dostaję potwierdzenia. Wiem że potwierdzenie w I2C jest realizowane tak że master powinien zwolnić linię SDA i wtedy Slave podciąga ją do GND. W moim przypadku próbuję się skontaktować pomiędzy procesorem STM32F103C8T6 a akcelerometrem LSM303DLH którego logika działa na napięciu 1.8V...
Witam, Po wielogodzinnej zabawie wreszcie udało mi się uruchomić I2C i nawiązać komunikację z akcelerometrem. Jednak mam mały problem - chciałbym w jednym adresowaniu w trybie do odczytu odczytać zawartość kilku kolejnych rejestrów z akcelerometru. Póki co udało mi się napisać działający program odczytujący tylko jeden rejestr, więc do odczytania trzech...
Witam próbuje skomunikować ze sobą dwie atmegi za pomocą twi. Napisałem skrypt oparty o datasheet jednak mam pare watpliwosci.poszukalem po elektrodzie i nie znalazlem tematu ktory by odp na moje ptyania. Komunikacja wyglada nastepujaco. Jeden z kontrolerow bedzie Master Reciver a drugi slave transmitter. po inicjalizacji polaczenia slave ma przeslac...
W efekcie wykonania kodu oczekiwałem zapalenia się na biało całego wyświetlacza. Wykorzystałem jedno wyprowadzenie testowe które ustawiam w ostatniej linii kodu celem sprawdzenia czy nie następuje zawieszenie na którejś z flag od I2C. Kod nie wykonuje się w całości wobec tego przypuszczam, że jest coś nie tak z konfiguracją samego I2C bądź sprawdzam...
Witam Chciałem oprogramować połączenie procesora z układem RTC po i2c. Połączenie jest nawiązywane, dane są odbierane ale kiedy pętla whlie ponownie wróci do początku transmisji nie przechodzi już nadania STARTu. [syntax=c] I2C_GenerateSTART(I2C1, ENABLE); while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT)); I2C_Send7bitAddress(I2C1, 0xD0, I2C_Direction_Transmitter);...
Jest to tylko część kodu. Kod Mastera void twiinit(void) { TWSR=(1<<TWPS0)|(0<... //preskaler TWBR=17; // TWCR = (1<<TWEN)|(1<<TW... } void I2CSendStart() { TWCR = (1<<TWINT)|(1<<T... while (!(TWCR...
transmitter schemat pilot transmitter transmitter bluetooth
amerisolar panele słaby wynik 3dmark podłączenie głośnika bluetooth
obliczanie wyciagarki sterowania nawiewem
Podłączenie kabli z kondensatora w odkurzaczu Zelmer Meteor Briggs & Stratton - Nie można zgasić silnika z kluczyka