-
Data: 2016-05-30 01:41:27
Temat: Re: Jaki? pomys? na komunikacj? po 1 drucie bez obci?zania cpu?
Od: a...@m...uni.wroc.pl szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Sebastian Bia?y <h...@p...onet.pl> wrote:
> Cze??.
>
> Problem: w pewnym cpu zosta? mi 1 pin. Chce podpi?c wy?wietlacz i
> klawiatur?, odleg?o?? na?cie cm, pr?dko?? znikoma.
>
> Wstawiam wi?c drugi cpu.
>
> Cpu1 to avr, cpu2 mo?e by? byleczym.
>
> Teraz: cpu1 jest *bardzo* zaj?ty. Gdzie? ko?o 90% mocy w przerwaniach,
> dwa timery wolne. W g?ownej p?tli programu mam chwil? (nier?wnomierne)
> na obs?ug? czego?, co jakie? 1000-3000 cykli 20MHz. Cpu2 od wy?wietlacza
> (2x16) i klawiatury nie ma nic do roboty.
>
> No i teraz si? zastanawiam, czy jest jaki? pomys? na komunikacj? po 1
> drucie w *dwie* strony:
>
> a) nie obci?za cpu sztucznymi p?tlami op??niaj?cymi
> b) nie wymaga szybkiego poolingu na liniach
> c) mo?e korzysta? z hardware cpu, prawie wszystko wolne (pwm, timery,
> uart itd)
> d) da rad? wys?a? jakie? 100 bajt?w / sek i odebra? 10 bajt?w sek
> (jako?? obs?ugi).
>
> Oczywi?cie od razu nasuwa sie 1-wire, ale powtarzam: nie mam cpu dla
> siebie.
Oczywistym rozwiazaniem jest UART w half-duplex. 1-wire to nie jest
dobry pomysl, bo przy ustalonej szybkosci transmisji wymaga duzo
lepszej rozdzielczosci czasowej niz UART. Niekture procesory
(np. STM32) maja UART sprzetowo wspierajacy half-duplex,
w AVR nie zauwazylem takiej mozliwosci... Programowo UART
mozna zrobic z timera kosztem jednego przerwania na bit.
Tzn. uzywasz timer do pomiaru czasu miedzy zboczami
przy odbiorze, przy nadawianiu machasz GPIO z przerwania
timera. 1200 bitow na sekunde powinno Ci wystarczyc, wiec
jak zniesiesz dodatkowe 1200 przerwan to bedzie OK.
Mozesz uzyc tez kombinowane rozwiazanie: sprzetowy UART
do odbioru, softwarowy (na tej samej linii) do nadawania.
Jeszcze jeden pomysl: sporo CPU ma UART-y ktore moga
odbierac np. 5MHz. Wiec z AVR mozesz nadawac z duza
szybkoscia, tak ze bajt zajmie powiedzmy 2us. Na tyle
pewnie mozesz zablokowac przerwania.
--
Waldek Hebisch
Następne wpisy z tego wątku
- 30.05.16 08:19 jacek pozniak
- 30.05.16 10:09 Piotr Gałka
- 30.05.16 12:12 Czarek Grądys
- 30.05.16 15:07 AlexY
- 30.05.16 15:18 Marek
- 30.05.16 18:31 Jakub Rakus
Najnowsze wątki z tej grupy
- starość nie radość
- Ataki hakerskie
- Akumulatorki Ni-MH AA i AAA Green Cell
- Dławik CM
- JDG i utylizacja sprzetu
- Identyfikacja układ SO8 w sterowniku migających światełek choinkowych
- DS1813-10 się psuje
- Taki tam szkolny problem...
- LIR2032 a ML2032
- SmartWatch Multimetr bezprzewodowy
- olej psuje?
- Internet w lesie - Starlink
- Opis produktu z Aliexpress
- No proszę, a śmialiście się z hindusów.
- Zewnętrzne napięcie referencyjne LM385 1,2V -> 100mV dla ICL7106, Metex M-3800
Najnowsze wątki
- 2024-12-11 Motodziennik #305 Nowy ELEKTRYK za 350 złotych miesięcznie? Kreatywne kredytowanie problemów
- 2024-12-11 Warszawa => Spedytor Międzynarodowy <=
- 2024-12-11 Katowice => Key Account Manager (ERP) <=
- 2024-12-11 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-11 Idzie zima...czyli zaczynamy TETRIS :)
- 2024-12-11 Warszawa => Analityk w dziale Trade Development (doświadczenie z Powe
- 2024-12-11 Warszawa => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2024-12-11 Warszawa => Full Stack .Net Engineer <=
- 2024-12-11 Dyski HDD SATA 2,5'' >2TB
- 2024-12-11 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2024-12-11 Warszawa => System Architect (Java background) <=
- 2024-12-11 Warszawa => System Architect (background deweloperski w Java) <=
- 2024-12-10 sprężyny przednie ściśnięte
- 2024-12-10 Warszawa => SEO Specialist (15-20h tygodniowo) <=
- 2024-12-10 Warszawa => Senior Frontend Developer (React + React Native) <=