Coś mi się obiło o uszy/oczy że w momencie resetu LPC2103 ustawia swoje linie I/O w stan wysoki niczym stary niedobry '51. W manualu do tegoż proca nie mogę wygrzebać nic na ten temat. Czy ktoś może potwierdzić/zaprzeczyć? Ew. jakich jeszcze pułapek, niespodzianek i nietypowych rzeczy powinienem się spodziewać projektując swój pierwszy układ z LPC2103? O linii P0.14 już wiem.
LPC2103 i stan linii w czasie resetu/inne niespodzianki
May 18, 2009
18 Replies
__Maciek pisze:
Nie tyle w stan wysoki, co (identycznie jak '51) w stan podciągnięcia do zasilania... Jest to o tyle ważne, że typowy stan wysoki, to jednak pełne VCC z pewną wydajnością prądową, a '51 takiego stanu w ogóle nie posiadał ;)... W czasie pracy możesz wyłączyć rezystory podciągające...
No to taki główny bonus jakim producent użytkowników uraczył ;)... dodam, że jeśli jeszcze nie przegryzłeś się przez dokumentacje, to zapewniam Cie, że to zrobisz ;)... jest jakoś mało przyjaźnie napisana (przynajmniej do innego LPCka jakiego używałem ;P)...
Pozdrawiam Konop
Konop pisze:
Coś nie widzę rejestru PINMODE w 2103. Gdzie się włącza/wyłącza te pull-upy?
Racja, wycofuję się z tego co powiedziałem! Dzięki za sprostowanie :). Wydawało mi się, że ten LPC też miał PINMODE...
Pozdrawiam Konop
Konop pisze:
Atmelowe ARMy mają tak samo. Może to już taki "wynalazek" związany z samym jądrem ARM?
Adam Dybkowski pisze:
To najwidoczniej w ST mają jakiś mocnych chakierów, skoro potrafili ustawić IO na starcie w stan Z :-)
Zbych pisze:
No rzeczywiście kupa roboty - dorzucić bufory 3-stanowe na każdym pinie i sterować sygnałem resetu. Ale w każdym razie zachowanie pożądane.
Adam Dybkowski pisze:
Nie opowiadaj bajek . Jeśli atmel i nxp włącza podciąganie na starcie, to nie dlatego, że ich inżynierowie się zakochali w 51, tylko pewnie mieli problem z prądem pobieranym przez wiszące w powietrzu bufory. Bufory IO w STM32 wyglądają na lepiej przemyślane i bardziej elastyczne (można nawet ustawiać prędkość narastania sygnału).
Zbych pisze:
To chyba nie wina Atmela ogólnie, bo jakoś w AVRach potrafili zrobić Hi-Z w czasie resetu i nie spowodowało to dużego prądu statycznego.
Ale to akurat zaleta ze na starcie stan procesora jest okreslony ..
J.
J.F. napisal(a):
Dokladnie. To byla jedna z przyczyn dla ktorych iles tam lat emu przeskoczylismy z 51 na AVR. W 51 potrzebnych jest podczas resetu iles tam cykli zegarowych aby procesor wygenerowal jedynki na portach. W AVR od powerup jest HiZ.
J.F. pisze:
Może to kwestia niższego wymiaru technologicznego?
No dobra, tylko czemu nie wybrali pull-downów zamiast pull-upów? :-)
Zbych pisze:
Ależ stan Hi-Z podczas resetu (i domyślnie po resecie) jest najlepszym rozwiązaniem - bo czasem do jakiegoś pinu chcesz podłączyć układ aktywny zerem (albo chociażby P-MOS coś włączający), a czasem jedynką. Pull-up'y i pull-down'y można zrobić zewnętrzne z ulubionych rezystorków (ja np. używam najczęściej 100k).
A '51 narzucała, że piny są ze "słabą" jedynką i nie było gadania, że coś się wtedy włączy. Trzeba było dawać inwerter albo inaczej zaprojektować okolice. Dlatego też niezrozumiałe dla mnie jest, dlaczego Atmel w ARMach nie dał Hi-Z na czas resetu.
A inni by narzekali ze za duzo opornikow trzeba dawac :-)
J.
J.F. pisze:
Jako full-wypas mogliby zrobić indywidualną konfigurację zachowania każdego pinu I/O podczas resetu/domyślny stan po resecie. 5 możliwości: VCC, GND, pull-up, pull-down, Hi-Z. Na przykład fusebitami.
Adam Dybkowski pisze:
Nie musisz mi tego tłumaczyć. Pisałem to zdanie w kontekście domyślnie włączonych pull-upów - z dwojga złego wolałbym pull-down. Przynajmniej ATMEL nie miałby problemów z ich "przeciekaniem" po podaniu 5V na pin.
Tylko jak?
Po resecie to juz nie problem. A fusebity sa _chyba_ czytane po resecie.
Jerry1111 pisze:
Fusebitami.
Nie wszystkie. Niektóre chyba wcześniej - lockbity działają także podczas resetu (programowanie ISP jest przecież podczas resetu). Fusebity także już podczas resetu określają taktowanie procka.
Chyba jednak najbezpieczniej miec Hi-Z.
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required