Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Термодатчиик+МК+RS232
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам
armin
Добрый день! Нужна помощь спецов! У меня есть задача: Собрать устройсво вывода значений температуры с помощью микроконтроллера (МК) и термодатчика AD7814 на компьютер. Цель использования компьтера – контроль правильности работы устройства (показания на компе должны соответствовать показаниям на датчике). Это устройство не нужно собирать ”вживую”, можно просемулировать в Proteus ISIS. Так как в датчике используется интерфейс SPI, то я использую другой термодатчик – TC72, он аналогичен AD7814 (просто у меня нету AD7814 в библиотеке для симуляции). Для отображения инфы думаю использовать Virtual Terminal – RS-232 протокол (данные подавать на RXD). МК думаю взять PIC16C63A, так как у него есть апаратный интерфейс SPI и USART.
Вот такая задачка, но тут есть проблемки с которыми мне сложновато разобратся:
1)Основной принцип SPI протокола в общем вроде понятно – последовательная передача данных синхронизированных SCK, но вот смотрю на диаграмму считывания или записи в даташите на TC72 и не могу догнать эелементарщину...что такое MSb и LSb, как называються эти биты? Типа старший и младшие биты? И какие биты передавать по линии SDI (А7-А0) в режиме чтения, для того что б на линию SDO вывелась нужная инфа (D7-D0)? И почему передаються за раз не 10 бит, а 8, датчик то 10-битный? Режим записи аналогично, там вообще на линию SDI идёт два байта, сначала от А7-А0, а потом D7-D0, что это? (см.стр 5 в даташите на TC72)
2)Можно как-то не писать программу на компе под RS-232, так как я в этом не бум-бум (пока), есть ли какие-то готовые проги, где не трудно подстроить её под себя, и вывести эту инфу с датчика?
3)Сам программировал пока PIC16F84A, пару элементарных устройств получилось, даже на ЖКИ вывел пару строк, но ещё хорошо его не знаю, пока боюсь слов прерывание и таймер laughing.gif
Вот основные ”палки в колёсах”, помогите пожалуйста разобратся в этом и расставить всё по полочкам, ссылки на литературу, всё что мне поможет, ну и свои советы само собой, скоро сесия, нужно доделать задание. Зарание спасибо!
Сергей К
Я бы посоветовал МК PIC16F628A. Это усовершенствованый аналог PIC16F84A и он дешевле. У него есть аппаратный UART.
Компилятор можете взять CCS, у него есть заготовки под работу с UART. SPI-интерфейс легко можно сделать и самому (я делал SPI для AD7792 на PIC12F628 с программным UART).
armin
Забыл сказать - программирую на ассемблере, поэтому и проги желательно на нём что б были, понятно, что Си проще, но я его не знаю так хорошо как хотелось бы, да и в задании у меня сказано, что выполнить нужно на ассемблере...

ЗЫ:Чем дальше лезу в эти "дебри", тем больше понимаю, что я ещё ничего не знаю... wacko.gif
SysRq
Раз хватает Proteus'а, то:
1) С МК через UART выводить значение температуры сразу преобразованное в текст -- можно смотреть в виртуальном терминале легко. Софтина на комп не нужна.
2) MSB - старший, LSB - младший. Смысл - начиная с какого байта передается по последовательному каналу байт данных.
3) Поймите чем отличается master (ведущее) и slave (подчиненное) устройства на SPI. Мастер в режиме чтения должен давать такты в линию, чтобы подчиненный мог отвечать в это время данными. Выдаваемые в это время мастером данные чаще всего не важны.
4) Сколько тактов дадите, столько вам и будет данных, но если не указано иное. Однако, приёмный регистр 8-битного контроллера тоже 8 бит, и считывать его надо по заполнению. Также могут быть иные указания исходя из протокола обмена...
5) Как трактовать данные, которыми обмениваются устройва по SPI, надо смотреть в доках на эти устройства.
armin
Всё, инфа с датчика на выводах порта В, по даташиту всё правильно показывает, начиная от+25 до +125 градусов,этого пока хватит, нет времени возится с RS232 протоколом, всем спасибо!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.