суббота, 11 мая 2013 г.

Термометр с памятью. Часть 1. Выбор компонентов.

Честно признаюсь, эту страницу, спустя пол года, а то и больше, пришлось полностью переписать. А связано это вот с чем. После сбора первого прототипа устройства, я нашел много проблем, нестыковок и прочих недочетов, которые необходимо переделать. Для начала приведу структурную схему первоначального устройства.

Рисунок 1 - Первоначальная структурная схема термометра
Рисунок 2 - Структурная схема питания устройства

Рисунок 3 - Первый прототип

Ну а теперь обо всем по-порядку:

1. Начну с часов реального времени. Изначально, я планировал всю периферию посадить на шину I2C и использовать часы DS1307, но как оказалось они работают минимум от 4.5 В. Тогда выбор пал на DS1302, которые работают от 2 до 5 В. Все бы ничего, но они работают по последовательному интерфейсу, на подобии SPI, а также у них отсутствует выход прерывания. В связи с этим, микроконтроллеру приходилось бы периодически просыпаться и узнавать точное время, чтобы не проспать следующее измерение. А это, в свою очередь ведет к уменьшению времени автономной работы. Ну и еще из минусов - пришлось писать программную реализацию последовательного интерфейса для коммуникации с часами.
Немного побродив по просторам интернета, я наткнулся на часы DS1337. Питание от 1.8 В, I2C, два будильника (с выходами прерывания) и корпус uSOP-8 - да они просто идеальны для моего устройства! В общем на них я и остановлюсь.

2. Неизменной частью останется EEPROM AT24C256, но я думаю оставить на плате разводку под вторую микросхему того же типа и емкости.

3. Датчик температуры в самых первых моих мыслях планировался LM35, но из-за дороговизны и малой точности я решил заменить его на LM75. Малое потребление, интерфейс I2C, который позволяет посадить на одну шину до 8 таких датчиков, не прибегая к увеличению количества сигнальных линий, хорошая точность (у NXP используется АЦП 11 бит) - пожалуй на нем и остановлюсь.

4. Для связи с ПК была выбрана микросхема USB-UART FT232RL, но после построения первого прототипа, я решил от нее отказаться и заменить на более дешевый аналог CP2102.
А причиной этого был сильный нагрев FT232RL при подключении по USB.

5. Автономное питание будет выбираться на самой последней стадии по результатам испытаний при минусовых температурах, о нем мы еще поговорим.

6. Ну и в заключении нужно выбрать "мозг" термометра - управляющий микроконтроллер.
Изначально был выбран и использован в прототипе микроконтроллер ATmega8a, в корпусе с 32 выводами (TQFP-32). В принципе его и оставлю. Была мысль поставить ATtiny44a так как он потребляет меньше энергии, но в нем к сожалению нет UART для связи с ПК.

В итоге имеем новую структурную схему. Схема питания остается прежней.

Рисунок 4 - Итоговая структурная схема термометра