A jak w święta masz spokój a w dzień roboczy się zacznie, to jaka będzie według Ciebie przyczyna? Może faktycznie jakiś zakład produkcyjny robi na granicy zwarcia jak spawarka na wsi na końcu 7 kilometrowej linii, wtedy napięcie siada w rytm spawania w całej wiosce Asterixa...
To były tylko przykłady urządzeń, które mogą "siać" i są albo powszechne, albo mają duży zasięg - tak naprawdę pewnie nigdy się nie wyjaśni co to jest naprawdę.
Jak zaczynałem zabawę z elektroniką to miałem przypadek migającej diody na ne555 - jedno połączenie było źle zrobione i jak się zbliżyło rękę do układu to w okolicy południa działał a pod wieczór nie. Układ zasilany z baterii 9V, więc tylko człowiek robił za antenę dla jakiegoś sygnału - ale jakiego nie mam pojęcia.
Tak. Ale programowo się nie da. Próbowałem odpowiednimi bitami wyłaczyć pracę USB, ale się nie wyłącza. Jedyne co widzi, to odpięcie kabla USB. Czyli musiałbym dać tranzystory odcinający +5V z linii USB podpięte do lini VBUS procka.
Tylko kiedy już pada, to pada co chwilę, więc miałbym na okrągło przerwy w transmisji - rozłączenie USB, rozłączenie wirtualnego COM, połączenie USB, otwarcie wirtualnego COM, nawiązanie połączenia. I tak w kółko.
Przy następnych testach znajomego zrobię jeszcze jedną próbę - notebook tylko ma baterii, a elektronika z akumulatora.
To wykluczy przełażenie śmieci od sieci energetycznej. Pozostanie tylko fala EM albo promieniowanie kosmiczne. Wtedy wszystko wpakuje do metalowej skrzynki i zobaczę jaka będzie reakcja.
To jeszcze z cyklu "wtf" - zrobiłem kumplowi włącznik światła na pilota
- wszystko było ok, ale co kilka dni przestawał działać - jak się zgrało zapisany w eepromie kod i porównało z nowo zaprogramowanym to się różniło kilka bitów. Podejrzewałem wszystko od błędów w firmware przez niestabilny temperaturowo wbudowany RC po wadliwą serię (bo 2 procesory działały tak samo).
Wziąłem nowy uC i ustawiłem fuse bity - działało. Okazało się, że procesorom które używałem do developowania przez przypadek ustawiłem BOD na 1.8V - przy padającym zasilaniu zmieniały się wartości w pamięci a procesor mimo to był jeszcze w stanie uznać, że zaprogramowano nową wartość i zapisać ją w eepromie.
Dzisiaj dostałem procka. Narazie poświeciłem 2 dni i na szybko napisałem sobie soft (proste środowisko programowe korzystające z GCC) i program do programowania procka korzystający z jego bootloadera i możliwości ładowania softu przez USART.
Jak będę miał na weekend trochę wolnego, to go sobie potestuję. Napiszę na szybko jakiś RTOS. Jeśli nie będzie odstawiał cudów jak Atmel, to zrobię USB-CDC i zobaczę czy nie będzie się i z tym wygłupiał.
Dobre podejście, bo "fabryczna aplikacja" do ładowania po uarcie to porażka... No ale usprawiedliwieniem jest to, że to niby tylko przykład. A udostępniona lista komend bootloadera umożliwia wyskrobanie swojej wersji.
Pozostaje mi zatem życzyć powodzenia! Trochę ci zazdroszczę, bo już dłuższy czas nie mam możliwości się pobawić w coś poważniejszego na tych prockach :-(
No ja właśnie mam trochę takich większych tematów. Poza tym mam też parę projektów na AVR32 i nie wiem czy nie przerzucić ich na STM32.
Tyle co wyskrobałem narazie:
formatting link
Samo środowisko narazie bardzo proste. Chciałem zastosować SynEdit do kolorowania składni ale wersja która chodzi na moim Delphi4 wywala się na tabulacji, więc chyba będę musiał także i edytor napisać samemu (przyda się też do innych rzeczy).
Cała tajemnica działania edytora to pliki MCF w katalogu types.
Dzisiaj próbuję ruszyć procka. Konfiguracja zagarów, porty IO, przerwania, USART. Jak to będzie to potem USB.
Już zdążyłem wyskrobać e-maila do ST odnośnie nieścisłości w PDFie. Raz piszą że tag dla LDREX, STREX jest zdejmowany automatycznie przez procka przy exception, w innym miejscu że w excpetion handler można użyć CLREX aby wymusić zdjęcie taga. Więc albo procek robi to automatycznie w odpowiedzi na zdarzenie, albo trzeba to w obsłudze zdarzenia robić samemu przez CLREX.
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.