Nie rozumiesz. W mojej specyficznej sytuacji FT232 jest całkowicie zbędny. Nie potrzebuje żadnej komunikacji poza zmianą softa! Podczas zmiany softa AVR i tak nic nie będzie robił (przy FT też by nic nie robił) - wiem że będzie szybciej przy FT ale to kwestia 3s zamiast 6s (dla mnie i 10min mogło by być). Byłem przygotowany na to że będziecie mnie odciągać od tego pomysłu (zresztą ja sam miałem już na płytce narysowane wszystkie połączenia pod FT) ale ja FT nie chce.
Analziuje kod bootloadera: znalazłem taką definicje preprocesora w pliku nagłówkowym która jest chyba kluczowa dla wprowadzenia uruchamiania bootloadera z MENU (domyślnie jest ze zworki D7 (JUMPER_BIT = 7)):
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
[pomiędzy PIND a (1.. jest operator bitowy AND -nie wiem czemu się tak dziwnie na forum wyświetla]
Z tego co rozumiem bootloader sparawdza warunek( domyślnie jest to stan zworki) zaraz po włączeniu układu. Jeśli zworka jest zwarta uruchamia się całe wnętrze bootloadera , po wgraniu softa AVR musi zostać zresetowany. W przeciwnym razie (zworak otwarta) wykonuje się mój program.
Ja jednak potrzebuje zrobić tak aby użykownik wybierał sobie z MENU opcje ,że chce zaktualizować soft. W związku z tym wymyśliłem, że bootloader będzie sprawdzał (zamiast stanu zworki) zawartość pewnej komórki w EEPROM. Jeśli będzie domyślna(1) bootloader się nie uruchomi, jeśli (0) uruchomi się.
W związku z tym wymyśliłem że po wybraniu opcji w MENU zostanie zmieniona wartość tej komórki w EEPROM a następnie AVR zostanie programowo zresetowany (np przez watchdog). Na LCD zostanie ekran że "proszę wgrać softa". W tym czasie bootloader będzie aktywny. Ostatnią operacją którą bootloader wykona po wgraniu softa będzie ustawienbie na nowo 1 w EEPROM i programowy reset (
lub reset nie jeśli to zbędne. zbędne?). dobrze to wymyśliłem?
Oczywiście może dojść do pomyłek polegających np. na wgraniu wadliwie działającego softa(uniemożliwiającego zmianę stanu komórki w EEPROM i tym samym dostęp do bootloadera) dlatego można wprowadzić alternatywny sposób uruchamiania bootloadera właśnie ze zworką czy coś w tym stylu która była by wewnątrz obudowy np. koło baterii <-- oczywiście ten sposób byłby niewygodny i mniej efektowny (LCD by nic nie wyświetlał itp) ale to rozwiązanie "serwisowe", awaryjne.Wszystkie te moje pomysły zakładają że bootloader może tylko włączyć się na początku, więc zasadnicze pytanie
czy istnieje możliwość wywołania bootloadera np w środku programu?