Как с помощью Atmega8 отобразить послед. бит на ПК???

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Вымогатель припоя
Аватара пользователя
Сообщения: 690
Зарегистрирован: Вс мар 04, 2007 01:17:12

Сообщение Alexeus »

Сразу оговорюсь- я не делал раньше ничего конкретного МК и программированием, только читал немного теории, поэтому кто может помочь- помогите, кого это раздражает- лучше не пишите ничего.

Есть два МК NEC, один сообщает другому через интерфейс SPI пакет с некой последовательностью бит (64 бита в пакете, начальный вроде всегда "1" к этому можно привязаться.)

Задача видится так: С помощью Атмега8 подцепиться к SI пину одного из общающихся МК и принимать эту последовательность типа как осциллографом, засылая полученное в ПК (через uart наверное). В ПК нужно иметь возможность просмотреть принятые первые 64 бита или записывать данные в файл, затем просмотреть.

диаграмму передачи прилагаю.

Помогите у кого есть время, сам я не пытаюсь сделать все чужими руками, просто незнаю сколько времени уйдет, прежде чем я в этом разберусь :) а так на ваших примерах быстрее получиться.
Вложения
oscill.jpg
(80.43 КБ) 354 скачивания
Реклама
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вт июл 22, 2008 08:10:54

Сообщение BerZerK-ku »

Если это действительно SPI, то можно в параллель на линию повесить AVR, в качестве второго ведомого. Но тут надо еще правильно настроить SPI:
1. Тактовая частота.
2. Полярность тактового сигнала.
3. Фаза тактового сигнала.
4. Порядок передачи разрядов данных.
Ну а после этого самое легкое - переслать полученные данные в UART.
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 690
Зарегистрирован: Вс мар 04, 2007 01:17:12

Сообщение Alexeus »

Ну а можно настроить атмегу в качестве шпиона? не обязательно использовать режим SPI, просто на обычные порты.

Цепануть порт меги на SI вывод мк NEC, при появлении высокого уровня (первый бит всегда "1") считывать с этого порта через каждые 0,00084 сек. (пакет размером 64 бита, по длительности занимает 0,054 сек- язамерял звуковой картой :) , делим на 64бита, получаем 0,00084 сек на бит)

Или синхронности так не добиться? мне нужно то только первые 64 считывать, если больше- то уплыла бы частота, а так думаю ничего страшного...
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вт июл 22, 2008 08:10:54

Сообщение BerZerK-ku »

Ну тут тоже ничего сложного. SCK подключаем к INT0/INT1. SI/SO к любому порту. По прерыванию отслеживаем уровни на шине данных, а далее через UART в ПК. И отпадает необходимость в каких-либо временных интервалах, достаточно 1 раз синхронизироваться с SCK.
Реклама
Эиком - электронные компоненты и радиодетали
Вымогатель припоя
Аватара пользователя
Сообщения: 690
Зарегистрирован: Вс мар 04, 2007 01:17:12

Сообщение Alexeus »

Да, спасибо, читая "Обучалку" нашел описание этой процедуры, применительно там к чему-то, но там использовали прерывание по таймеру, а я заметил, что есть еще и по вх. тактам на Т0 и Т1, и понял, что это именно мой вариант! :)

Еще ламерский вопросик можно- я оставляю внутренний генератор в 1мГц, нужно фузы менять или по дефолту все так стоит? (CKSEL0 нужно отметить? еще что нть нужно отметить?)
Реклама
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вт июл 22, 2008 08:10:54

Сообщение BerZerK-ku »

МК работает на внутреннем 1МГц при заводских уставках.
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 690
Зарегистрирован: Вс мар 04, 2007 01:17:12

Сообщение Alexeus »

да я тоже в этом так уверен был, что при прошивке не обратил внимание на галку "прошить фьюзы" в CvAvr. А там, блин, все фьюзы выключены! а нужно по крайней мере CKSEL(3-0) в 0001 выставить для активации внутреннего RC генератора... :(

Вот теперь ищу инфу, как AvReal пользовать и пытаться исправить, т.к. CvAvr после прошивки больше не видит мегу!
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»