Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.12.71.237] |
|
Сообщ.
#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 ? |
Сообщ.
#16
,
|
|
|
Да, программатор сам reset выставляет
|
Сообщ.
#17
,
|
|
|
Цитата ANDLL @ Тем не менее, после этой программы на всех выходах стоят нули. А если попробовать прогон "зашитой" программы не в программаторе? А в рабочем устройстве? |
Сообщ.
#18
,
|
|
|
Цитата medved_68 @ Дык, программа проганяется и так на работающей микросхеме.А в рабочем устройстве? Отсоединил программатор, подсоединил reset к +5, но все равно ничего не поменялось |
Сообщ.
#19
,
|
|
|
Цитата ANDLL @ Отсоединил программатор, подсоединил reset к +5, но все равно ничего не поменялось "Правильный" ли программатор - а раньше он проверялся ? Правильно ли установлены фузы ? Подключены светодиоды ? Правильный ли файл "8535def.inc" ? Вероятно, нужен осциллограф. Гадать можно бесконечно. |
Сообщ.
#20
,
|
|
|
ANDLL, светодиоды подключены к контроллеру анодом или катодом, второй вывод куда идет, на землю или на плюс? Если со светодиодом последовательно стоит резистор, то какой его номинал. Попробуй вместо светодиода поставить пьезоизлучатель, если ножками хоть раз дергает, то будет щелчок.
-Added попробуй добавить сброс Watchdog Timer-а в цикле .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: WDR rjmp L |
Сообщ.
#21
,
|
|
|
Цитата ЫукпШ @ Гадать можно бесконечно. А как вам такая идея: Программатору неверно указан формат файла... В итоге в жук загружается ахинея. |
Сообщ.
#22
,
|
|
|
Цитата ЫукпШ @ А как вам такая идея: Программатору неверно указан формат файла... В итоге в жук загружается ахинея. ЫукпШ но тогда эта "ахинея" и читалась бы в буфер программатора. Как то не сообразуется: Цитата ANDLL @ Программатор правильно читает сигнатуру, программу записывает, и считывает без ошибок. |
Сообщ.
#23
,
|
|
|
Цитата medved_68 @ Цитата ANDLL @ Программатор правильно читает сигнатуру, программу записывает, и считывает без ошибок. Медведь - допустим, программа в формате Intel-hex. А программатору указали, что она в формате .bin Файл правильно запишется-считается-сравниться. Но записана ахинея. Пару раз я сам попался на этом. |
Сообщ.
#24
,
|
|
|
ЫукпШ, какой программатор не проверяет формат файла? просто чтоб им не пользоваться
|
Сообщ.
#25
,
|
|
|
Цитата MeG @ ЫукпШ, какой программатор не проверяет формат файла? просто чтоб им не пользоваться Да любой - если в качестве формата укажешь .bin |
Сообщ.
#26
,
|
|
|
ANDLL мож всё-таки рискнуть... и прицепить внешний кварц?
Программатор при прошивке всяка тактирует камень сам... Добавь в цикл инверсию ног и задержку...ну шоб цэшкой можно было просечь... ANDLL надеюсь без обид за нупские советы? |