Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.144.35.148] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Можно ли как нибудь использовать встроенный в ATtiny SPI для общения с другими контроллерами в схеме? Или этот интерфейс в нем только для заливания программы?
|
Сообщ.
#2
,
|
|
|
Только для заливания программы. Но поскольку выводы, которые используются под SPI, ещё и функуию обычных линий ввода/вывода выполняют, то почему бы и не замутить програмный аналог SPI для связи с другими МК.
|
Сообщ.
#3
,
|
|
|
А можно программку готовую, сорри конечно за наглость.
А то гугль молчит на atmel spi Добавлено То есть меня интересует прога, которая скажем 1 байт в r0 прочитает |
Сообщ.
#4
,
|
|
|
изучаешь
Serial Peripheral Interface Bus изучаешь доку на mcu цепляешь sck на int0 mosi и miso на пару пинов ввода вывода конфигаешь int0 на rising edge, то есть срабатывание по нарастанию фронта в обработчике смотришь, что у тя на mosi (если slave-ом тинька будет), и складываешь сдвигом в приёмный буфер ЗЫ: лучше тинька слэйв, шоб не тактовать если делать тиньку мастером, то тактовать по таймеру на тиньке, ИМХО |
Сообщ.
#5
,
|
|
|
Спасибо, я знаю как работает SPI.
Просто я не хочу(возмутительно, не правда ли?) писать программу на тему которую столько раз перетирали. Поэтому и спрашиваю готовую. |
Сообщ.
#6
,
|
|
|
Подпрограмма
uint8_t spi_io(uint8_t b); SPI master под один конкретный режим SPI (фиксированные CPOL/CPHA, MSB/LSB first), одновремённо ввод и вівод байта = 35 слов, 235 символов. Ваши сообщения в этой теме в сумме = 77 слов, 487 символов. А ещё гугление было, тоже время заняло. Так что или неправда, что Вы знаете, как работает SPI (так как тогда было бы быстрее написать, чем спрашивать), или феноменальная лень, поощрять которую я не собираюсь. |
Сообщ.
#7
,
|
|
|
avreal
То что вы написали - полная фигня, выдающая ваше чрезмерное самомнение Вы даже пишите "поощрять которую я не собираюсь", хотя я вовсе и не просил лично вас мне помогать. Вопрос обращен к людям, которые могут\хотят помочь. А не ко всем. |
Сообщ.
#8
,
|
|
|
А я и хочу помочь и могу. У меня просто другое понимание слова "помошь", я считаю, что самое полезное, это такую простую вещь написать самостоятельно.
http://electronix.ru/forum/lofiversion/index.php/t45974.html Цитата Просьба о помощи - это когда "прочёл то-то, сделал то-то, выходит такая-то лажа - что это может быть?". А когда "поделитесь исходниками" - это называется "дайте списать". По поводу простоты программного SPI - это просто констатация факта. Я его писал много раз для разных процессоров и языков и каждый раз быстрее написать заново под конкретный случай, чем искать свой же старый исходник и редактировать под нужные параметры. p.s. Для начинающих есть апноты производителя, а не гугл. Atmel application note AVR319, AVR320. Если нужен soft SPI slave на тиньке без USI, то это немного сложнее в плане достижения высоких скоростей, логика простая всё равно. |
Сообщ.
#9
,
|
|
|
SPI может иметь довольно изощренную реализацию. Например запись бита может происходить по фронту или спаду синхроимпульса. Между посылками шина может устанавливаться в ноль или единицу. Подключение нескольких устройств возможно цепочкой или звездой. В случае нескольких мастеров на шине требуется арбитраж и перевод в третье состояние линий.
Только готовые исходники будут заточены либо под одну конкретную реализацию. Либо универсальные огромного размера и сложной настройкой, которые без понимания все равно не настроишь. А с пониманием проще написать самому. |
Сообщ.
#10
,
|
|
|
Ладно, SPI пока отложим, у меня тут еще маленький вопросик.
ATmega8535L может работать без внешнего резонатора? (не смейтесь, я серьезно) |
Сообщ.
#11
,
|
|
|
Цитата MeG @ Только готовые исходники будут заточены либо под одну конкретную реализацию. Либо универсальные огромного размера и сложной настройкой, которые без понимания все равно не настроишь. А с пониманием проще написать самому. Вот и я о том же. Написать под конкретный вариант использования - довольно несложно. Мне они то там, то сям нужны бывают, пробовал сварганить универсальные исходники, конфигурирующиеся при помощи принадлежащего проекту файла через #include "soft_spi_cfg.h" но пришёл к выводу, что игра свеч не стоит. Особенно учитывая то, что в конкретной системе может оказаться пару ведомых устройств с разным порядком следования битов :-) -Added Цитата ANDLL @ Ладно, SPI пока отложим, у меня тут еще маленький вопросик. ATmega8535L может работать без внешнего резонатора? (не смейтесь, я серьезно) Да, почти все AVR могут - internal calibrated RC-oscillator, у мег8515/8535 четыре возможных частоты 1, 2, 4, 8 MHz. С завода идёт предустановленная на 1 МГц. Но калиброванность такая себе, легко может вылететь за 3% и уже по RS232 обмен засбоит. Без постоянной подкалибровки в таких местах не пойдёт. |
Сообщ.
#12
,
|
|
|
Просто у меня странная проблемка - стоит этот контроллер, есть программатор mkII.
Программатор правильно читает сигнатуру, программу записывает, и считывает без ошибок. Но почемуто сама программа не выполняется .include "8535def.inc" ldi r17,0xff out DDRA,r17 out PORTA,r17 out DDRB,r17 out PORTB,r17 out DDRC,r17 out PORTC,r17 out DDRD,r17 out PORTD,r17 L: rjmp L Тем не менее, после этой программы на всех выходах стоят нули. Выходы Vcc,gnd разумеется подключены правильно, иначе бы врядли программатор правильно прочитал сигнатуру... В чем же может быть дело? |
Сообщ.
#13
,
|
|
|
Более того, если бы генератор не работал - тоже ни сигнатура не прочиталась бы, ни программа не зашилась.
Ой, ну не знаю я... Даже если SUT на максимальное время стоит и случайно запрограммирован WDTON - всё равно на сбросе грубо 64 мс контроллер стоять будет и работать грубо 16мс до сработки WDT. Так что полного нуля не должно быть на выходах, тестер усреднит и где-то 1/5 питания покажет. |
Сообщ.
#14
,
|
|
|
Под нулем я имел ввиду что светодиоды не горят на выводах...
|
Сообщ.
#15
,
|
|
|
Цитата ANDLL @ Но почемуто сама программа не выполняется Имеется ли "правильный" RESET ? |