-
1. Data: 2009-11-15 00:16:20
Temat: Jaki mikrokontroler wybrać...
Od: "Marcin Wasilewski" <j...@a...pewnie.je.st>
Chcę sobie dorobić komputerek zliczający zużytą energię, z przeliczeniem na
koszt w zł., wyliczający średnie zużycie dzienne/miesięczne/roczne.
Prognozowane zużycie itp.
Jako źródło danych będę używał tego licznika, który już posiadam:
http://www.fif.com.pl/produkt/55/793
I teraz, ponieważ mam plan dwutaryfowy potrzebuję czegoś, co:
- ma zegar czasu rzeczywistego,
- ma pamięć flash (aby w razie zaniku napięcia w sieci dane nie zostały
utracone,
- jakiś licznik impulsów w postaci rejestru,
- potrafi bezpośrednio odczytywać sygnały o nap. około 12V, tzn. potrafi bez
zbędnej komplikacji odczytać impulsy z powyższego licznika,
- pozwala na prostą komunikację z pecetem w celu odczytu co jakiś czas
danych, najchętniej poprzez sieć ethernet,
- pozwala wysterować jakiś wyświetlacz tekstowy LCD.
Trochę szperałem po sieci i znalazłem na allegro takie coś:
http://allegro.pl/item805036040_modul_uruchomieniowy
_atmega_16_usb_lcd_led_isp.html
Wygląda nieźle, ale mam obawy czy da się w jakiś prosty sposób podłączyć do
tego ten licznik, co powyżej. Jak to zrobić najprościej?
Kiedyś (lat temu 10) bawiłem się hobbystycznie elektroniką, ale miałem sporą
przerwę.
Sterowałem za pomocą złącza równoległego w amidze różnymi urządzeniami, ale
nie mam pojęcia jak obsłużyć USB, kartę SD, czy ethernet w takiej zabawce.
Czy są dostępne gotowe biblioteki do obsługi tego typu urządzeń I/O. Czy
taki moduł posiada jakąś namiastkę systemu operacyjnego, za pośrednictwem
którego można mieć dostęp do urządzeń I/O w jakiś sensowny sposób? Np.
dostęp do protokołu TCP/IP?
Może możecie wskazać jakieś ciekawe strony o współczesnych mikrokontrolerach
dla zielonych w tym temacie?
-
2. Data: 2009-11-15 12:50:20
Temat: Re: Jaki mikrokontroler wybrać...
Od: Konop <k...@g...pl>
> http://www.fif.com.pl/produkt/55/793
> - ma zegar czasu rzeczywistego,
To nie problem
> - ma pamięć flash (aby w razie zaniku napięcia w sieci dane nie zostały
> utracone,
Raczej szukasz takiego z pamięcią EEPROM. Niektóre mają także
podtrzymywaną baterią pamięć RAM. Pamięć EEPROM można dodać na zewnątrz
(mały scalak 8-pin).
> - jakiś licznik impulsów w postaci rejestru,
O co dokładnie chodzi?? O licznik sprzętowy?????
Sądzę, że korzystanie ze sprzętowego licznika będzie zbędne (jeśli idzie
o pomiar zużytej energii), jeśli chcesz liczyć zużycie chwilowe, to się
przyda :)... Ale ma to chyba każdy mikrokontroler...
> - potrafi bezpośrednio odczytywać sygnały o nap. około 12V, tzn. potrafi bez
> zbędnej komplikacji odczytać impulsy z powyższego licznika,
A kto napisał, że w.w. licznik podaje impulsy 12V??!! On ma wyjście typu
OC...
> - pozwala na prostą komunikację z pecetem w celu odczytu co jakiś czas
> danych, najchętniej poprzez sieć ethernet,
Poprzez sieć ethernet już nie jest tak prosto... Poza tym - pytanie, czy
chcesz wysyłać pakiety i odbierać je dedykowaną aplikacją, czy chciałbyś
mieć dostęp "przez przeglądarkę"??
> - pozwala wysterować jakiś wyświetlacz tekstowy LCD.
Nie znam układu, który by nie był w stanie tego zrobić ;)... poza tymi,
które mają za mało pinów ;)...
> Trochę szperałem po sieci i znalazłem na allegro takie coś:
> http://allegro.pl/item805036040_modul_uruchomieniowy
_atmega_16_usb_lcd_led_isp.html
> Wygląda nieźle, ale mam obawy czy da się w jakiś prosty sposób podłączyć do
> tego ten licznik, co powyżej. Jak to zrobić najprościej?
Podłączenie licznika to żaden problem. Albo robi się to WPROST albo
przez optoizolator (zależy czy na pinach SO+ i SO- występuje napięcie
czy nie i czy są połączone z siecią...)
> Sterowałem za pomocą złącza równoległego w amidze różnymi urządzeniami, ale
> nie mam pojęcia jak obsłużyć USB, kartę SD, czy ethernet w takiej zabawce.
> Czy są dostępne gotowe biblioteki do obsługi tego typu urządzeń I/O. Czy
> taki moduł posiada jakąś namiastkę systemu operacyjnego, za pośrednictwem
> którego można mieć dostęp do urządzeń I/O w jakiś sensowny sposób? Np.
> dostęp do protokołu TCP/IP?
A po co Ci dostęp do TCP/IP, jeśli ten moduł nie ma obsługi
Ethernetu??!! Powiem tak - nie ma na tym systemu operacyjnego, to nie
ten typ urządzeń... Najprościej łączyć się z komputerem przez port COM,
można używać USB i wirtualnego portu COM (z punktu widzenia komputera i
mikrokontrolera widziany jest normalny interfejs szeregowy, konwersję na
USB robi układ FT232 obecny na płytce). No ale to tylko na kilka m
będzie działać....
Pozdrawiam
Konop
-
3. Data: 2009-11-15 13:59:27
Temat: Re: Jaki mikrokontroler wybrać...
Od: "Marcin Wasilewski" <j...@a...pewnie.je.st>
Użytkownik "Konop" <k...@g...pl> napisał w wiadomości
news:hdote8$lr4$1@inews.gazeta.pl...
>> http://www.fif.com.pl/produkt/55/793
>> - ma zegar czasu rzeczywistego,
> To nie problem
>> - ma pamięć flash (aby w razie zaniku napięcia w sieci dane nie zostały
>> utracone,
> Raczej szukasz takiego z pamięcią EEPROM. Niektóre mają także
> podtrzymywaną baterią pamięć RAM. Pamięć EEPROM można dodać na zewnątrz
> (mały scalak 8-pin).
Dlaczego pamięć flash się wg ciebie do tych zastosowań nie nadaje?
>> - jakiś licznik impulsów w postaci rejestru,
> O co dokładnie chodzi?? O licznik sprzętowy?????
> Sądzę, że korzystanie ze sprzętowego licznika będzie zbędne (jeśli idzie o
> pomiar zużytej energii), jeśli chcesz liczyć zużycie chwilowe, to się
> przyda :)... Ale ma to chyba każdy mikrokontroler...
No wydaje mi się (ale może się nie znam), że sprzętowy licznik jest
przyjemniejszy w odczytywaniu, niż np. obsługa wejścia I/O na przerwaniach,
ale może się nie znam.
>> - potrafi bezpośrednio odczytywać sygnały o nap. około 12V, tzn.
>> potrafi bez zbędnej komplikacji odczytać impulsy z powyższego
>> licznika,
> A kto napisał, że w.w. licznik podaje impulsy 12V??!! On ma wyjście typu
> OC...
Czyli jak to najprościej obsłużyć?
Np. SO+ łączę z +5V mikrokontrolera, poprzez rezystor 330 ohm,
SO- łączę z wejściem I/O mikrokontrolera i z masą mikrokontrolera
poprzez rezystor 10k. I rozumiem, że na wejściu wysterowanym na 0 poprzez
rezystor 10k wpięty do masy, podczas trwania impulsu uzyskam logiczną
jedynkę?
>> - pozwala na prostą komunikację z pecetem w celu odczytu co jakiś czas
>> danych, najchętniej poprzez sieć ethernet,
> Poprzez sieć ethernet już nie jest tak prosto... Poza tym - pytanie, czy
> chcesz wysyłać pakiety i odbierać je dedykowaną aplikacją, czy chciałbyś
> mieć dostęp "przez przeglądarkę"??
No tak by było fajnie, tylko to pewnie już jakiś system operacyjny jest
potrzebny z obsługą stosu TCP/IP i miniserwerem http.
>> - pozwala wysterować jakiś wyświetlacz tekstowy LCD.
> Nie znam układu, który by nie był w stanie tego zrobić ;)... poza tymi,
Powiem tak - nie ma na tym systemu operacyjnego, to nie
> ten typ urządzeń... Najprościej łączyć się z komputerem przez port COM,
> można używać USB i wirtualnego portu COM (z punktu widzenia komputera i
> mikrokontrolera widziany jest normalny interfejs szeregowy, konwersję na
> USB robi układ FT232 obecny na płytce). No ale to tylko na kilka m będzie
> działać....
Do moich potrzeb wystarczy.
PS. są jakieś gotowe moduły z procesorami serii 68000 na pokładzie? Bo
jednak assembler m68k jest dużo przyjemniejszy od tego ATMEL-a. Chociaż z
drugiej strony ten atmel i tak posiada sporo więcej rejestrów niż procki
pecetowskie.
-
4. Data: 2009-11-15 20:05:24
Temat: Re: Jaki mikrokontroler wybrać...
Od: Mario <m...@p...onet.pl>
Marcin Wasilewski pisze:
> Chcę sobie dorobić komputerek zliczający zużytą energię, z przeliczeniem na
> koszt w zł., wyliczający średnie zużycie dzienne/miesięczne/roczne.
> Prognozowane zużycie itp.
>
> Jako źródło danych będę używał tego licznika, który już posiadam:
>
> http://www.fif.com.pl/produkt/55/793
>
> I teraz, ponieważ mam plan dwutaryfowy potrzebuję czegoś, co:
>
> - ma zegar czasu rzeczywistego,
> - ma pamięć flash (aby w razie zaniku napięcia w sieci dane nie zostały
> utracone,
> - jakiś licznik impulsów w postaci rejestru,
> - potrafi bezpośrednio odczytywać sygnały o nap. około 12V, tzn. potrafi bez
> zbędnej komplikacji odczytać impulsy z powyższego licznika,
> - pozwala na prostą komunikację z pecetem w celu odczytu co jakiś czas
> danych, najchętniej poprzez sieć ethernet,
> - pozwala wysterować jakiś wyświetlacz tekstowy LCD.
>
Zegar czasu rzeczywistego i przechowywanie danych możesz zrealizować na
osobnym układzie np DS1307 z podtrzymaniem bateryjnym. Ma 64 bajty RAM i
zegar. Do tego dowolny procek który będzie ci łatwo poznać. Np coś z
rodziny AVR. Zaletą jest dobre darmowe środowisko np WinAVR. Mozesz też
zapisywać dane do wbudowanej pamięci EEprom po wykryciu zaniku napięcia.
Do USB możesz zastosować FT323R albo bawić się w biblioteki CDC tla AVR.
--
Pozdrawiam
MD
-
5. Data: 2009-11-16 17:37:59
Temat: Re: Jaki mikrokontroler wybrać...
Od: Konop <k...@g...pl>
>>> - ma pamięć flash (aby w razie zaniku napięcia w sieci dane nie zostały
>>> utracone,
>> Raczej szukasz takiego z pamięcią EEPROM. Niektóre mają także
>> podtrzymywaną baterią pamięć RAM. Pamięć EEPROM można dodać na zewnątrz
>> (mały scalak 8-pin).
> Dlaczego pamięć flash się wg ciebie do tych zastosowań nie nadaje?
ZTCP to pamięci Flash zapisuje się blokami, kasuje się blokami itp.
Sposób obsługi jest po prostu bardziej złożony. Pamięci EEPROM mają poza
tym większą liczbę cykli, więc możesz częściej je zapisywać przy tej
samej żywotności układu. Przy bardzo małych ilościach danych nie ma
sensu wchodzić we Flash'a.
>>> - jakiś licznik impulsów w postaci rejestru,
>> O co dokładnie chodzi?? O licznik sprzętowy?????
>> Sądzę, że korzystanie ze sprzętowego licznika będzie zbędne (jeśli idzie o
>> pomiar zużytej energii), jeśli chcesz liczyć zużycie chwilowe, to się
>> przyda :)... Ale ma to chyba każdy mikrokontroler...
> No wydaje mi się (ale może się nie znam), że sprzętowy licznik jest
> przyjemniejszy w odczytywaniu, niż np. obsługa wejścia I/O na przerwaniach,
> ale może się nie znam.
Piszesz procedurę obsługi przerwania, która robi inkrementację zmiennej
;)... proste :)... a tak na serio - jeśli układ dostaje częstotliwość
typu FCPU/4 na wejście, to programowo tego nie zliczysz, sprzętowo tak
;)... policz sam jakiej częstotliwości impulsów się spodziewasz.
Oczywiście zawsze możesz stosować licznik sprzętowy, ale chodzi mi o to,
że w tym wypadku realizacja tego programowo nie będzie żadnym
utrudnieniem :)...
>>> - potrafi bezpośrednio odczytywać sygnały o nap. około 12V, tzn.
>>> potrafi bez zbędnej komplikacji odczytać impulsy z powyższego
>>> licznika,
>> A kto napisał, że w.w. licznik podaje impulsy 12V??!! On ma wyjście typu
>> OC...
>
> Czyli jak to najprościej obsłużyć?
>
> Np. SO+ łączę z +5V mikrokontrolera, poprzez rezystor 330 ohm,
> SO- łączę z wejściem I/O mikrokontrolera i z masą mikrokontrolera
> poprzez rezystor 10k. I rozumiem, że na wejściu wysterowanym na 0 poprzez
> rezystor 10k wpięty do masy, podczas trwania impulsu uzyskam logiczną
> jedynkę?
Ja bym podłączył SO+ do pinu mikrokontrolera, a SO- do masy :)... jeśli
połączenie będzie krótkie - zadziała :). Można dać 1k szeregowo między
SO+ i pin celem zabezpieczenia. Ew. więcej, ale wtedy podciągnięcie do
plusa realizować po stronie SO+, a nie pinu procesora... Większość
procesorów ma możliwość sprzętowego podciągnięcia swojego wejścia do
zasilania...
>> ten typ urządzeń... Najprościej łączyć się z komputerem przez port COM,
>> można używać USB i wirtualnego portu COM (z punktu widzenia komputera i
>> mikrokontrolera widziany jest normalny interfejs szeregowy, konwersję na
>> USB robi układ FT232 obecny na płytce). No ale to tylko na kilka m będzie
>> działać....
>
> Do moich potrzeb wystarczy.
No to tak będzie najprościej :)... szukaj pod FT232R (inne wersje niż R
też mogą być, ale wymagają więcej elementów dookoła, więc nie polecam
:)). I wystarczy Ci dowolny mikrokontroler ze sprzętowym UARTem (prawie
każdy :)). Producent układu FT232 udostępnia sterowniki na Winde,
Linucha i na MACa :)... pod tymi systemami taki układ będziesz widział
jak zwykły port COM.
> PS. są jakieś gotowe moduły z procesorami serii 68000 na pokładzie? Bo
> jednak assembler m68k jest dużo przyjemniejszy od tego ATMEL-a. Chociaż z
> drugiej strony ten atmel i tak posiada sporo więcej rejestrów niż procki
> pecetowskie.
Chcesz to w ASM pisać?? Nie lepiej w C albo w Bascomie (skoro to
pojedynczy projekt)??