Еще один интерфейс для fms

Аркадий

Как то так вышло, что с PIC-микроконтроллерами я не работал, а для AVR у меня все есть, включая сам чип, вот я и сделал для себя интерфейс для фмс на
ATtiny15L 😋 .
Единственный недостаток 😦 : нужно считать программатором калибровочный байт для конкретного чипа и вручную вставить его в текст программы, а затем оттранслировать. В пике, насколько я знаю, запись калибровочного байта генератора автоматическая.
Если кому интересно, то вот…

Vitaly

А зачем такие сложности с калибровочной константой? Разве проще никак нельзя выкрутиться?

Схема очень даже ничего.

Аркадий
Vitaly:

А зачем такие сложности с калибровочной константой? Разве проще никак нельзя выкрутиться?

Без калибровки не проверял, но, судя по даташиту, там разброс тактовой частоты весьма большой, а автоматически эта константа в OSCCAL не в записывается. Вот в tiny13 все автоматом делается, но там частота 9.6МГц и надо будет с заданием временнЫх интервалов поработать.

cache
Аркадий:

Без калибровки не проверял, но, судя по даташиту, там разброс тактовой частоты весьма большой, а автоматически эта константа в OSCCAL не в записывается. Вот в tiny13 все автоматом делается, но там частота 9.6МГц и надо будет с заданием временнЫх интервалов поработать.

Все предельно просто. Если программировать контроллер с помощью AVREAL (кто занимается AVR, тот знает, что это), то можно через командную строку задать сохранение калибровочной константы в любое место программной памяти (обычно в последний байт), откуда при инициализации с помощью LPM она прекрасно читается. Более того, AVREAL позволяет даже сохранить константу, как часть команды LDI. То есть никакой калибровки уже не нужно.

Пример для любознательных:

пример фрагмента процедуры инициализации:

Calibr:
LDI R16, $00 ;загрузка калибровочной константы в регистр
;номер регистра любой в диапазоне 16-31, значение любое (заменяется программатором на калибровочную константу при прошивке)
OUT OSCCAL, R16 ;запись калибровочной константы в регистр калибровки генератора

выясняем значение метки Calibr (адреса команды загрузки константы) из list-файла и подставляем полученное значение в командную строку:

пример фрагмента командной строки:

avreal fms.hex -c?osccal=<Calibr> +tiny15

где вместо <Calibr> подставляется значение этой метки из list-файла.

После этого необходимость калибровать генератор контроллера отваливается (да и зачем, если его уже на фабрике откалибровали 😃).

Если у кого какие вопросы по программированию AVR - милости прошу в личку.

Roma

А у меня на одном транзисторе кабель! И я не знаю, что такое програмировать, и все такое!!! 😛

CKYHC
Roma:

А у меня на одном транзисторе кабель! И я не знаю, что такое програмировать, и все такое!!! 😛

У меня сейчас три адаптора:

  1. На Game Port (на AVR)
  2. на одном транзисторе (сделал его вторым по счету)
  3. На COM port (на PIC).

Так вот - для FMS самым удачным оказался на COM Port.
Тот, что на Game Port - может пригодится в других симуляторах.
А тот, что на одном транзисторе - так, побаловаться.
Никто уже давно не ставит винды ниже 2k. А если еще вспомнить про поддержку многопотоковости в процессорах, то тогда все дороги ведут как минимум к XP.

Удачи!
Андрей

Vitaly

Я конечно раз за ваш транзистор, но флеймить тут не надо.

yura_v
Аркадий:

Как то так вышло, что с PIC-микроконтроллерами я не работал, а для AVR у меня все есть, включая сам чип, вот я и сделал для себя интерфейс для фмс на
ATtiny15L 😋 .
Единственный недостаток 😦 : нужно считать программатором калибровочный байт для конкретного чипа и вручную вставить его в текст программы, а затем оттранслировать. В пике, насколько я знаю, запись калибровочного байта генератора автоматическая.
Если кому интересно, то вот…

А сложно переделать прошивку под ATtiny12L ?
Дело в том, что таких полно в битых головках от струйных принтеров
а 15L покупать надо…

cache
yura_v:

А сложно переделать прошивку под ATtiny12L ?
Дело в том, что таких полно в битых головках от струйных принтеров
а 15L покупать надо…

Трудно представить человека, для которого 70 рублей - большие деньги… Зачем искать (не у всех дома струйники, не во всех головках tiny12) и курочить, когда в Чипе-с-Дипом все детальки, включая контроллер, обходятся рублей в 100-120?

Vitaly

Мда… просить человека потратить время, ради того чтобы другой сэкономил 70 рублей, это как-то странно.

cache
yura_v:

А сложно переделать прошивку под ATtiny12L ?
Дело в том, что таких полно в битых головках от струйных принтеров
а 15L покупать надо…

Прошу прощения. Не обратил внимания на город… Но в любом случае, купить контроллер несложно и недорого. По крайней мере, в крупных городах.

yura_v
Vitaly:

Мда… просить человека потратить время, ради того чтобы другой сэкономил 70 рублей, это как-то странно.

заметьте
я не просил переписывать прошивку я спросил “сложно ли переделать” поскольку я не знаком с разницей между этими двумя процами. Если пару команд переписать это одно а если все перепахивать …
А 15L я сразу купил. 15грн стоит.

Vitaly

Думаю, несложно. 2 вывода местами поменять, скоре всего. Мне даташиты лень читать, чтобы вспомнить. Не та проблема 😃

Аркадий
Vitaly:

Думаю, несложно. 2 вывода местами поменять, скоре всего. Мне даташиты лень читать, чтобы вспомнить. Не та проблема 😃

Надо поменять выводы PB1 и PB2 c соответствующей коррекцией в программе. Так как у tiny15 сигнал INT0 на PB2 а у tiny12 - на PB1. Далее, частота генератора у tiny12 1.2MHz против 1.6 у tiny15, поэтому надо в программе задержки поменять, либо попробовать поиграться константой калибровки и довести частоту до нужной.