Уведомления
Очистить все

Мистика с Мегой8

1 Посты
1 Пользователи
0 Likes
8,945 Просмотры
Cepera
(@cepera)
New Member
Присоединился: 10 лет назад
Сообщения: 1
Topic starter  

Вопрос к Гуру. Я уже с этой фигней весь мозг сломал. Итак по порядку:
Захотелось мне для своих нужд законнектить радиомодуль RFM-42 c ATMega8A-16AU. За основу взята схема и прошивка отсюда http://www.1slon.ru/faq.php?cat_id=5
В краце Мега8 через SPI передает радио-модулю настройки, а он уже излучает радиочастоту. Все просто.
Вот шаги, чуть было не приведшие меня к нервному срыву в расцвете сил:
1. Схема собрана "на соплях", залита прошивка. Результат - РАБОТАЕТ ХОРОШО.
2. Подготовлена плата, те же самые компоненты установлены в плату. Результат-НЕ РАБОТАЕТ!
3. 25 раз проверена схема, прозвонены все дорожки, тестовая прошивка показала, что замыканий ног нет. Заменен радиомодуль на новый. НЕ РАБОТАЕТ!!
4. Заменена Мega8, 2 раза. Изготовлена вторая плата с немного другой разводкой. НЕ РАБОТАЕТ!!! Установлено, что радиомодуль не распознает SPI от Меги, Программа останавливается на ожидании ответа от модуля по SPI. Изменения скорости SPI, режимов и пр., замена аппаратного SPI на програмный(проверенный на ATtiny13), результатов не принесли. Как и убирание из исходника ожидания ответа модуля. Не понимает модуль мегу напрочь.
5. Плата с Мега8 отсоединена от радиомодуля и присоединена по SPI к Ардуино с Мегой328. Здесь я его использовал как монитор SPI, пользуясь тем, что у Ардуины есть Serial.print, и можно смотреть на компе в реальном времени. Установил, что - От Меги8, SPI пакеты идут исправно, Ардуина принимает все без ошибок.
6. Переделал прошивку под Ардуино, соединил Ардуину и радиомодуль по SPI. РАБОТАЕТ БЛИН! радио-модуль абсолютно корректен.
7. Переделал прошивку под Ардуино с Мегой8, взял Arduino.hex файл, который оказался в три раза больше чем с СodeVision и залил в свою плату с Мегой8. Результат РАБОТАЕТ! ОХРЕНЕТЬ! но как-то не всегда правильно.
8. Проанализировал библиотеки Ардуино, в том числе SPI, создал на их основе код в AVR студии(практически скопировал) абсолютно все регистры выставлены как в Ардуиновом коде, проверил в Протеусе. Залил в Мегу8, проверил на передачу SPI, и на значение регистров. Результат - НЕ РАБОТАЕТ!!!!
Я думал у меня череп треснит!
Еще такая фича настораживает- если поднести палец к Меги8 со стороны где нет доророжек, (с обратной стороны платы). С ней начинает твориться какая то хе*ня, мигают диодики, программа убегает от ожидания ответа в какие-нибудь подпрограммы, короче буйное помешательство. Установка фьюза CKOPT не помогает.

Кто-нибудь что-то подобное когда-нибудь встречал? Есть предположения?


Цитата